Uses of Class
Jcg.polyhedron.Halfedge
Packages that use Halfedge
-
Uses of Halfedge in Jcg.mesh
Modifier and TypeMethodDescriptionMeshBuilder.getNextBoundaryHalfedge(Halfedge<X> e) Given a boundary half-edge e, returns the next boundary half-edge around the same face Warning: the mesh is supposed to be manifold (boundary cycles are disjoint)Modifier and TypeMethodDescriptionMeshBuilder.getNextBoundaryHalfedge(Halfedge<X> e) Given a boundary half-edge e, returns the next boundary half-edge around the same face Warning: the mesh is supposed to be manifold (boundary cycles are disjoint)private StringPrint the edge (the index of its extremities) Useful for debugging -
Uses of Halfedge in Jcg.meshgeneration
Fields in Jcg.meshgeneration declared as HalfedgeMethods in Jcg.meshgeneration that return HalfedgeModifier and TypeMethodDescriptionRandomSamplingTriangulations.addRoot()RandomSamplingTriangulations.newHalfedge()Methods in Jcg.meshgeneration that return types with arguments of type HalfedgeModifier and TypeMethodDescriptionSphereGeneration.computeEdgePoints()Compute all new edge points and store the result in an HashMapMethods in Jcg.meshgeneration with parameters of type HalfedgeModifier and TypeMethodDescription(package private) voidprivate Point_3SphereGeneration.computeEdgePoint(Halfedge<Point_3> h) Compute the midpoint of the given the half-edge 'h'(package private) intRandomSamplingTriangulations.decodeSubtree(Halfedge<Point_2> nodeEdge, int i) (package private) static booleanRandomSamplingTriangulations.isExternal(Halfedge<Point_2> h) (package private) static booleanRandomSamplingTriangulations.isInternal(Halfedge<Point_2> h) Method parameters in Jcg.meshgeneration with type arguments of type HalfedgeModifier and TypeMethodDescriptionprivate voidSphereGeneration.splitEdges(HashMap<Halfedge<Point_3>, Point_3> edgePoints) Splits all edges by inserting a new vertex -
Uses of Halfedge in Jcg.pointLocation
Methods in Jcg.pointLocation that return HalfedgeModifier and TypeMethodDescriptionPlanarPointLocation.locatePoint(Polyhedron_3<Point_2> triangulation, Point_2 queryPoint) Compute and return the face (an incident half-edge) containing the query point -
Uses of Halfedge in Jcg.polyhedron
Fields in Jcg.polyhedron declared as HalfedgeModifier and TypeFieldDescriptionHalfedge[]SeparatingTriangle.edgesFace.halfedgea reference to a half-edge incident to this faceVertex.halfedgeHalfedge.nexta reference to next half-edge (in ccw direction) in the same incident faceHalfedge.oppositea reference to opposite half-edge, lying in the neighboring faceHalfedge.preva reference to previous half-edge (in ccw direction) in the same incident face.Fields in Jcg.polyhedron with type parameters of type HalfedgeModifier and TypeFieldDescriptionPolyhedron_3.halfedgesdynamic array storing the half-edges of the meshMethods in Jcg.polyhedron that return HalfedgeModifier and TypeMethodDescriptionPolyhedron_3.addTriangleToBorder(Halfedge h, X point) Creates a new triangle facet within the hole incident to 'h' by connecting the tip of 'h' with two new halfedges and a new vertex.Polyhedron_3.eraseCenterVertex(Halfedge<X> e) Erase the vertex 'v' pointed by 'e', by replacing the star of 'v' by a new face.Face.getEdge()Vertex.getHalfedge()Halfedge.getNext()Halfedge.getOpposite()Halfedge.getPrev()Join the the facets incident to the half-edge h.Polyhedron_3.makeTriangle(X p1, X p2, X p3) A triangle with border edges is added to the polyhedral surface.Split the half-edge h=(u,v) by inserting a new vertex, with coordinates given by the point p.Polyhedron_3.splitFacet(Halfedge<X> h, Halfedge<X> g) Split the facet incident to h and g into two facets with a new diagonal between the two vertices denoted by h and g respectively.Methods in Jcg.polyhedron that return types with arguments of type HalfedgeModifier and TypeMethodDescriptionVertex.getOutgoingHalfedges()Return the list of the (outgoing) halfedges incident to the vertexMethods in Jcg.polyhedron with parameters of type HalfedgeModifier and TypeMethodDescriptionPolyhedron_3.addTriangleToBorder(Halfedge h, X point) Creates a new triangle facet within the hole incident to 'h' by connecting the tip of 'h' with two new halfedges and a new vertex.voidPolyhedron_3.edgeCollapse(Halfedge<Point_3> e) Perform the collapse of half-edge e=(u,v).Polyhedron_3.eraseCenterVertex(Halfedge<X> e) Erase the vertex 'v' pointed by 'e', by replacing the star of 'v' by a new face.voidPerform the flip of an edge e=(u, v)
Remarks:
-) an edge can be flipped only if the two incident faces (u, v, w) and (u, v, z) are both triangles
-) boundary edges cannot be flipped
-) w and z must be not adjacent: otherwise we create a multiple edgePolyhedron_3.getSeparatingCycles(Halfedge<X> e) Return all separating separating containing the half-edge 'e1'.private static int[]SeparatingTriangle.getSortedVertices(Halfedge[] e) booleanCheck whether three edges define an (oriented) cycle of length 3 (a triangle, not necessarily a face).booleanCheck whether three half-edges define a triangle face of the mesh.booleanCheck whether three edges define an (oriented) cycle of length 3 (a triangle, not necessarily a face).booleanPolyhedron_3.isTriangle(Halfedge<X> h) Warning: not implemented yetJoin the the facets incident to the half-edge h.voidvoidvoidvoidHalfedge.setOpposite(Halfedge<X> e) voidSplit the half-edge h=(u,v) by inserting a new vertex, with coordinates given by the point p.Polyhedron_3.splitFacet(Halfedge<X> h, Halfedge<X> g) Split the facet incident to h and g into two facets with a new diagonal between the two vertices denoted by h and g respectively.Constructors in Jcg.polyhedron with parameters of type Halfedge