Hi Ben, in fact I'm not sure there is a more reliable source than the source code itself. Here's a general overview:
the algorithm iteratively splits, collapses and smooths surface triangles so that they tend to comply to an underlying metric expressed as a point array sitting on the starting surface or as a global number -elementsizemode ElementSizeMode (str,1) in ['area', 'edgelength', 'areaarray', 'edgelengtharray']; default=area this pertains to the definition of the metric: with "area" you'll be able to specify a global target area that each triangle will tend to achieve, with "edgelength" a global nominal triangle edgelength; with areaarray and edgelengtharray, each triangle will look at the number of the array associated to the points of the original surface for querying the local target area or edgelength -area TargetArea (float,1) >= 0.0; default=1.0 the global area value -areaarray TargetAreaArrayName (str,1); default=TargetArea the name of the point array on the original surface where the local target area is defined -edgelength TargetEdgeLength (float,1) >= 0.0; default=1.0 the global nominal edge length value -edgelengtharray TargetEdgeLengthArrayName (str,1) the name of the point array on the original surface where the local target edge length is defined -areafactor TargetAreaFactor (float,1) >= 0.0; default=1.0 a numerical factor by which the value in the areaarray is multiplied to yield the actual target area value (this is handy if the array is the result of a previous script - this allows not to rescale the values beforehand) -edgelengthfactor TargetEdgeLengthFactor (float,1) >= 0.0; default=1.0 a numerical factor by which the value in the edgelengtharray is multiplied to yield the actual target edge length value (this is handy if the array is the result of a previous script - this allows not to rescale the values beforehand) -maxarea MaxArea (float,1) >= 0.0; default=1e+16 maximum allowed triangle area -minarea MinArea (float,1) >= 0.0; default=0.0 minimum allowed triangle area -iterations NumberOfIterations (int,1) >= 0; default=10 number of times the surface element optimization process is repeated -connectivityiterations NumberOfConnectivityOptimizationIterations (int,1) >= 0; default=20 the number of sub-iterations (for each iteration) in which the surface is checked for optimal connectivity; a triangulated surface has an optimal 6-neighbor connectivity, any deviation results in poorer triangles; the algorithm tries to minimize deviations by collapsing or splitting triangles in >6 or <6 topologies, respectively -entityidsarray CellEntityIdsArrayName (str,1); default=None the name of the cell array in which the ids of the eventual surface entities (wall, inlet, outlet, etc) are stored in the input surface, which the algorithm tries to preserve (for instance, edge flips across two different regions are not allowed) -aspectratio AspectRatioThreshold (float,1) >= 0.0; default=1.2 the threshold of the triangle aspect ratio above which a triangle is considered too skewed and it is collapsed (see also next parameter) -minareafactor MinAreaFactor (float,1) >= 0.0; default=0.5 tolerance with which a triangle is left untouched if double frobeniusAspectRatio = (side1Squared + side2Squared + side3Squared) / (4.0 * sqrt(3.0) * area); if (frobeniusAspectRatio < this->AspectRatioThreshold && area > targetArea * this->MinAreaFactor) { return DO_NOTHING; } -internalangletolerance InternalAngleTolerance (float,1) >= 0.0; default=0.0 an edge-flip operation is performed if the maximum internal angle of the unflipped configuration is lower than the maximum internal angle of the flipped configuration plus this tolerance (this is a bit like an hysteresis to avoid repeated edge flips back and forth) -normalangletolerance NormalAngleTolerance (float,1) >= 0.0; default=0.2 this is a tolerance that regulates what it is considered a valid edge-flip. If the flip results in two triangles with triangle normals that have very different orientations compared to the difference in orientation prior to flipping, the flip is considered invalid. The threshold determines how big the excess in difference is allowed. -collapseangle CollapseAngleThreshold (float,1) >= 0.0; default=0.2 this is the value of the angle between two triangle normals that allows a triangle to be collapsed if its aspect ratio is low. If aspect ratio is low but two triangles that become neighbors after the edge collapse are going to have a very high angle between the normals, the collapse is avoided. -relaxation Relaxation (float,1) >= 0.5; default=0.5 this is the relaxation factor for the smoothing step: a point inside a neighborhood is moved toward the centroid of the neighborhood with a step of relaxation * distance to the centroid. Note that it is then projected onto the original surface after that. -exclude ExcludeEntityIds (int,-1); default=[] ids of entities to exclude from remeshing -preserveboundary PreserveBoundaryEdges (bool,1); default=0 activate the preservation of boundary edges (if 0, boundary edges are preserved in terms of geometry, but the number of edges and their location along the boundary will be allowed to change) Hope this gives you some direction. I strongly advise you to look at the source code (in vmtk/vtkVmtk/DifferentialGeometry/vtkvmtkPolyDataSurfaceRemeshing.cxx), it's quite easy to follow, I believe. Best, Luca On Jun 11, 2012, at 10:57 PM, Berkowitz, Benjamin M wrote: > Hi, > > Where can I find detailed information on each of the parameters in the > surface remeshing algorithm? > > Thanks, > Ben Berkowitz > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > vmtk-users mailing list > vmtk-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/vmtk-users ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ vmtk-users mailing list vmtk-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/vmtk-users