35 #ifndef AIMS_MESH_MESHER_H
36 #define AIMS_MESH_MESHER_H
47 typedef std::map< uint, Facet*, std::less< int > >
MapOfFacet;
85 void getInterface( std::map<
size_t, std::list< MapOfFacet > > & interface,
88 const std::string& name,
const std::string& mode =
"binar" );
90 const std::string& mode =
"binar" );
92 std::map<
size_t, std::list<AimsSurfaceTriangle> >& surface );
94 std::map<
size_t, std::list<AimsSurfaceTriangle> >& surface );
139 float deciMaxClearance,
141 float deciFeatureAngle );
153 const std::vector<float> & precthresholds,
159 std::map<
size_t, std::list< std::map<
short,
160 std::list<AimsSurfaceTriangle > > > >& surface );
162 std::map<
size_t, std::list< std::map<
short,
163 std::list<AimsSurfaceTriangle > > > >& surface );
182 __attribute__((__deprecated__("specify extension in the output filename "
226 std::vector< Point3df >& vertex,
227 float sizeX,
float sizeY,
float sizeZ );
251 std::vector< Point3df >& vertex,
252 float reductionRatePercent,
253 float maxClearanceMm,
255 float minFeatureEdgeAngleDegree );
257 std::vector< Point3df >& vertex,
258 float reductionRatePercent,
259 float maxClearanceMm,
261 float minFeatureEdgeAngleDegree,
262 const std::vector<float> & thresholds,
266 const std::vector<float> & thresholds,
270 const std::vector< Point3df >& vertex,
271 std::vector< Point3df >& normal );
276 const std::vector< Facet* >& vfac,
278 std::map<
short,std::list< AimsSurfaceTriangle> >&
282 std::vector< Facet* >& vfac );
284 void clear( std::map<
size_t, std::list< MapOfFacet > >& interface );
void doit(const carto::rc_ptr< carto::Volume< short > > &thing, std::map< size_t, std::list< AimsSurfaceTriangle > > &surface)
void getSmoothedLaplacian(const std::vector< Facet * > &vfac, AimsSurfaceTriangle &surface, float featureAngle, int nIteration, float rate)
void setTriOutputFile() __attribute__((__deprecated__("specify extension in the output filename " "of setMeshOutputFile() or doit()")))
OBSOLETE - specify extension in the output filename of setMeshOutputFile() or doit()
void getBrain(const carto::rc_ptr< carto::Volume< short > > &thing, AimsSurfaceTriangle &surface, bool insideinterface=false)
void setSmoothingSpring(float smoothForce)
void getVertices(const std::vector< Facet * > &vfac, std::vector< Point3df > &vertex, float sizeX, float sizeY, float sizeZ)
void doit(const aims::BucketMap< Void > &thing, const std::string &name, const std::string &mode="binar")
void getSmoothedVertices(const std::vector< Facet * > &vfac, AimsSurfaceTriangle &surface, float rate)
void getNormals(const std::vector< Facet * > &vfac, const std::vector< Point3df > &vertex, std::vector< Point3df > &normal)
void getExtendedNeighOfFacet(MapOfFacet &thing)
void getTriangles(const std::vector< Facet * > &vfac, std::vector< AimsVector< uint, 3 > > &triangle)
float decimate(AimsSurfaceTriangle &surface, const std::vector< float > &thresholds, const TimeTexture< float > *precisionmap)
void setMinSurface(float minSurface)
void getReducedNeighOutwardCycles(MapOfFacet &thing)
void doit(const carto::rc_ptr< carto::Volume< short > > &thing, std::map< size_t, std::list< std::map< short, std::list< AimsSurfaceTriangle > > > > &surface)
void getSmoothedLowPassFilter(const std::vector< Facet * > &vfac, AimsSurfaceTriangle &surface, int nIteration, float rate)
void getWhite(const carto::rc_ptr< carto::Volume< short > > &thing, AimsSurfaceTriangle &surface)
void doit(const carto::rc_ptr< carto::Volume< short > > &thing, const std::string &name, const std::string &mode="binar")
void doit(const aims::BucketMap< Void > &thing, std::map< size_t, std::list< std::map< short, std::list< AimsSurfaceTriangle > > > > &surface)
void getMeshFromMapOfFacet(const carto::rc_ptr< carto::Volume< short > > &thing, AimsSurfaceTriangle &surface, MapOfFacet &mof)
float decimate(AimsSurfaceTriangle &surface, const std::vector< float > &precthresholds, const TimeTexture< float > &precisionmap)
Decimation using a precision texture map.
void getInterface(std::map< size_t, std::list< MapOfFacet > > &interface, const carto::rc_ptr< carto::Volume< short > > &thing)
static carto::VolumeRef< int16_t > reshapedVolume(const carto::VolumeRef< int16_t > in_vol)
reshape (if needed) the input volume to add a border filled with -1
void getSingleLabel(const carto::rc_ptr< carto::Volume< short > > &thing, AimsSurfaceTriangle &surface)
void doit(const aims::BucketMap< Void > &thing, std::map< size_t, std::list< AimsSurfaceTriangle > > &surface)
void getBrain(const aims::BucketMap< Void > &thing, AimsSurfaceTriangle &surface, bool insideinterface=false)
void clear(std::map< size_t, std::list< MapOfFacet > > &interface)
void setSmoothing(SmoothingType smoothType, int smoothIt, float smoothRate)
Smoothing.
void getSmoothedPolygonSpring(const std::vector< Facet * > &vfac, AimsSurfaceTriangle &surface, float force, int nIteration, float rate)
float decimate(AimsSurfaceTriangle &surface)
void getWhite(const aims::BucketMap< Void > &thing, AimsSurfaceTriangle &surface)
void setDecimation(float deciReductionRate, float deciMaxClearance, float deciMaxError, float deciFeatureAngle)
Decimation.
void setLabelInf(int labelInf)
SmoothingType _smoothType
void getDecimatedVertices(std::vector< Facet * > &vfac, std::vector< Point3df > &vertex, float reductionRatePercent, float maxClearanceMm, float maxErrorMm, float minFeatureEdgeAngleDegree)
float _smoothFeatureAngle
void getFacet(const AimsSurfaceTriangle &surface, std::vector< Facet * > &vfac)
void setMinFacetNumber(uint m)
void setLabelSup(int labelSup)
void splitting(const carto::rc_ptr< carto::Volume< short > > &thing, const std::vector< Facet * > &vfac, const AimsSurfaceTriangle &surface, std::map< short, std::list< AimsSurfaceTriangle > > &splitted)
void getDecimatedVertices(std::vector< Facet * > &vfac, std::vector< Point3df > &vertex, float reductionRatePercent, float maxClearanceMm, float maxErrorMm, float minFeatureEdgeAngleDegree, const std::vector< float > &thresholds, const TimeTexture< float > *precisionmap=0)
void smooth(AimsSurfaceTriangle &surface)
void setSmoothingLaplacian(float smoothFeatureAngle)
void getSmoothedSimpleSpring(const std::vector< Facet * > &vfac, AimsSurfaceTriangle &surface, float force, int nIteration, float rate)
float surfaceOfInterface(const AimsSurfaceTriangle &surface)
std::map< uint, Facet *, std::less< int > > MapOfFacet
AIMSDATA_API AimsTimeSurface< 3, Void > AimsSurfaceTriangle