HE_Mesh
6.0.1
|
Public Member Functions | |
HEM_FaceExpand () | |
HEM_FaceExpand | setDistance (final double d) |
HEM_FaceExpand | setCutoff (final double f) |
HEM_FaceExpand | setDistance (final WB_ScalarParameter d) |
![]() | |
HEM_Modifier () | |
HE_Mesh | apply (final HE_Mesh mesh) |
HE_Mesh | apply (final HE_Selection selection) |
![]() | |
abstract HE_Mesh | apply (HE_Mesh mesh) |
abstract HE_Mesh | apply (HE_Selection selection) |
String | getName () |
void | setName (final String name) |
Protected Member Functions | |
HE_Mesh | applySelf (final HE_Mesh mesh) |
HE_Mesh | applySelf (final HE_Selection selection) |
![]() | |
abstract HE_Mesh | applySelf (final HE_Mesh mesh) |
abstract HE_Mesh | applySelf (final HE_Selection selection) |
Private Attributes | |
WB_ScalarParameter | d |
Additional Inherited Members | |
![]() | |
static final WB_ProgressTracker | tracker = WB_ProgressTracker.instance() |
Tries to expand a mesh by moving all faces a distance along their normal. No vertices are added. The new position of a vertex is found by displacing all the planes in its star and searching for their intersection. If the planes intersect in a single point,this point is used. Otherwise a least-square approximation of their intersection is used , i.e. the point that minimizes the combined squared distance to the planes. If the least-square approximation fails, the vertex is displaced along the vertex normal instead. A cutoff factor can be specified to limit the movement of the vertices. If a vertex would move more than cutoff*distance, it is displaced along the vertex normal instead. If not specified, the cutoff factor defaults to 4.0, corresponding to the displacement expected in an acute angle of 30°.
wblut.hemesh.HEM_FaceExpand.HEM_FaceExpand | ( | ) |
References wblut.math.WB_ScalarParameter.ZERO.
References wblut.geom.WB_Point.add(), wblut.geom.WB_Point.addMul(), wblut.math.WB_ScalarParameter.evaluate(), wblut.geom.WB_Plane.get(), wblut.geom.WB_GeometryOp3D.getClosestPoint3D(), wblut.hemesh.HE_Halfedge.getEdgeDihedralAngle(), wblut.hemesh.HE_Halfedge.getEdgeNormal(), wblut.hemesh.HE_Vertex.getFaceStar(), wblut.hemesh.HE_Face.getHalfedge(), wblut.geom.WB_GeometryOp3D.getSqDistance3D(), wblut.hemesh.HE_Vertex.getVertexNormal(), wblut.hemesh.HE_Vertex.isBoundary(), wblut.geom.WB_GeometryOp3D.isEqual(), wblut.hemesh.HE_VertexIterator.next(), wblut.hemesh.HE_Vertex.set(), wblut.hemesh.HE_Mesh.vItr(), wblut.hemesh.HE_Vertex.xd(), wblut.hemesh.HE_Vertex.yd(), wblut.hemesh.HE_Vertex.zd(), and wblut.math.WB_ScalarParameter.ZERO.
|
protected |
References wblut.geom.WB_Point.add(), wblut.geom.WB_Point.addMul(), wblut.hemesh.HE_Selection.collectVertices(), wblut.math.WB_ScalarParameter.evaluate(), wblut.geom.WB_Plane.get(), wblut.geom.WB_GeometryOp3D.getClosestPoint3D(), wblut.hemesh.HE_Halfedge.getEdgeDihedralAngle(), wblut.hemesh.HE_Halfedge.getEdgeNormal(), wblut.hemesh.HE_Vertex.getFaceStar(), wblut.hemesh.HE_Face.getHalfedge(), wblut.geom.WB_GeometryOp3D.getSqDistance3D(), wblut.hemesh.HE_Vertex.getVertexNormal(), wblut.geom.WB_GeometryOp3D.isEqual(), wblut.hemesh.HE_VertexIterator.next(), wblut.hemesh.HE_Vertex.set(), wblut.hemesh.HE_Selection.vItr(), wblut.hemesh.HE_Vertex.xd(), wblut.hemesh.HE_Vertex.yd(), and wblut.hemesh.HE_Vertex.zd().
HEM_FaceExpand wblut.hemesh.HEM_FaceExpand.setCutoff | ( | final double | f | ) |
HEM_FaceExpand wblut.hemesh.HEM_FaceExpand.setDistance | ( | final double | d | ) |
HEM_FaceExpand wblut.hemesh.HEM_FaceExpand.setDistance | ( | final WB_ScalarParameter | d | ) |
References wblut.hemesh.HEM_FaceExpand.d.
|
private |