Open CASCADE Technology  6.5.4
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions
IntPoly_ShapeSection Class Reference

determines the section between 2 triangulated shapes.
The section is a set of edges.

#include <IntPoly_ShapeSection.hxx>

Public Member Functions

DEFINE_STANDARD_ALLOC IntPoly_ShapeSection ()
 IntPoly_ShapeSection (const TopoDS_Shape &S1, const TopoDS_Shape &S2)
void Section ()
void Explore ()
Standard_Boolean Intersect (const gp_Pnt &S1, const gp_Pnt &S2, const gp_Pnt &S3, const gp_Vec &OS1, const gp_Vec &VS0, const gp_Vec &V1, const gp_Vec &V2, Standard_Real &h1, Standard_Real &h2, Standard_Real &ah1, Standard_Real &ah2)
 determines if it exists, the intersection point between
the (S1,S2,S3) triangle and the edge pointed by V1 and V2.
Returns True if the triangle-triangle section is found.

Standard_Boolean IsEqual (const gp_Pnt &Pt1, const gp_Pnt &Pt2)
Standard_Boolean IsInside (const gp_Pnt &P, const gp_Pnt &P1, const gp_Pnt &P2, const gp_Pnt &P3, const gp_Vec &N0)
 returns True if P is inside the (P1,P2,P3) triangle
N0 = P1P2 ^ P1P3

void InsertInMap ()
 adds if necessary, myBegPoint in myMapBegPoint
and myEndPoint in myMapEndPoint.

void Insert (const gp_Pnt &OldPnt, const gp_Pnt &ComPnt, const gp_Pnt &NewPnt)
 sees whether OldPnt and NewPnt begins or ends a section
created before and adds the 2 others points.
If not, creates a section

Standard_Integer Concat (const gp_Pnt &BegPnt, const gp_Pnt &EndPnt, gp_Pnt &OutPnt)
 sees whether BegPnt or EndPnt begins or ends a section
created before, and returns the other point to continue
the construction
Returns 2 if the construction is 'Forward'
Returns 1 if the construction is 'Previous'
Returns 0 if not and creates a section

void ConcatSection (TColgp_SequenceOfPnt &Section, const Standard_Integer NbSection, const Standard_Integer Index)
 sees whether Section begins or ends another one in mySection,
from the rank 'Index' to the last one 'NbSection'

void ForwConstruction (const gp_Pnt &Point)
 builds a section from Point in this way
___ ___ ___ ___
Point--/__/--/__/--/__/--/__/--->

void PrevConstruction (const gp_Pnt &Point)
 builds a section from Point in this way
___ ___ ___ ___
<---/__/--/__/--/__/--/__/--Point

Standard_Integer NbEdges ()
TopoDS_Edge Edge (const Standard_Integer Index)
 builds an edge from a sequence of Pnt
this is a part of the whole section


Constructor & Destructor Documentation


Member Function Documentation

Standard_Integer IntPoly_ShapeSection::Concat ( const gp_Pnt BegPnt,
const gp_Pnt EndPnt,
gp_Pnt OutPnt 
)
void IntPoly_ShapeSection::Insert ( const gp_Pnt OldPnt,
const gp_Pnt ComPnt,
const gp_Pnt NewPnt 
)
Standard_Boolean IntPoly_ShapeSection::Intersect ( const gp_Pnt S1,
const gp_Pnt S2,
const gp_Pnt S3,
const gp_Vec OS1,
const gp_Vec VS0,
const gp_Vec V1,
const gp_Vec V2,
Standard_Real h1,
Standard_Real h2,
Standard_Real ah1,
Standard_Real ah2 
)

The documentation for this class was generated from the following file: