Struct IntersectingPolygonOrganizer¶
Defined in File intersecting_polygon_organizer.hpp
Struct Documentation¶
-
struct
legion::physics
::
IntersectingPolygonOrganizer
¶ Contains the necessary operations to split the edges of a given polygon.
Public Functions
-
inline
IntersectingPolygonOrganizer
()¶
-
inline void
SplitPolygon
(SplittablePolygonPtr splitPolygon, const math::mat4 &transform, const math::vec3 cutPosition, const math::vec3 cutNormal, SplitState requestedState, std::vector<IntersectionEdgeInfo> &generatedIntersectionEdges, bool shouldeDebug)¶
-
inline std::tuple<math::vec3, math::vec2, math::vec3, math::vec2>
GetFirstAndLastEdgeIntersectionInfo
(const math::vec3 &cutNormal, const math::vec3 &cutPosition, const math::mat4 transform, meshHalfEdgePtr firstEdge, meshHalfEdgePtr secondEdge)¶
-
inline void
RegenerateTriangleSplit
(bool startFromOutsideIntersection, meshHalfEdgePtr firstSplitEdge, meshHalfEdgePtr secondSplitEdge, meshHalfEdgePtr &intersectionEdge, const math::vec3 &cutNormal, const math::vec3 &cutPosition, const math::mat4 &transform)¶
-
inline void
BFSIdentifyEffectedEdges
(const math::mat4 &transform, SplittablePolygonPtr splitPolygon, std::vector<meshHalfEdgePtr> &unEffectedUsedEdges, std::vector<meshHalfEdgePtr> &effectedUsedEdges, const math::vec3 cutPosition, const math::vec3 cutNormal, bool keepAbove)¶
-
inline void
IdentifyBoundaryEffectedEdges
(std::vector<meshHalfEdgePtr> &effectedUsedEdges, const math::mat4 transform, const math::vec3 cutPosition, const math::vec3 cutNormal, bool keepAbove)¶
-
inline void
HandleTriangleSplit
(SplittablePolygonPtr splitPolygon, std::vector<meshHalfEdgePtr> &splitEdges, std::vector<IntersectionEdgeInfo> &generatedIntersectionEdges, const math::mat4 &transform, const math::vec3 &cutNormal, const math::vec3 &cutPosition, bool keepAbove)¶
-
inline void
InsideIntersectionMeshRegeneration
(const math::mat4 &transform, std::vector<meshHalfEdgePtr> &effectedBoundaryEdges, std::vector<meshHalfEdgePtr> &generatedEdges, int i, meshHalfEdgePtr &supportEdge, const SplitterIntersectionInfo &vertexIntersectionInfo, BoundaryEdgeInfo &debugStuff, std::vector<IntersectionEdgeInfo> &generatedIntersectionEdges, SplittablePolygonPtr owner)¶
-
inline void
CreateNonAllignedQuad
(meshHalfEdgePtr currentSupport, meshHalfEdgePtr nextSupport, meshHalfEdgePtr baseEdge, meshHalfEdgePtr intersectionEdge, std::vector<meshHalfEdgePtr> &generatedEdges, SplittablePolygonPtr owner)¶
-
inline void
OutsideIntersectionMeshRegeneration
(const math::mat4 &transform, std::vector<meshHalfEdgePtr> &effectedBoundaryEdges, std::vector<meshHalfEdgePtr> &generatedEdges, int i, meshHalfEdgePtr &supportEdge, const SplitterIntersectionInfo &vertexIntersectionInfo, BoundaryEdgeInfo &debugStuff, std::vector<IntersectionEdgeInfo> &generatedIntersectionEdges, SplittablePolygonPtr owner)¶
-
inline void
CreateAllignedQuad
(meshHalfEdgePtr currentSupport, meshHalfEdgePtr nextSupport, meshHalfEdgePtr baseEdge, meshHalfEdgePtr intersectionEdge, std::vector<meshHalfEdgePtr> &generatedEdges, SplittablePolygonPtr owner)¶
-
inline