# SurfaceExtractor The SurfaceExtractor does exactly the opposite of the Voxelizer; it reads a matrix containing a 3D structure in voxel -representation, and constructs a Geometry, a Facet-based representation. SurfaceExtractor can be used with either Matrix, boost's multi_array, or with Blitz++'s Array through BlitzArray. The SurfaceExtractor operates by the principle of an iso-surface, using the Marching Cubes algorithm. More information about the procedure, including the basis of this code, can be found here. Note: The generation of normals for the facets is probably wrong. ## Interface
      void extractSurface(const Matrix_t &matrix,
    	      Geometry_t &geometry,
    	      const double isolevel = 0.5)
| Convert voxel-data in "matrix" into facet-data in "geometry". The parameter "isolevel" determines the border between what is considered "inside" voxels and "outside" voxels.