HE_Mesh
6.0.1
|
Classes | |
class | HET_IntersectionResult |
Static Public Attributes | |
static final WB_ProgressTracker | tracker = WB_ProgressTracker.instance() |
Private Member Functions | |
HET_MeshOp () | |
Static Private Member Functions | |
static WB_Vector | findOptimalSolution (final HE_Vertex v, final WB_Vector normal, final WB_Vector t1, final WB_Vector t2) |
static double | signedVolume (final HE_Face f, final WB_Coord center) |
Static Private Attributes | |
static WB_GeometryFactory | gf = new WB_GeometryFactory() |
|
private |
|
static |
Assign face to halfedge loop.
mesh | |
face | face |
halfedge | halfedge loop |
References wblut.hemesh.HE_Halfedge.getNextInFace(), and wblut.hemesh.HE_Mesh.setFace().
|
static |
|
static |
References wblut.geom.WB_Classification.BACK, wblut.geom.WB_GeometryOp3D.classifyPointToPlane3D(), wblut.geom.WB_Classification.CROSSING, wblut.geom.WB_Classification.FRONT, wblut.hemesh.HE_Face.getHalfedge(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Halfedge.getVertex(), and wblut.geom.WB_Classification.ON.
|
static |
Clean all mesh elements not used by any faces. Will leave boundary halfedges uncapped!
mesh |
References wblut.hemesh.HE_RAS< E extends HE_Element >.add(), wblut.hemesh.HE_Mesh.clearPair(), wblut.hemesh.HE_RAS< E extends HE_Element >.contains(), wblut.hemesh.HE_Mesh.fItr(), wblut.hemesh.HE_Face.getHalfedge(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Mesh.getNumberOfFaces(), wblut.hemesh.HE_Halfedge.getPair(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.hemesh.HE_Mesh.getVertices(), wblut.hemesh.HE_RAS< E extends HE_Element >.getWithIndex(), wblut.hemesh.HE_Mesh.heItr(), wblut.core.WB_ProgressReporter.WB_ProgressCounter.increment(), wblut.hemesh.HE_Mesh.removeHalfedges(), wblut.hemesh.HE_Mesh.removeVertices(), wblut.core.WB_ProgressReporter.WB_ProgressTracker.setCounterStatusStr(), wblut.hemesh.HE_Mesh.setHalfedge(), wblut.core.WB_ProgressReporter.WB_ProgressTracker.setStartStatusStr(), wblut.core.WB_ProgressReporter.WB_ProgressTracker.setStopStatusStr(), and wblut.hemesh.HE_RAS< E extends HE_Element >.size().
|
static |
Collapse edge. End vertices are averaged. Degenerate faces are removed. This function can result in non-manifold meshes.
mesh | |
e | edge to collapse |
References wblut.geom.WB_Point.addSelf(), wblut.hemesh.HE_Mesh.contains(), wblut.hemesh.HET_Fixer.deleteTwoEdgeFace(), wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Vertex.getHalfedgeStar(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Halfedge.getNextInVertex(), wblut.hemesh.HE_Halfedge.getPair(), wblut.hemesh.HE_Vertex.getPosition(), wblut.hemesh.HE_Halfedge.getPrevInFace(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.hemesh.HE_Halfedge.isEdge(), wblut.geom.WB_Point.mulSelf(), wblut.hemesh.HE_Mesh.remove(), wblut.hemesh.HE_Mesh.setHalfedge(), wblut.hemesh.HE_Mesh.setNext(), and wblut.hemesh.HE_Mesh.setVertex().
|
static |
Collapse edge to its midpoint or to point on boundary
mesh | |
e | |
strict | if true then an edge with two vertices on the boundary is always preserved |
References wblut.geom.WB_Point.addSelf(), wblut.hemesh.HE_Mesh.contains(), wblut.hemesh.HET_Fixer.deleteTwoEdgeFace(), wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Vertex.getHalfedgeStar(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Halfedge.getNextInVertex(), wblut.hemesh.HE_Halfedge.getPair(), wblut.hemesh.HE_Vertex.getPosition(), wblut.hemesh.HE_Halfedge.getPrevInFace(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.hemesh.HE_Vertex.isBoundary(), wblut.hemesh.HE_Halfedge.isEdge(), wblut.hemesh.HE_Halfedge.isInnerBoundary(), wblut.geom.WB_Point.mulSelf(), wblut.hemesh.HE_Mesh.remove(), wblut.hemesh.HE_Vertex.set(), wblut.hemesh.HE_Mesh.setHalfedge(), wblut.hemesh.HE_Mesh.setNext(), and wblut.hemesh.HE_Mesh.setVertex().
|
static |
References wblut.hemesh.HE_Mesh.contains(), wblut.hemesh.HET_Fixer.deleteTwoEdgeFace(), wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Vertex.getHalfedgeStar(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Halfedge.getPair(), wblut.hemesh.HE_Halfedge.getPrevInFace(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.hemesh.HE_Mesh.remove(), wblut.hemesh.HE_Mesh.setHalfedge(), wblut.hemesh.HE_Mesh.setNext(), and wblut.hemesh.HE_Mesh.setVertex().
|
static |
Collapse halfedge if its vertex doesn't belong to the boundary
mesh | |
he | he |
References wblut.hemesh.HE_Mesh.contains(), wblut.hemesh.HET_Fixer.deleteTwoEdgeFace(), wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Vertex.getHalfedgeStar(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Halfedge.getNextInVertex(), wblut.hemesh.HE_Halfedge.getPair(), wblut.hemesh.HE_Halfedge.getPrevInFace(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.hemesh.HE_Vertex.isBoundary(), wblut.hemesh.HE_Mesh.remove(), wblut.hemesh.HE_Mesh.setHalfedge(), wblut.hemesh.HE_Mesh.setNext(), and wblut.hemesh.HE_Mesh.setVertex().
|
static |
mesh | |
he |
References wblut.hemesh.HE_Mesh.add(), wblut.hemesh.HE_Mesh.contains(), wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Mesh.setFace(), and wblut.hemesh.HE_Mesh.setHalfedge().
|
static |
mesh | |
hes |
References wblut.hemesh.HE_Mesh.add(), wblut.hemesh.HE_Mesh.contains(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Mesh.setFace(), wblut.hemesh.HE_Mesh.setHalfedge(), and wblut.hemesh.HE_MeshElement.setVisited().
|
static |
Divide edge.
mesh | |
origE | edge to divide |
n | number of parts |
References wblut.hemesh.HET_MeshOp.splitEdge().
|
static |
mesh | |
key | |
n |
References wblut.hemesh.HET_MeshOp.divideEdge(), and wblut.hemesh.HE_Mesh.getHalfedgeWithKey().
|
static |
Expand vertex to new edge.
mesh | |
v | vertex to expand |
f1 | first face |
f2 | second face |
vn | position of new vertex |
References wblut.hemesh.HE_Mesh.addDerivedElement(), wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Vertex.getHalfedge(), wblut.hemesh.HE_Halfedge.getNextInVertex(), wblut.hemesh.HE_Halfedge.getPrevInFace(), wblut.hemesh.HE_Mesh.setFace(), wblut.hemesh.HE_Mesh.setHalfedge(), wblut.hemesh.HE_Mesh.setNext(), wblut.hemesh.HE_Mesh.setPair(), and wblut.hemesh.HE_Mesh.setVertex().
|
staticprivate |
v | |
normal | |
t1 | |
t2 |
References wblut.geom.WB_Vector.addSelf(), wblut.geom.WB_Vector.cross(), wblut.geom.WB_Vector.dot(), wblut.math.WB_Epsilon.EPSILON, wblut.hemesh.HE_Halfedge.getEndVertex(), wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Vertex.getHalfedge(), wblut.geom.WB_Vector.getLength(), wblut.hemesh.HE_Halfedge.getNextInVertex(), wblut.hemesh.HE_Halfedge.getPrevInFace(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.math.WB_M33.inverse(), wblut.math.WB_M33.mulToPoint(), wblut.geom.WB_MutableCoordinate.setX(), wblut.geom.WB_MutableCoordinate.setY(), wblut.math.WB_Epsilon.SQEPSILON, wblut.geom.WB_MutableCoordinate.xd(), wblut.geom.WB_MutableCoordinate.yd(), and wblut.geom.WB_MutableCoordinate.zd().
|
static |
mesh | |
he |
References wblut.math.WB_Epsilon.EPSILON, wblut.geom.WB_GeometryOp3D.getArea(), wblut.hemesh.HE_Halfedge.getEdgeDihedralAngle(), wblut.hemesh.HE_Halfedge.getEdgeNormal(), wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Face.getFaceDegree(), wblut.hemesh.HE_Halfedge.getHalfedgeCenter(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Halfedge.getPair(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.geom.WB_GeometryOp3D.projectOnPlane(), wblut.hemesh.HE_Mesh.setFace(), wblut.hemesh.HE_Mesh.setHalfedge(), wblut.hemesh.HE_Mesh.setNext(), and wblut.hemesh.HE_Mesh.setVertex().
|
static |
References wblut.geom.WB_GeometryOp3D.getArea(), wblut.hemesh.HE_Halfedge.getEdgeNormal(), wblut.hemesh.HE_Halfedge.getEndVertex(), wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Face.getFaceDegree(), wblut.hemesh.HE_Halfedge.getHalfedgeCenter(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Halfedge.getPair(), wblut.hemesh.HE_Vertex.getPosition(), wblut.geom.WB_Vector.getSqDistance(), wblut.hemesh.HE_Halfedge.getSqLength(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.geom.WB_GeometryOp3D.projectOnPlane(), wblut.hemesh.HE_Mesh.setFace(), wblut.hemesh.HE_Mesh.setHalfedge(), wblut.hemesh.HE_Mesh.setNext(), and wblut.hemesh.HE_Mesh.setVertex().
|
static |
mesh | |
faces |
References wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Halfedge.getPrevInFace(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.hemesh.HE_FaceHalfedgeInnerCirculator.hasNext(), wblut.hemesh.HE_FaceHalfedgeInnerCirculator.next(), wblut.hemesh.HE_Mesh.setHalfedge(), wblut.hemesh.HE_Mesh.setNext(), and wblut.hemesh.HE_Mesh.setVertex().
|
static |
References wblut.geom.WB_GeometryOp3D.getArea(), wblut.hemesh.HE_Halfedge.getEdgeCosDihedralAngle(), wblut.hemesh.HE_Halfedge.getEdgeNormal(), wblut.hemesh.HE_Halfedge.getEndVertex(), wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Face.getFaceDegree(), wblut.hemesh.HE_Halfedge.getHalfedgeCenter(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Halfedge.getPair(), wblut.hemesh.HE_Vertex.getPosition(), wblut.geom.WB_Vector.getSqDistance(), wblut.hemesh.HE_Halfedge.getSqLength(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.math.WB_Epsilon.isZero(), wblut.geom.WB_GeometryOp3D.projectOnPlane(), wblut.hemesh.HE_Mesh.setFace(), wblut.hemesh.HE_Mesh.setHalfedge(), wblut.hemesh.HE_Mesh.setNext(), and wblut.hemesh.HE_Mesh.setVertex().
|
static |
|
static |
Computes the angle defect at a vertex (= 2PI minus the sum of incident angles at an interior vertex or PI minus the sum of incident angles at a boundary vertex).
References wblut.hemesh.HE_Halfedge.getAngle(), wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Vertex.getHalfedge(), wblut.hemesh.HE_Halfedge.getNextInVertex(), and wblut.hemesh.HE_Vertex.isBoundary().
|
static |
|
static |
Get the barycentric dual area. Triangles only.
References wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Face.getFaceArea(), wblut.hemesh.HE_Vertex.getHalfedge(), and wblut.hemesh.HE_Halfedge.getNextInVertex().
|
static |
Get the circumcentric dual area. Triangles only.
References wblut.hemesh.HE_Halfedge.getCotan(), wblut.hemesh.HE_Vertex.getHalfedge(), wblut.hemesh.HE_Halfedge.getNextInVertex(), wblut.hemesh.HE_Halfedge.getPrevInFace(), and wblut.hemesh.HE_Halfedge.getSqLength().
|
static |
tree | |
ray |
References wblut.hemesh.HET_MeshOp.getIntersection(), wblut.geom.WB_GeometryOp3D.getIntersection3D(), wblut.geom.WB_Ray.getOrigin(), wblut.geom.WB_Vector.getSqDistance(), and wblut.hemesh.HE_FaceIntersection.point.
|
static |
tree | |
line |
References wblut.hemesh.HET_MeshOp.getIntersection(), wblut.geom.WB_GeometryOp3D.getIntersection3D(), wblut.geom.WB_Line.getOrigin(), wblut.geom.WB_Vector.getSqDistance(), and wblut.hemesh.HE_FaceIntersection.point.
|
static |
tree | |
segment |
References wblut.hemesh.HET_MeshOp.getIntersection(), wblut.geom.WB_GeometryOp3D.getIntersection3D(), wblut.geom.WB_Line.getOrigin(), wblut.geom.WB_Vector.getSqDistance(), and wblut.hemesh.HE_FaceIntersection.point.
|
static |
|
static |
|
static |
|
static |
Get the closest point to triangle face and its normal.
p | point |
T |
References wblut.geom.WB_Point.addSelf(), wblut.geom.WB_Vector.addSelf(), wblut.geom.WB_Vector.dot(), wblut.hemesh.HE_Halfedge.getEdge(), wblut.hemesh.HE_Halfedge.getEdgeNormal(), wblut.hemesh.HE_Face.getFaceNormal(), wblut.hemesh.HE_Face.getHalfedge(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.hemesh.HE_Vertex.getVertexNormal(), wblut.geom.WB_Vector.mulSelf(), and wblut.geom.WB_Point.subToVector3D().
|
static |
|
static |
References wblut.geom.WB_GeometryFactory3D.createCSFromOXYZ(), wblut.math.WB_Epsilon.EPSILON, wblut.hemesh.HET_MeshOp.findOptimalSolution(), wblut.hemesh.HET_MeshOp.getVertexCS(), wblut.geom.WB_CoordinateSystem3D.getX(), wblut.geom.WB_CoordinateSystem3D.getY(), wblut.geom.WB_CoordinateSystem3D.getZ(), wblut.geom.WB_Vector.mulAddMul(), wblut.geom.WB_MutableCoordinate.xd(), wblut.geom.WB_MutableCoordinate.yd(), and wblut.geom.WB_MutableCoordinate.zd().
|
static |
Builds a sparse matrix encoding the exterior derivative on 0-forms.
mesh |
References wblut.hemesh.HE_Mesh.eItr(), wblut.hemesh.HE_Mesh.getIndex(), wblut.hemesh.HE_Mesh.getNumberOfEdges(), wblut.hemesh.HE_Mesh.getNumberOfVertices(), wblut.hemesh.HE_Halfedge.getPair(), and wblut.hemesh.HE_Halfedge.getVertex().
|
static |
Builds a sparse matrix encoding the exterior derivative on 1-forms.
mesh |
References wblut.hemesh.HE_Mesh.fItr(), wblut.hemesh.HE_Halfedge.getEdge(), wblut.hemesh.HE_Face.getHalfedge(), wblut.hemesh.HE_Mesh.getIndex(), wblut.hemesh.HE_Halfedge.getNextInVertex(), wblut.hemesh.HE_Mesh.getNumberOfEdges(), and wblut.hemesh.HE_Mesh.getNumberOfFaces().
|
static |
References wblut.math.WB_Math.fastAbs(), wblut.hemesh.HET_MeshOp.getFaceNormal(), wblut.hemesh.HE_Face.getHalfedge(), wblut.geom.WB_Vector.getLength3D(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Halfedge.getPrevInFace(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.geom.WB_Coord.xd(), wblut.hemesh.HE_Vertex.xd(), wblut.geom.WB_Coord.yd(), wblut.hemesh.HE_Vertex.yd(), wblut.geom.WB_Coord.zd(), and wblut.hemesh.HE_Vertex.zd().
|
static |
|
static |
tree | |
ray |
References wblut.hemesh.HET_MeshOp.getIntersection(), wblut.geom.WB_GeometryOp3D.getIntersection3D(), wblut.geom.WB_Ray.getOrigin(), wblut.geom.WB_Vector.getSqDistance(), and wblut.hemesh.HE_FaceIntersection.point.
|
static |
tree | |
line |
References wblut.hemesh.HET_MeshOp.getIntersection(), wblut.geom.WB_GeometryOp3D.getIntersection3D(), wblut.geom.WB_Line.getOrigin(), wblut.geom.WB_Vector.getSqDistance(), and wblut.hemesh.HE_FaceIntersection.point.
|
static |
tree | |
segment |
References wblut.hemesh.HET_MeshOp.getIntersection(), wblut.geom.WB_GeometryOp3D.getIntersection3D(), wblut.geom.WB_Line.getOrigin(), wblut.geom.WB_Vector.getSqDistance(), and wblut.hemesh.HE_FaceIntersection.point.
|
static |
|
static |
|
static |
|
static |
Returns the discrete Gaussian curvature. These discrete operators are described in "Discrete Differential-Geometry Operators for Triangulated 2-Manifolds", Mark Meyer, Mathieu Desbrun, Peter Schr?der, and Alan H. Barr. http://www.cs.caltech.edu/~mmeyer/Publications/diffGeomOps.pdf http://www.cs.caltech.edu/~mmeyer/Publications/diffGeomOps.pdf Note: on a sphere, the Gaussian curvature is very accurate, but not the mean curvature. Guoliang Xu suggests improvements in his papers http://lsec.cc.ac.cn/~xuguo/xuguo3.htm
References wblut.geom.WB_Vector.addMulSelf(), wblut.geom.WB_Vector.cross(), wblut.geom.WB_Vector.dot(), wblut.math.WB_Epsilon.EPSILON, wblut.hemesh.HE_Halfedge.getEndVertex(), wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Vertex.getHalfedge(), wblut.geom.WB_Vector.getLength(), wblut.hemesh.HE_Halfedge.getNextInVertex(), wblut.hemesh.HE_Halfedge.getPrevInFace(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.hemesh.HE_Vertex.isBoundary(), wblut.geom.WB_Vector.mulAddMul(), and wblut.geom.WB_Vector.mulSelf().
|
static |
Returns the discrete Gaussian curvature and the mean normal. These discrete operators are described in "Discrete Differential-Geometry Operators for Triangulated 2-Manifolds", Mark Meyer, Mathieu Desbrun, Peter Schr???der, and Alan H. Barr. http://www.cs.caltech.edu/~mmeyer/Publications/diffGeomOps.pdf http://www.cs.caltech.edu/~mmeyer/Publications/diffGeomOps.pdf Note: on a sphere, the Gaussian curvature is very accurate, but not the mean curvature. Guoliang Xu suggests improvements in his papers http://lsec.cc.ac.cn/~xuguo/xuguo3.htm
vertex | |
meanCurvatureVector |
References wblut.geom.WB_Vector.addMulSelf(), wblut.geom.WB_Vector.cross(), wblut.geom.WB_Vector.dot(), wblut.math.WB_Epsilon.EPSILON, wblut.hemesh.HE_Halfedge.getEndVertex(), wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Vertex.getHalfedge(), wblut.geom.WB_Vector.getLength(), wblut.hemesh.HE_Halfedge.getNextInVertex(), wblut.hemesh.HE_Halfedge.getPrevInFace(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.geom.WB_Vector.mulAddMul(), wblut.geom.WB_Vector.mulSelf(), and wblut.geom.WB_MutableCoordinate.set().
|
static |
Builds a sparse diagonal matrix encoding the Hodge operator on 0-forms. By convention, the area of a vertex is 1.
mesh |
References wblut.hemesh.HET_MeshOp.getBarycentricDualVertexArea(), wblut.hemesh.HE_Mesh.getIndex(), wblut.hemesh.HE_Mesh.getNumberOfVertices(), and wblut.hemesh.HE_Mesh.vItr().
|
static |
Builds a sparse diagonal matrix encoding the Hodge operator on 1-forms.
mesh |
References wblut.hemesh.HE_Mesh.eItr(), wblut.hemesh.HET_MeshOp.getCotan(), wblut.hemesh.HE_Mesh.getIndex(), wblut.hemesh.HE_Mesh.getNumberOfEdges(), and wblut.hemesh.HE_Halfedge.getPair().
|
static |
Builds a sparse diagonal matrix encoding the Hodge operator on 2-forms. By convention, the area of a vertex is 1.
mesh |
References wblut.hemesh.HE_Mesh.fItr(), wblut.hemesh.HET_MeshOp.getFaceArea(), wblut.hemesh.HE_Mesh.getIndex(), and wblut.hemesh.HE_Mesh.getNumberOfFaces().
|
static |
face | |
line |
References wblut.geom.WB_GeometryOp3D.getDistanceToClosestPoint3D(), wblut.geom.WB_GeometryOp3D.getIntersection3D(), wblut.hemesh.HE_Face.getPlane(), wblut.geom.WB_IntersectionResult.intersection, wblut.math.WB_Epsilon.isZero(), wblut.geom.WB_IntersectionResult.object, wblut.hemesh.HE_FaceIntersection.point, and wblut.hemesh.HE_Face.toPolygon().
|
static |
face | |
ray |
References wblut.geom.WB_GeometryOp3D.getDistanceToClosestPoint3D(), wblut.geom.WB_GeometryOp3D.getIntersection3D(), wblut.hemesh.HE_Face.getPlane(), wblut.geom.WB_IntersectionResult.intersection, wblut.math.WB_Epsilon.isZero(), wblut.geom.WB_IntersectionResult.object, wblut.hemesh.HE_FaceIntersection.point, and wblut.hemesh.HE_Face.toPolygon().
|
static |
face | |
segment |
References wblut.geom.WB_GeometryOp3D.getDistanceToClosestPoint3D(), wblut.geom.WB_GeometryOp3D.getIntersection3D(), wblut.hemesh.HE_Face.getPlane(), wblut.geom.WB_IntersectionResult.intersection, wblut.math.WB_Epsilon.isZero(), wblut.geom.WB_IntersectionResult.object, wblut.hemesh.HE_FaceIntersection.point, and wblut.hemesh.HE_Face.toPolygon().
|
static |
|
static |
tree | |
ray |
References wblut.hemesh.HET_MeshOp.getIntersection(), and wblut.geom.WB_GeometryOp3D.getIntersection3D().
|
static |
tree | |
segment |
References wblut.hemesh.HET_MeshOp.getIntersection(), and wblut.geom.WB_GeometryOp3D.getIntersection3D().
|
static |
tree | |
line |
References wblut.hemesh.HET_MeshOp.getIntersection(), and wblut.geom.WB_GeometryOp3D.getIntersection3D().
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Builds a sparse laplace matrix. The laplace operator is negative semidefinite; instead we build a positive definite matrix by multiplying the entries of the laplace matrix by -1 and shifting the diagonal elements by a small constant (e.g. 1e-8).
mesh |
References wblut.hemesh.HET_MeshOp.getCotan(), wblut.hemesh.HE_Halfedge.getEndVertex(), wblut.hemesh.HE_Vertex.getHalfedge(), wblut.hemesh.HE_Mesh.getIndex(), wblut.hemesh.HE_Halfedge.getNextInVertex(), wblut.hemesh.HE_Mesh.getNumberOfVertices(), wblut.hemesh.HE_Halfedge.getPair(), and wblut.hemesh.HE_Mesh.vItr().
|
static |
|
static |
Builds a sparse diagonal mass matrix containing the barycentric dual area of each vertex of a mesh. unique index.
mesh |
References wblut.hemesh.HET_MeshOp.getBarycentricDualVertexArea(), wblut.hemesh.HE_Mesh.getIndex(), wblut.hemesh.HE_Mesh.getNumberOfVertices(), and wblut.hemesh.HE_Mesh.vItr().
|
static |
|
static |
|
static |
References wblut.geom.WB_GeometryOp3D.getIntersection3D().
|
static |
References wblut.geom.WB_GeometryOp3D.getIntersection3D().
|
static |
|
static |
|
static |
|
static |
|
static |
Computes the (pointwise) minimum and maximum principal curvature values at a vertex.
v |
References wblut.hemesh.HET_MeshOp.getAngleDefect(), wblut.hemesh.HET_MeshOp.getCircumcentricDualVertexArea(), and wblut.hemesh.HET_MeshOp.getScalarMeanCurvature().
|
static |
Computes the (integrated) scalar gauss curvature at a vertex.
v |
References wblut.hemesh.HET_MeshOp.getAngleDefect().
|
static |
Computes the (integrated) scalar mean curvature at a vertex.
v |
References wblut.hemesh.HE_Vertex.getHalfedge(), wblut.hemesh.HE_Halfedge.getHalfedgeDihedralAngle(), wblut.hemesh.HE_Halfedge.getLength(), and wblut.hemesh.HE_Halfedge.getNextInVertex().
|
static |
|
static |
|
static |
References wblut.geom.WB_GeometryFactory3D.createCSFromOXYZ(), wblut.geom.WB_Vector.cross(), wblut.math.WB_Epsilon.EPSILON, wblut.geom.WB_Vector.getLength(), wblut.hemesh.HET_MeshOp.getVertexNormal(), wblut.geom.WB_Vector.mulSelf(), wblut.geom.WB_MutableCoordinate.setX(), wblut.geom.WB_MutableCoordinate.setY(), wblut.geom.WB_MutableCoordinate.xd(), and wblut.geom.WB_MutableCoordinate.yd().
References wblut.hemesh.HE_Vertex.getHalfedge(), and wblut.hemesh.HET_MeshOp.getVertexNormalAngle().
Computes the normal at a vertex using the "tip angle weights" method.
References wblut.geom.WB_Vector.addMulSelf(), wblut.hemesh.HE_Halfedge.getAngle(), wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Face.getFaceNormal(), wblut.hemesh.HE_Vertex.getHalfedge(), wblut.hemesh.HE_Halfedge.getNextInVertex(), and wblut.geom.WB_Vector.normalizeSelf().
Computes the normal at a vertex using the "face area weights" method.
References wblut.geom.WB_Vector.addMulSelf(), wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Face.getFaceArea(), wblut.hemesh.HE_Face.getFaceNormal(), wblut.hemesh.HE_Vertex.getHalfedge(), wblut.hemesh.HE_Halfedge.getNextInVertex(), and wblut.geom.WB_Vector.normalizeSelf().
Computes the normal at a vertex using the "equally weighted" method.
References wblut.geom.WB_Vector.addSelf(), wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Face.getFaceNormal(), wblut.hemesh.HE_Vertex.getHalfedge(), wblut.hemesh.HE_Halfedge.getNextInVertex(), and wblut.geom.WB_Vector.normalizeSelf().
Computes the normal at a vertex using the "gauss curvature" method.
References wblut.geom.WB_Vector.addMulSelf(), wblut.hemesh.HE_Vertex.getHalfedge(), wblut.hemesh.HE_Halfedge.getHalfedgeDihedralAngle(), wblut.hemesh.HE_Halfedge.getHalfedgeVector(), wblut.hemesh.HE_Halfedge.getLength(), wblut.hemesh.HE_Halfedge.getNextInVertex(), and wblut.geom.WB_Vector.normalizeSelf().
Computes the normal at a vertex using the "mean curvature" method. Triangles only.
References wblut.geom.WB_Vector.addMulSelf(), wblut.hemesh.HE_Halfedge.getCotan(), wblut.hemesh.HE_Vertex.getHalfedge(), wblut.hemesh.HE_Halfedge.getHalfedgeVector(), wblut.hemesh.HE_Halfedge.getNextInVertex(), wblut.hemesh.HE_Halfedge.getPair(), and wblut.geom.WB_Vector.normalizeSelf().
Computes the normal at a vertex using the "inscribed sphere" method. Triangles only.
References wblut.geom.WB_Vector.addMulSelf(), wblut.geom.WB_Vector.cross(), wblut.hemesh.HE_Vertex.getHalfedge(), wblut.hemesh.HE_Halfedge.getHalfedgeVector(), wblut.hemesh.HE_Halfedge.getNextInVertex(), wblut.hemesh.HE_Halfedge.getPrevInFace(), wblut.geom.WB_Vector.getSqLength(), and wblut.geom.WB_Vector.normalizeSelf().
|
static |
References wblut.geom.WB_Classification.CONCAVE, wblut.geom.WB_Classification.CONVEX, wblut.geom.WB_Vector.cross(), wblut.geom.WB_Vector.dot(), wblut.math.WB_Epsilon.EPSILON, wblut.geom.WB_Classification.FLAT, wblut.geom.WB_Classification.FLATCONCAVE, wblut.geom.WB_Classification.FLATCONVEX, wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Face.getFaceNormal(), wblut.hemesh.HE_Vertex.getHalfedge(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Halfedge.getNextInVertex(), wblut.hemesh.HE_Halfedge.getPair(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.geom.WB_Classification.SADDLE, wblut.geom.WB_Point.subSelf(), and wblut.geom.WB_Classification.UNKNOWN.
|
static |
|
static |
References wblut.math.WB_Epsilon.EPSILONANGLE.
|
static |
|
static |
|
static |
|
static |
|
static |
References wblut.geom.WB_Point.addSelf(), wblut.hemesh.HE_Selection.clearFaces(), wblut.hemesh.HE_Selection.clearVertices(), wblut.hemesh.HE_Selection.collectVertices(), wblut.hemesh.HE_Selection.get(), wblut.hemesh.HE_Selection.getNumberOfVertices(), wblut.hemesh.HE_Vertex.getPosition(), wblut.hemesh.HE_Vertex.getVertexNormal(), wblut.hemesh.HE_VertexIterator.hasNext(), wblut.geom.WB_Vector.mul(), wblut.hemesh.HE_VertexIterator.next(), and wblut.hemesh.HE_Selection.vItr().
Check if point lies inside or on edge of face.
p | point |
f | the f |
References wblut.geom.WB_GeometryOp3D.getDistanceToClosestPoint3D(), wblut.math.WB_Epsilon.isZero(), and wblut.hemesh.HE_Face.toPolygon().
|
static |
Check if point lies strictly inside face.
p | point |
f | the f |
References wblut.geom.WB_GeometryOp3D.getClosestPoint3D(), wblut.geom.WB_GeometryOp3D.getClosestPointOnPeriphery3D(), wblut.geom.WB_GeometryOp3D.getSqDistance3D(), wblut.math.WB_Epsilon.isZeroSq(), and wblut.hemesh.HE_Face.toPolygon().
|
static |
mesh | |
unpairedHalfedge |
References wblut.hemesh.HE_RAS< E extends HE_Element >.add(), wblut.hemesh.HE_MeshElement.clearVisited(), wblut.hemesh.HE_Mesh.fItr(), wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Halfedge.getPair(), wblut.hemesh.HE_RAS< E extends HE_Element >.getWithIndex(), wblut.hemesh.HE_FaceIterator.hasNext(), wblut.hemesh.HE_FaceHalfedgeInnerCirculator.hasNext(), wblut.hemesh.HE_MeshElement.isVisited(), wblut.hemesh.HE_FaceIterator.next(), wblut.hemesh.HE_FaceHalfedgeInnerCirculator.next(), wblut.hemesh.HE_RAS< E extends HE_Element >.remove(), wblut.hemesh.HE_MeshElement.setVisited(), and wblut.hemesh.HE_RAS< E extends HE_Element >.size().
|
static |
Split edge in half.
mesh | |
edge | edge to split. |
References wblut.geom.WB_GeometryFactory3D.createMidpoint(), wblut.hemesh.HE_Halfedge.getEndVertex(), and wblut.hemesh.HE_Halfedge.getVertex().
|
static |
Split edge in two parts.
mesh | |
edge | edge to split |
f | fraction of first part (0..1) |
References wblut.geom.WB_GeometryFactory3D.createInterpolatedPoint(), wblut.hemesh.HE_Halfedge.getEndVertex(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.hemesh.HE_Halfedge.isEdge(), and wblut.hemesh.HET_MeshOp.splitEdge().
|
static |
Insert vertex in edge.
mesh | |
edge | edge to split |
x | x-coordinate of new vertex |
y | y-coordinate of new vertex |
z | z-coordinate of new vertex |
References wblut.hemesh.HET_MeshOp.splitEdge().
|
static |
Split edge in multiple parts.
mesh | |
edge | edge to split |
f | array of fractions (0..1) |
References wblut.geom.WB_GeometryFactory3D.createInterpolatedPoint(), wblut.hemesh.HE_Selection.eItr(), wblut.hemesh.HE_Halfedge.getPair(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.hemesh.HE_Halfedge.isEdge(), wblut.hemesh.HE_EdgeIterator.next(), and wblut.hemesh.HET_MeshOp.splitEdge().
|
static |
Split edge in multiple parts.
mesh | |
edge | edge to split |
f | array of fractions (0..1) |
References wblut.geom.WB_GeometryFactory3D.createInterpolatedPoint(), wblut.hemesh.HE_Selection.eItr(), wblut.hemesh.HE_Halfedge.getPair(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.hemesh.HE_Halfedge.isEdge(), wblut.hemesh.HE_EdgeIterator.next(), and wblut.hemesh.HET_MeshOp.splitEdge().
|
static |
Insert vertex in edge.
mesh | |
edge | edge to split |
v | position of new vertex |
References wblut.hemesh.HE_Selection.add(), wblut.hemesh.HE_Mesh.addDerivedElement(), wblut.hemesh.HE_Selection.addEdge(), wblut.hemesh.HE_Halfedge.copyProperties(), wblut.geom.WB_Vector.getDistance(), wblut.hemesh.HE_Halfedge.getFace(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Halfedge.getPair(), wblut.hemesh.HE_Vertex.getPosition(), wblut.hemesh.HE_Halfedge.getUVW(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.hemesh.HE_Halfedge.hasUVW(), wblut.hemesh.HE_Halfedge.isEdge(), wblut.hemesh.HE_Mesh.setFace(), wblut.hemesh.HE_Mesh.setHalfedge(), wblut.hemesh.HE_Element.setInternalLabel(), wblut.hemesh.HE_Mesh.setNext(), wblut.hemesh.HE_Mesh.setPair(), wblut.hemesh.HE_Halfedge.setUVW(), and wblut.hemesh.HE_Mesh.setVertex().
|
static |
Split edge in half.
mesh | |
key | key of edge to split. |
References wblut.geom.WB_GeometryFactory3D.createMidpoint(), wblut.hemesh.HE_Halfedge.getEndVertex(), wblut.hemesh.HE_Mesh.getHalfedgeWithKey(), wblut.hemesh.HE_Halfedge.getVertex(), and wblut.hemesh.HET_MeshOp.splitEdge().
|
static |
Split edge in two parts.
mesh | |
key | key of edge to split |
f | fraction of first part (0..1) |
References wblut.hemesh.HE_Mesh.getHalfedgeWithKey(), and wblut.hemesh.HET_MeshOp.splitEdge().
|
static |
Insert vertex in edge.
mesh | |
key | key of edge to split |
x | x-coordinate of new vertex |
y | y-coordinate of new vertex |
z | z-coordinate of new vertex |
References wblut.hemesh.HET_MeshOp.splitEdge().
|
static |
Split edge in multiple parts.
mesh | |
key | key of edge to split |
f | array of fractions (0..1) |
References wblut.hemesh.HE_Mesh.getHalfedgeWithKey(), and wblut.hemesh.HET_MeshOp.splitEdge().
|
static |
Split edge in multiple parts.
mesh | |
key | key of edge to split |
f | array of fractions (0..1) |
References wblut.hemesh.HE_Mesh.getHalfedgeWithKey(), and wblut.hemesh.HET_MeshOp.splitEdge().
|
static |
Insert vertex in edge.
mesh | |
key | key of edge to split |
v | position of new vertex |
References wblut.hemesh.HE_Mesh.getHalfedgeWithKey(), and wblut.hemesh.HET_MeshOp.splitEdge().
|
static |
Split all edges in half.
mesh |
References wblut.hemesh.HE_Selection.add(), wblut.hemesh.HE_Mesh.getEdgesAsArray(), and wblut.hemesh.HET_MeshOp.splitEdge().
|
static |
Split all edges in half, offset the center by a given distance along the edge normal.
mesh | |
offset | the offset |
References wblut.hemesh.HE_Selection.add(), wblut.geom.WB_Point.addSelf(), wblut.hemesh.HE_Mesh.getEdgesAsArray(), wblut.hemesh.HE_Mesh.getNumberOfEdges(), wblut.geom.WB_Point.mulSelf(), and wblut.hemesh.HET_MeshOp.splitEdge().
|
static |
Split edge in half.
selection | edges to split. |
References wblut.hemesh.HE_Selection.add(), wblut.hemesh.HE_Selection.addHalfedges(), wblut.hemesh.HE_Selection.collectEdgesByFace(), wblut.hemesh.HE_Selection.getEdgesAsArray(), wblut.hemesh.HE_Selection.heItr(), and wblut.hemesh.HET_MeshOp.splitEdge().
|
static |
Split edge in half, offset the center by a given distance along the edge normal.
selection | edges to split. |
offset | the offset |
References wblut.hemesh.HE_Selection.add(), wblut.hemesh.HE_Selection.addHalfedges(), wblut.geom.WB_Point.addSelf(), wblut.hemesh.HE_Selection.collectEdgesByFace(), wblut.hemesh.HE_Halfedge.getEdgeNormal(), wblut.hemesh.HE_Selection.getEdgesAsArray(), wblut.hemesh.HE_Halfedge.getHalfedgeCenter(), wblut.hemesh.HE_Selection.heItr(), wblut.geom.WB_Point.mulSelf(), and wblut.hemesh.HET_MeshOp.splitEdge().
|
static |
Divide face along two vertices.
mesh | |
face | face to divide |
vi | first vertex |
vj | second vertex |
References wblut.hemesh.HE_Selection.add(), wblut.hemesh.HE_Mesh.addDerivedElement(), wblut.hemesh.HE_Selection.addEdge(), wblut.hemesh.HET_MeshOp.assignFaceToLoop(), wblut.hemesh.HE_Face.copyProperties(), wblut.hemesh.HET_Fixer.deleteTwoEdgeFace(), wblut.geom.WB_Vector.getDistance(), wblut.hemesh.HE_Face.getFaceDegree(), wblut.hemesh.HE_Vertex.getHalfedge(), wblut.hemesh.HE_Vertex.getHalfedgeStar(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Vertex.getPosition(), wblut.hemesh.HE_Halfedge.getPrevInFace(), wblut.hemesh.HE_Halfedge.getUVW(), wblut.hemesh.HE_Halfedge.hasUVW(), wblut.hemesh.HE_Halfedge.isEdge(), wblut.math.WB_Epsilon.isZero(), wblut.hemesh.HE_Selection.remove(), wblut.hemesh.HE_Mesh.remove(), wblut.hemesh.HE_Mesh.setFace(), wblut.hemesh.HE_Mesh.setHalfedge(), wblut.hemesh.HE_Element.setInternalLabel(), wblut.hemesh.HE_Mesh.setNext(), wblut.hemesh.HE_Mesh.setPair(), wblut.hemesh.HE_Halfedge.setUVW(), and wblut.hemesh.HE_Mesh.setVertex().
|
static |
Divide face along two vertices.
mesh | |
fkey | key of face |
vkeyi | key of first vertex |
vkeyj | key of second vertex |
References wblut.hemesh.HE_Mesh.getFaceWithKey(), wblut.hemesh.HE_Mesh.getVertexWithKey(), and wblut.hemesh.HET_MeshOp.splitFace().
|
static |
mesh |
References wblut.hemesh.HE_Mesh.getSelection(), and wblut.hemesh.HE_Mesh.modify().
|
static |
mesh | |
d |
References wblut.hemesh.HE_Mesh.getSelection(), wblut.hemesh.HE_Mesh.modify(), and wblut.hemesh.HEM_CenterSplit.setOffset().
|
static |
mesh | |
d | |
c |
References wblut.hemesh.HE_Mesh.getSelection(), wblut.hemesh.HE_Mesh.modify(), wblut.hemesh.HEM_CenterSplit.setChamfer(), and wblut.hemesh.HEM_CenterSplit.setOffset().
|
static |
faces |
References wblut.hemesh.HE_Mesh.getSelection(), and wblut.hemesh.HE_Selection.modify().
|
static |
faces | |
d |
References wblut.hemesh.HE_Mesh.getSelection(), wblut.hemesh.HE_Selection.modify(), and wblut.hemesh.HEM_CenterSplit.setOffset().
|
static |
faces | |
d | |
c |
References wblut.hemesh.HE_Mesh.getSelection(), wblut.hemesh.HE_Selection.modify(), wblut.hemesh.HEM_CenterSplit.setChamfer(), and wblut.hemesh.HEM_CenterSplit.setOffset().
|
static |
mesh |
References wblut.hemesh.HEM_CenterSplitHole.getWallFaces(), and wblut.hemesh.HE_Mesh.modify().
|
static |
mesh | |
d |
References wblut.hemesh.HEM_CenterSplitHole.getWallFaces(), wblut.hemesh.HE_Mesh.modify(), and wblut.hemesh.HEM_CenterSplitHole.setOffset().
|
static |
mesh | |
d | |
c |
References wblut.hemesh.HEM_CenterSplitHole.getWallFaces(), wblut.hemesh.HE_Mesh.modify(), wblut.hemesh.HEM_CenterSplitHole.setChamfer(), and wblut.hemesh.HEM_CenterSplitHole.setOffset().
|
static |
faces |
References wblut.hemesh.HEM_CenterSplitHole.getWallFaces(), and wblut.hemesh.HE_Selection.modify().
|
static |
faces | |
d |
References wblut.hemesh.HEM_CenterSplitHole.getWallFaces(), wblut.hemesh.HE_Selection.modify(), and wblut.hemesh.HEM_CenterSplitHole.setOffset().
|
static |
faces | |
d | |
c |
References wblut.hemesh.HEM_CenterSplitHole.getWallFaces(), wblut.hemesh.HE_Selection.modify(), wblut.hemesh.HEM_CenterSplitHole.setChamfer(), and wblut.hemesh.HEM_CenterSplitHole.setOffset().
|
static |
Hybrid split faces: midsplit for triangles, quad split otherwise.
mesh |
References wblut.hemesh.HE_Selection.add(), wblut.hemesh.HE_Mesh.addDerivedElement(), wblut.hemesh.HE_Selection.addFaces(), wblut.hemesh.HE_Selection.addVertices(), wblut.hemesh.HE_Selection.collectEdgesByFace(), wblut.hemesh.HE_Selection.collectVertices(), wblut.hemesh.HE_Selection.contains(), wblut.hemesh.HE_Face.copyProperties(), wblut.hemesh.HE_Mesh.fItr(), wblut.hemesh.HE_Face.getFaceCenter(), wblut.hemesh.HE_Face.getFaceDegree(), wblut.hemesh.HE_Mesh.getFacesAsArray(), wblut.hemesh.HE_Face.getHalfedge(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Mesh.getNumberOfFaces(), wblut.hemesh.HE_Halfedge.getUVW(), wblut.hemesh.HE_Vertex.getUVW(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.hemesh.HE_Halfedge.hasHalfedgeUVW(), wblut.hemesh.HE_Halfedge.hasUVW(), wblut.hemesh.HE_Vertex.hasUVW(), wblut.hemesh.HE_Mesh.pairHalfedges(), wblut.hemesh.HE_Mesh.setFace(), wblut.hemesh.HE_Mesh.setHalfedge(), wblut.hemesh.HE_Element.setInternalLabel(), wblut.hemesh.HE_Mesh.setNext(), wblut.hemesh.HE_Mesh.setPair(), wblut.hemesh.HE_Halfedge.setUVW(), wblut.hemesh.HE_Vertex.setUVW(), wblut.hemesh.HE_Mesh.setVertex(), wblut.hemesh.HET_MeshOp.splitEdges(), wblut.hemesh.HE_TextureCoordinate.ud(), wblut.hemesh.HE_TextureCoordinate.vd(), and wblut.hemesh.HE_TextureCoordinate.wd().
|
static |
Hybrid split faces: midsplit for triangles, quad split otherwise.
sel | the sel |
References wblut.hemesh.HE_Selection.add(), wblut.hemesh.HE_Mesh.addDerivedElement(), wblut.hemesh.HE_Selection.addFaces(), wblut.hemesh.HE_Selection.addVertices(), wblut.hemesh.HE_Selection.collectEdgesByFace(), wblut.hemesh.HE_Selection.collectVertices(), wblut.hemesh.HE_Selection.contains(), wblut.hemesh.HE_Face.copyProperties(), wblut.hemesh.HE_Selection.fItr(), wblut.hemesh.HE_Face.getFaceCenter(), wblut.hemesh.HE_Face.getFaceDegree(), wblut.hemesh.HE_Selection.getFacesAsArray(), wblut.hemesh.HE_Face.getHalfedge(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Selection.getNumberOfFaces(), wblut.hemesh.HE_Halfedge.getUVW(), wblut.hemesh.HE_Vertex.getUVW(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.hemesh.HE_Selection.getVerticesAsArray(), wblut.hemesh.HE_Halfedge.hasHalfedgeUVW(), wblut.hemesh.HE_Halfedge.hasUVW(), wblut.hemesh.HE_Vertex.hasUVW(), wblut.hemesh.HE_Mesh.pairHalfedges(), wblut.hemesh.HE_Mesh.setFace(), wblut.hemesh.HE_Mesh.setHalfedge(), wblut.hemesh.HE_Element.setInternalLabel(), wblut.hemesh.HE_Mesh.setNext(), wblut.hemesh.HE_Mesh.setPair(), wblut.hemesh.HE_Halfedge.setUVW(), wblut.hemesh.HE_Vertex.setUVW(), wblut.hemesh.HE_Mesh.setVertex(), wblut.hemesh.HET_MeshOp.splitEdges(), wblut.hemesh.HE_TextureCoordinate.ud(), wblut.hemesh.HE_TextureCoordinate.vd(), and wblut.hemesh.HE_TextureCoordinate.wd().
|
static |
Midedge split faces.
mesh |
References wblut.hemesh.HE_Mesh.addDerivedElement(), wblut.hemesh.HE_Selection.addFaces(), wblut.hemesh.HE_Selection.addVertices(), wblut.hemesh.HE_Selection.collectEdgesByFace(), wblut.hemesh.HE_Selection.collectVertices(), wblut.hemesh.HE_Selection.contains(), wblut.hemesh.HE_Face.copyProperties(), wblut.hemesh.HE_Mesh.fItr(), wblut.hemesh.HE_Face.getFaceDegree(), wblut.hemesh.HE_Mesh.getFacesAsArray(), wblut.hemesh.HE_Face.getHalfedge(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Mesh.getNumberOfFaces(), wblut.hemesh.HE_Halfedge.getUVW(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.hemesh.HE_Halfedge.hasUVW(), wblut.hemesh.HE_Mesh.setFace(), wblut.hemesh.HE_Mesh.setHalfedge(), wblut.hemesh.HE_Mesh.setNext(), wblut.hemesh.HE_Mesh.setPair(), wblut.hemesh.HE_Halfedge.setUVW(), wblut.hemesh.HE_Mesh.setVertex(), and wblut.hemesh.HET_MeshOp.splitEdges().
|
static |
Mid edge split selected faces.
selection | selection to split |
References wblut.hemesh.HE_Selection.add(), wblut.hemesh.HE_Mesh.addDerivedElement(), wblut.hemesh.HE_Selection.addFaces(), wblut.hemesh.HE_Selection.addVertices(), wblut.hemesh.HE_Selection.collectEdgesByFace(), wblut.hemesh.HE_Selection.collectVertices(), wblut.hemesh.HE_Selection.contains(), wblut.hemesh.HE_Face.copyProperties(), wblut.hemesh.HE_Selection.fItr(), wblut.hemesh.HE_Face.getFaceDegree(), wblut.hemesh.HE_Selection.getFacesAsArray(), wblut.hemesh.HE_Face.getHalfedge(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Selection.getNumberOfFaces(), wblut.hemesh.HE_Halfedge.getUVW(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.hemesh.HE_Selection.getVerticesAsArray(), wblut.hemesh.HE_Halfedge.hasUVW(), wblut.hemesh.HE_Mesh.setFace(), wblut.hemesh.HE_Mesh.setHalfedge(), wblut.hemesh.HE_Mesh.setNext(), wblut.hemesh.HE_Mesh.setPair(), wblut.hemesh.HE_Halfedge.setUVW(), wblut.hemesh.HE_Mesh.setVertex(), and wblut.hemesh.HET_MeshOp.splitEdges().
|
static |
Mid edge split faces.
mesh |
References wblut.hemesh.HE_Mesh.addDerivedElement(), wblut.hemesh.HE_Selection.addFaces(), wblut.hemesh.HE_Selection.addVertices(), wblut.hemesh.HE_Selection.collectEdgesByFace(), wblut.hemesh.HE_Selection.collectVertices(), wblut.hemesh.HE_Selection.contains(), wblut.hemesh.HE_Face.copyProperties(), wblut.hemesh.HE_Mesh.deleteFace(), wblut.hemesh.HE_Mesh.fItr(), wblut.hemesh.HE_Face.getFaceDegree(), wblut.hemesh.HE_Mesh.getFacesAsArray(), wblut.hemesh.HE_Face.getHalfedge(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Mesh.getNumberOfFaces(), wblut.hemesh.HE_Halfedge.getUVW(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.hemesh.HE_Halfedge.hasUVW(), wblut.hemesh.HE_Mesh.setFace(), wblut.hemesh.HE_Mesh.setHalfedge(), wblut.hemesh.HE_Mesh.setNext(), wblut.hemesh.HE_Mesh.setPair(), wblut.hemesh.HE_Halfedge.setUVW(), wblut.hemesh.HE_Mesh.setVertex(), and wblut.hemesh.HET_MeshOp.splitEdges().
|
static |
selection |
References wblut.hemesh.HE_Selection.add(), wblut.hemesh.HE_Mesh.addDerivedElement(), wblut.hemesh.HE_Selection.addFaces(), wblut.hemesh.HE_Selection.addVertices(), wblut.hemesh.HE_Selection.collectEdgesByFace(), wblut.hemesh.HE_Selection.collectVertices(), wblut.hemesh.HE_Selection.contains(), wblut.hemesh.HE_Face.copyProperties(), wblut.hemesh.HE_Mesh.deleteFace(), wblut.hemesh.HE_Selection.fItr(), wblut.hemesh.HE_Face.getFaceDegree(), wblut.hemesh.HE_Selection.getFacesAsArray(), wblut.hemesh.HE_Face.getHalfedge(), wblut.hemesh.HE_Halfedge.getNextInFace(), wblut.hemesh.HE_Selection.getNumberOfFaces(), wblut.hemesh.HE_Halfedge.getUVW(), wblut.hemesh.HE_Halfedge.getVertex(), wblut.hemesh.HE_Halfedge.hasUVW(), wblut.hemesh.HE_Mesh.setFace(), wblut.hemesh.HE_Mesh.setHalfedge(), wblut.hemesh.HE_Mesh.setNext(), wblut.hemesh.HE_Mesh.setPair(), wblut.hemesh.HE_Halfedge.setUVW(), wblut.hemesh.HE_Mesh.setVertex(), and wblut.hemesh.HET_MeshOp.splitEdges().
|
static |
Quad split faces.
mesh |
References wblut.hemesh.HES_QuadSplit.getSplitFaces(), and wblut.hemesh.HE_Mesh.subdivide().
|
static |
Quad split faces.
mesh | |
d |
References wblut.hemesh.HES_QuadSplit.getSplitFaces(), wblut.hemesh.HES_QuadSplit.setOffset(), and wblut.hemesh.HE_Mesh.subdivide().
|
static |
Quad split selected faces.
sel | selection to split |
References wblut.hemesh.HES_QuadSplit.getSplitFaces(), and wblut.hemesh.HE_Selection.subdivide().
|
static |
Quad split selected faces.
sel | selection to split |
d |
References wblut.hemesh.HES_QuadSplit.getSplitFaces(), wblut.hemesh.HES_QuadSplit.setOffset(), and wblut.hemesh.HE_Selection.subdivide().
|
static |
Tri split faces.
mesh |
References wblut.hemesh.HEM_TriSplit.getSplitFaces(), and wblut.hemesh.HE_Mesh.modify().
|
static |
Tri split faces with offset along face normal.
mesh | |
d | offset along face normal |
References wblut.hemesh.HEM_TriSplit.getSplitFaces(), wblut.hemesh.HE_Mesh.modify(), and wblut.hemesh.HEM_TriSplit.setOffset().
|
static |
Tri split faces.
selection | face selection to split |
References wblut.hemesh.HEM_TriSplit.getSplitFaces(), and wblut.hemesh.HE_Selection.modify().
|
static |
Tri split faces with offset along face normal.
selection | face selection to split |
d | offset along face normal |
References wblut.hemesh.HEM_TriSplit.getSplitFaces(), wblut.hemesh.HE_Selection.modify(), and wblut.hemesh.HEM_TriSplit.setOffset().
|
static |
Triangulate all faces.
mesh |
References wblut.hemesh.HE_Mesh.modify(), and wblut.hemesh.HEM_TriangulateMT.triangles.
|
static |
mesh | |
face |
References wblut.hemesh.HE_Selection.add(), and wblut.hemesh.HET_MeshOp.triangulate().
|
static |
Triangulate.
sel | selection |
References wblut.hemesh.HE_Selection.modify(), and wblut.hemesh.HEM_TriangulateMT.triangles.
|
static |
Triangulate face.
mesh | |
key | key of face |
References wblut.hemesh.HE_Mesh.getFaceWithKey(), and wblut.hemesh.HET_MeshOp.triangulate().
|
static |
Triangulate face if concave.
mesh | |
face | key of face |
References wblut.hemesh.HE_Selection.add(), wblut.geom.WB_Classification.CONCAVE, wblut.hemesh.HE_Face.getFaceType(), and wblut.hemesh.HET_MeshOp.triangulate().
|
static |
Triangulate face if concave.
mesh | |
key | key of face |
References wblut.hemesh.HE_Mesh.getFaceWithKey(), and wblut.hemesh.HET_MeshOp.triangulateConcaveFace().
|
static |
Triangulate all concave faces.
mesh |
References wblut.geom.WB_Classification.CONCAVE, wblut.hemesh.HE_Mesh.getFacesAsArray(), wblut.hemesh.HET_MeshOp.getFaceType(), wblut.hemesh.HE_Mesh.getNumberOfFaces(), wblut.hemesh.HET_MeshOp.triangulate(), and wblut.hemesh.HE_Selection.union().
|
static |
mesh | |
sel |
References wblut.hemesh.HE_Selection.add(), wblut.geom.WB_Classification.CONCAVE, wblut.hemesh.HE_Mesh.get(), wblut.hemesh.HE_Element.key, wblut.hemesh.HET_MeshOp.triangulate(), and wblut.hemesh.HE_Selection.union().
|
static |
|
static |
mesh | |
vertexkey |
References wblut.hemesh.HE_Selection.add(), wblut.hemesh.HE_Selection.contains(), wblut.hemesh.HE_Mesh.getVertexWithKey(), wblut.hemesh.HE_VertexFaceCirculator.hasNext(), wblut.hemesh.HE_VertexFaceCirculator.next(), and wblut.hemesh.HET_MeshOp.triangulate().
|
staticprivate |
|
static |