//---------------------------------------------------------------------------- // EgalTech 2015-2018 //---------------------------------------------------------------------------- // File : CAvSimpleSurfFrMove.h Data : 27.04.18 Versione : 1.9e1 // Contenuto : Dich.ne classe privata per movimento di superfici flat region // nel loro piano evitando collisioni semplici // (ovvero controllando solo i loop esterni). // // Modifiche : 10.01.16 DS Creazione modulo. // // //---------------------------------------------------------------------------- #pragma once #include "/EgtDev/Include/EGkCAvSimpleSurfFrMove.h" class CurveLine ; class SurfFlatRegion ; //---------------------------------------------------------------------------- class MyCAvSimpleSurfFrMove { public : MyCAvSimpleSurfFrMove( const ISurfFlatRegion& SfrM, const ISurfFlatRegion& SfrF) ; public : bool Translate( const Vector3d& vtDir, double& dLen) ; bool Rotate( const Point3d& ptCen, double& dAng) ; const SCollInfo& GetSCollInfo() { return m_SCollInfo ;} private : bool TranslateCurveNoCollisionCurve( const ICurve* pCrv1, const ICurve* pCrv2, const Vector3d& vtDir, double& dLen, SCollInfo& scInfo) ; bool TranslateLineNoCollisionLine( const CurveLine* pLine1, const CurveLine* pLine2, const Vector3d& vtDir, double& dLen, SCollInfo& scInfo) ; bool RotateCurveNoCollisionCurve( const ICurve* pCrv1, const ICurve* pCrv2, const Point3d& ptCen, double& dAng) ; bool RotateLineNoCollisionLine( const CurveLine* pLine1, const CurveLine* pLine2, const Point3d& ptCen, double& dAng) ; private : const SurfFlatRegion* m_pRegM ; const SurfFlatRegion* m_pRegF ; SCollInfo m_SCollInfo ; } ;