Class HalfEdgeSurface

java.lang.Object
com.gaia3d.basic.halfedge.HalfEdgeSurface
All Implemented Interfaces:
Serializable

public class HalfEdgeSurface extends Object implements Serializable
See Also:
  • Constructor Details

    • HalfEdgeSurface

      public HalfEdgeSurface()
  • Method Details

    • setTwins

      public void setTwins()
    • calculatePlaneNormals

      public void calculatePlaneNormals()
    • calculateNormals

      public void calculateNormals()
    • deleteObjects

      public void deleteObjects()
    • getMapHalfEdgeToDirection

      public Map<HalfEdge,org.joml.Vector3d> getMapHalfEdgeToDirection(Map<HalfEdge,org.joml.Vector3d> resultMapHalfEdgeToDirection)
    • getMapPositionToVertices

      public Map<org.joml.Vector3d,List<HalfEdgeVertex>> getMapPositionToVertices(Map<org.joml.Vector3d,List<HalfEdgeVertex>> resultMapPositionToVertices)
    • getMapFaceToHalfEdges

      public Map<HalfEdgeFace,List<HalfEdge>> getMapFaceToHalfEdges(Map<HalfEdgeFace,List<HalfEdge>> resultMapFaceToHalfEdges)
    • getHalfEdgesSortedByLength

      public List<HalfEdge> getHalfEdgesSortedByLength(List<HalfEdge> resultHalfEdgesSortedByLength)
    • deleteDegeneratedFaces

      public int deleteDegeneratedFaces(Map<HalfEdgeFace,List<HalfEdge>> mapFaceToHalfEdges)
    • deleteDegeneratedFaces

      public int deleteDegeneratedFaces()
    • deleteNoUsedVertices

      public int deleteNoUsedVertices()
    • removeDeletedObjects

      public void removeDeletedObjects()
    • setObjectIdsInList

      public void setObjectIdsInList()
    • setItselfAsOutingHalfEdgeToTheStartVertex

      public void setItselfAsOutingHalfEdgeToTheStartVertex()
    • getMapVertexAllFaces

      public Map<HalfEdgeVertex,List<HalfEdgeFace>> getMapVertexAllFaces(Map<HalfEdgeVertex,List<HalfEdgeFace>> resultVertexAllFacesMap)
    • getMapVertexAllOutingEdges

      public Map<HalfEdgeVertex,List<HalfEdge>> getMapVertexAllOutingEdges(Map<HalfEdgeVertex,List<HalfEdge>> resultVertexAllOutingEdgesMap)
    • collapseFace

      public boolean collapseFace(HalfEdgeFace face)
    • setTwinsBetweenHalfEdges

      public void setTwinsBetweenHalfEdges(List<HalfEdge> halfEdges)
    • transformPoints

      public void transformPoints(org.joml.Matrix4d finalMatrix)
    • calculateBoundingBox

      public GaiaBoundingBox calculateBoundingBox(GaiaBoundingBox resultBBox)
    • getBoundingBox

      public GaiaBoundingBox getBoundingBox()
    • cutByPlane

      public PlaneCutResult cutByPlane(PlaneType planeType, org.joml.Vector3d planePosition, double error, Map<HalfEdgeVertex,Integer> memSaveVertexIndexMap)
    • cutByPlane_original

      public void cutByPlane_original(PlaneType planeType, org.joml.Vector3d planePosition, double error)
    • checkHalfEdgesFaces

      public boolean checkHalfEdgesFaces()
    • checkTwins

      public boolean checkTwins()
    • classifyFacesIdByPlane

      public void classifyFacesIdByPlane(PlaneType planeType, org.joml.Vector3d planePosition)
    • deleteFacesWithClassifyId

      public void deleteFacesWithClassifyId(int classifyId)
    • calculateVertices

      public void calculateVertices()
    • deleteFacesWithNoClassifyId

      public void deleteFacesWithNoClassifyId(int classifyId)
    • existNoUsedVertices

      public boolean existNoUsedVertices(List<HalfEdgeVertex> noUsedVertices)
    • cloneByClassifyId

      public HalfEdgeSurface cloneByClassifyId(int classifyId)
    • cloneByClassifyId_original

      public HalfEdgeSurface cloneByClassifyId_original(int classifyId)
    • clone

      public HalfEdgeSurface clone()
    • scissorTextures

      public void scissorTextures(GaiaMaterial material)
    • scissorTexturesByMotherScene

      public void scissorTexturesByMotherScene(GaiaMaterial material, GaiaMaterial motherMaterial)
    • mergeWeldedFacesGroupsByTexCoords

      public List<List<HalfEdgeFace>> mergeWeldedFacesGroupsByTexCoords(List<List<HalfEdgeFace>> weldedFacesGroups, List<List<HalfEdgeFace>> resultWeldedFacesGroups)
    • getTrianglesCount

      public int getTrianglesCount()
    • setBoxTexCoordsXY

      public void setBoxTexCoordsXY(GaiaBoundingBox box)
    • changeOutingHEdgesOfVertexIfHEdgeIsDeleted

      public void changeOutingHEdgesOfVertexIfHEdgeIsDeleted()
    • weldVertices

      public void weldVertices(double error, boolean checkTexCoord, boolean checkNormal, boolean checkColor, boolean checkBatchId)
    • translate

      public void translate(org.joml.Vector3d translation)
    • getIndices

      public int[] getIndices()
    • getDirty

      public boolean getDirty()
    • joinSurface

      public void joinSurface(HalfEdgeSurface newSurface)
    • getMapClassifyIdToCameraDirectionTypeToFaces

      public Map<Integer,Map<CameraDirectionType,List<HalfEdgeFace>>> getMapClassifyIdToCameraDirectionTypeToFaces(Map<Integer,Map<CameraDirectionType,List<HalfEdgeFace>>> mapFaceGroupByClassifyIdAndObliqueCamDirType)
    • splitFacesByBestObliqueCameraDirectionToProject

      public void splitFacesByBestObliqueCameraDirectionToProject()
    • updateFacesList

      public void updateFacesList()
    • updateVerticesList

      public void updateVerticesList()
    • getWestEastSouthNorthVertices

      public void getWestEastSouthNorthVertices(GaiaBoundingBox bbox, List<HalfEdgeVertex> westVertices, List<HalfEdgeVertex> eastVertices, List<HalfEdgeVertex> southVertices, List<HalfEdgeVertex> northVertices, double error)
    • calculateArea

      public double calculateArea()
    • getTexCoordinateBoundingRectangle

      public GaiaRectangle getTexCoordinateBoundingRectangle(GaiaRectangle resultRectangle)
    • getFacesCount

      public int getFacesCount()
    • getIntersectedFacesByPlane

      public void getIntersectedFacesByPlane(PlaneType planeType, org.joml.Vector3d planePosition, List<HalfEdgeFace> resultFaces, double error)
    • TEST_checkTexCoords

      public boolean TEST_checkTexCoords()