EgtGeomKernel 1.9g1 :

- migliorata CollisionAvoidance con utensili generici
- gestione Tool potenziata con possibilità di restituire il profilo.
This commit is contained in:
Dario Sassi
2018-07-05 10:30:30 +00:00
parent 4eed828592
commit 73db4fe50c
11 changed files with 720 additions and 417 deletions
+18 -18
View File
@@ -3003,7 +3003,7 @@ GdbExecutor::LineDiscInters( const STRVECTOR& vsParams)
return false ;
double dU1, dU2 ;
int nIntType = LineDisc( ptDisc, ptLine, vtDisc, vtLine, dRadius, dU1, dU2) ;
int nIntType = LineDisc( ptLine, vtLine, ptDisc, vtDisc, dRadius, dU1, dU2) ;
Point3d ptPS = ptLine + dU1 * vtLine ;
Point3d ptPE = ptLine + dU2 * vtLine ;
@@ -3073,7 +3073,7 @@ GdbExecutor::RayDiscInters( const STRVECTOR& vsParams)
return false ;
double dU1, dU2 ;
int nIntType = RayDisc( ptDisc, ptLine, vtDisc, vtLine, dRadius, dU1, dU2) ;
int nIntType = RayDisc( ptLine, vtLine, ptDisc, vtDisc, dRadius, dU1, dU2) ;
Point3d ptPS = ptLine + dU1 * vtLine ;
Point3d ptPE = ptLine + dU2 * vtLine ;
@@ -3147,7 +3147,7 @@ GdbExecutor::SegmentDiscInters( const STRVECTOR& vsParams)
return false ;
double dU1, dU2 ;
int nIntType = SegmentDisc( ptDisc, ptLine, vtDisc, vtLine, dRadius, dLen, dU1, dU2) ;
int nIntType = SegmentDisc( ptLine, vtLine, dLen, ptDisc, vtDisc, dRadius, dU1, dU2) ;
Point3d ptPS = ptLine + dU1 * vtLine ;
Point3d ptPE = ptLine + dU2 * vtLine ;
@@ -3212,7 +3212,7 @@ GdbExecutor::LineSphereInters( const STRVECTOR& vsParams)
return false ;
double dU1, dU2 ;
int nIntType = LineSphere( ptC, ptP, vtV, dRadius, dU1, dU2) ;
int nIntType = LineSphere( ptP, vtV, ptC, dRadius, dU1, dU2) ;
Point3d ptPS = ptP + dU1 * vtV ;
Point3d ptPE = ptP + dU2 * vtV ;
@@ -3265,7 +3265,7 @@ GdbExecutor::RaySphereInters( const STRVECTOR& vsParams)
return false ;
double dU1, dU2 ;
int nIntType = RaySphere( ptC, ptP, vtV, dRadius, dU1, dU2) ;
int nIntType = RaySphere( ptP, vtV, ptC, dRadius, dU1, dU2) ;
Point3d ptPS = ptP + dU1 * vtV ;
Point3d ptPE = ptP + dU2 * vtV ;
@@ -3329,7 +3329,7 @@ GdbExecutor::SegmentSphereInters( const STRVECTOR& vsParams)
return false ;
double dU1, dU2 ;
int nIntType = SegmentSphere( ptC, ptP, vtV, dRadius, dLen, dU1, dU2) ;
int nIntType = SegmentSphere( ptP, vtV, dLen, ptC, dRadius, dU1, dU2) ;
if ( nIntType == S_ERROR_INT)
@@ -3396,7 +3396,7 @@ GdbExecutor::LineSemiSphereInters( const STRVECTOR& vsParams)
return false ;
double dU1, dU2 ;
int nIntType = LineSemiSphere( ptC, ptP, vtSphOr, vtV, dRadius, dU1, dU2) ;
int nIntType = LineSemiSphere( ptP, vtV, ptC, vtSphOr, dRadius, dU1, dU2) ;
Point3d ptPS = ptP + dU1 * vtV ;
Point3d ptPE = ptP + dU2 * vtV ;
@@ -3455,7 +3455,7 @@ GdbExecutor::RaySemiSphereInters( const STRVECTOR& vsParams)
return false ;
double dU1, dU2 ;
int nIntType = RaySemiSphere( ptC, ptP, vtSphOr, vtV, dRadius, dU1, dU2) ;
int nIntType = RaySemiSphere( ptP, vtV, ptC, vtSphOr, dRadius, dU1, dU2) ;
Point3d ptPS = ptP + dU1 * vtV ;
Point3d ptPE = ptP + dU2 * vtV ;
@@ -3524,7 +3524,7 @@ GdbExecutor::SegmentSemiSphereInters( const STRVECTOR& vsParams)
return false ;
double dU1, dU2 ;
int nIntType = SegmentSemiSphere( ptC, ptP, vtSphOr, vtV, dRadius, dLen, dU1, dU2) ;
int nIntType = SegmentSemiSphere( ptP, vtV, dLen, ptC, vtSphOr, dRadius, dU1, dU2) ;
if ( nIntType == S_ERROR_INT)
@@ -3598,7 +3598,7 @@ GdbExecutor::LinCompSemiSphereInters( const STRVECTOR& vsParams)
return false ;
double dU1, dU2 ;
int nIntType = LinCompSemiSphere( ptC, ptP, vtSphOr, vtV, dRadius, dLen, nLinType, dU1, dU2) ;
int nIntType = LinCompSemiSphere( ptP, vtV, dLen, nLinType, ptC, vtSphOr, dRadius, dU1, dU2) ;
if ( nIntType == S_ERROR_INT)
return false ;
@@ -3966,7 +3966,7 @@ GdbExecutor::SegmentConeInters( const STRVECTOR& vsParams)
return false ;
double dU1, dU2 ;
int nTypeInt = SegmentCone( ptVCone, ptLine, vtCone, vtLine, dRadius, dHeigth, dLen, dU1, dU2) ;
int nTypeInt = SegmentCone( ptLine, vtLine, dLen, ptVCone, vtCone, dRadius, dHeigth, dU1, dU2) ;
Point3d ptPS = ptLine + dU1 * vtLine ;
Point3d ptPE = ptLine + dU2 * vtLine ;
@@ -4049,7 +4049,7 @@ GdbExecutor::LineTruncateConeInters( const STRVECTOR& vsParams)
return false ;
double dU1, dU2 ;
int nTypeInt = LineTruncatedCone( ptMinBase, ptLine, vtCone, vtLine, dMinRad, dMaxRad, dConeHeigth, dU1, dU2) ;
int nTypeInt = LineTruncatedCone( ptLine, vtLine, ptMinBase, vtCone, dMinRad, dMaxRad, dConeHeigth, dU1, dU2) ;
Point3d ptPS = ptLine + dU1 * vtLine ;
Point3d ptPE = ptLine + dU2 * vtLine ;
@@ -4133,7 +4133,7 @@ GdbExecutor::RayTruncateConeInters( const STRVECTOR& vsParams)
return false ;
double dU1, dU2 ;
int nTypeInt = RayTruncatedCone( ptMinBase, ptLine, vtCone, vtLine, dMinRad, dMaxRad, dConeHeigth, dU1, dU2) ;
int nTypeInt = RayTruncatedCone( ptLine, vtLine, ptMinBase, vtCone, dMinRad, dMaxRad, dConeHeigth, dU1, dU2) ;
Point3d ptPS = ptLine + dU1 * vtLine ;
Point3d ptPE = ptLine + dU2 * vtLine ;
@@ -4220,7 +4220,7 @@ GdbExecutor::SegmentTruncateConeInters( const STRVECTOR& vsParams)
return false ;
double dU1, dU2 ;
int nTypeInt = SegmentTruncatedCone( ptMinBase, ptLine, vtCone, vtLine, dMinRad, dMaxRad, dConeHeigth, dLen, dU1, dU2) ;
int nTypeInt = SegmentTruncatedCone( ptLine, vtLine, dLen, ptMinBase, vtCone, dMinRad, dMaxRad, dConeHeigth, dU1, dU2) ;
Point3d ptPS = ptLine + dU1 * vtLine ;
Point3d ptPE = ptLine + dU2 * vtLine ;
@@ -4300,7 +4300,7 @@ GdbExecutor::LineTorusInters( const STRVECTOR& vsParams)
std::vector<double> vdP ;
std::vector<bool> vbT ;
int nTypeInt = LineTorus( ptTorus, ptLine, vtTorus, vtLine, dMinRad, dMaxRad, vdP, vbT) ;
int nTypeInt = LineTorus( ptLine, vtLine, ptTorus, vtTorus, dMinRad, dMaxRad, vbT, vdP) ;
if ( nTypeInt == T_ERROR)
return false ;
@@ -4417,7 +4417,7 @@ GdbExecutor::RayTorusInters( const STRVECTOR& vsParams)
std::vector<double> vdP ;
std::vector<bool> vbT ;
int nTypeInt = RayTorus( ptTorus, ptLine, vtTorus, vtLine, dMinRad, dMaxRad, vdP, vbT) ;
int nTypeInt = RayTorus( ptLine, vtLine, ptTorus, vtTorus, dMinRad, dMaxRad, vbT, vdP) ;
if ( nTypeInt == T_ERROR)
return false ;
@@ -4573,7 +4573,7 @@ GdbExecutor::SegmentTorusInters( const STRVECTOR& vsParams)
std::vector<double> vdP ;
std::vector<bool> vbT ;
int nTypeInt = SegmentTorus( ptTorus, ptLine, vtTorus, vtLine, dMinRad, dMaxRad, dSgLen, vdP, vbT) ;
int nTypeInt = SegmentTorus( ptLine, vtLine, dSgLen, ptTorus, vtTorus, dMinRad, dMaxRad, vbT, vdP) ;
if ( nTypeInt == T_ERROR)
return false ;
@@ -4747,7 +4747,7 @@ GdbExecutor::LinCompTorusPartInters( const STRVECTOR& vsParams)
std::vector<double> vdP ;
std::vector<bool> vbT ;
int nTypeInt = LinCompTorusExtInt( ptTorus, ptLine, vtTorus, vtLine, dMinRad, dMaxRad, dSgLen, nLinType, vdP, vbT) ;
int nTypeInt = LinCompTorusExtInt( ptLine, vtLine, dSgLen, nLinType, ptTorus, vtTorus, dMinRad, dMaxRad, vbT, vdP) ;
if ( nTypeInt == T_ERROR)
return false ;