Migliorie in polyline e split parti triangolabili

This commit is contained in:
LorenzoM
2021-06-25 17:10:15 +02:00
parent 111880573c
commit dc17c648dc
2 changed files with 13 additions and 11 deletions
+11 -9
View File
@@ -1300,7 +1300,7 @@ PolyLine::Trim( const Plane3d& plPlane, bool bInVsOut)
}
//----------------------------------------------------------------------------
/*static*/ bool
bool
ChangePolyLineStart( const Point3d& ptNewStart, PolyLine& Loop, double dTol)
{
// Rinomino la lista di punti della PolyLine.
@@ -1361,11 +1361,12 @@ ChangePolyLineStart( const Point3d& ptNewStart, PolyLine& Loop, double dTol)
//----------------------------------------------------------------------------
// nSegNum 0-based
/*static*/ bool
PointPositionOnPolyLine( const Point3d& ptPoint, /*const*/ PolyLine& Loop, int& nSegNum, double& dParOnSeg, double dTol)
bool
PointPositionOnPolyLine( const Point3d& ptPoint, const PolyLine& Loop, int& nSegNum, double& dParOnSeg, double dTol)
{
// Rinomino la lista di punti della PolyLine.
/*const*/ PNTULIST& LoopList = Loop.GetUPointList() ;
PolyLine& MyLoopRef = const_cast<PolyLine&> ( Loop) ;
const PNTULIST& LoopList = MyLoopRef.GetUPointList() ;
// Ciclo sui segmenti del loop per cercare il tratto del loop chiuso più vicino al punto.
nSegNum = - 1 ;
double dMinSqDist = DBL_MAX ;
@@ -1404,14 +1405,15 @@ PointPositionOnPolyLine( const Point3d& ptPoint, /*const*/ PolyLine& Loop, int&
}
//----------------------------------------------------------------------------
/*static*/ bool
IsPointInsidePolyLine( const Point3d& ptP, /*const*/ PolyLine& plPoly)
bool
IsPointInsidePolyLine( const Point3d& ptP, const PolyLine& plPoly)
{
// Se la PolyLine non è chiusa, il punto non può essere interno.
if ( ! plPoly.IsClosed())
return false ;
// Lista dei punti
/*const*/ PNTULIST& List = plPoly.GetUPointList() ;
PolyLine& MyPolyRef = const_cast<PolyLine&> ( plPoly) ;
const PNTULIST& List = MyPolyRef.GetUPointList() ;
// Ciclo sui segmenti della PolyLine per cercarne il tratto più vicino al punto.
double dMinSqDist = DBL_MAX ;
Point3d ptMinDist ;
@@ -1541,7 +1543,7 @@ DistPointPolyLine( const Point3d& ptP, const PolyLine& plPoly, double& dPointPol
}
//----------------------------------------------------------------------------
/*static*/ bool
bool
SplitPolyLineAtPoint( const Point3d& ptPoint, /*const*/ PolyLine& Loop, PolyLine& Loop1, PolyLine& Loop2, double dTol)
{
// Rinomino la lista di punti della PolyLine.
@@ -1594,7 +1596,7 @@ SplitPolyLineAtPoint( const Point3d& ptPoint, /*const*/ PolyLine& Loop, PolyLine
}
//----------------------------------------------------------------------------
/*static*/ bool
bool
AddPolyLineToPolyLine( PolyLine& Poly, PolyLine& PolyToAdd, double dTol)
{
// Se la PolyLine a cui devo aggiungere l'altra è chiusa, non posso aggiungere nulla.