Migliorie in polyline e split parti triangolabili
This commit is contained in:
+11
-9
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user