Files
EgtGeomKernel/CDSimpleSurfFrMove.h
T
Dario Sassi 001a767bcf EgtGeomKernel 1.6v1 :
- aggiunta verifica collisione tra Box e Triangolo e tra Box e TriMesh
- cambiato nome a movimento con verifica collisione tra Regioni semplici (si ignorano eventuali buchi).
2016-10-06 10:26:21 +00:00

47 lines
1.9 KiB
C++

//----------------------------------------------------------------------------
// EgalTech 2015-2016
//----------------------------------------------------------------------------
// File : CDSimpleSurfFrMove.h Data : 10.01.16 Versione : 1.6l7
// Contenuto : Dich.ne classe privata per movimento di superfici flat region
// nel loro piano con semplice verifica di collisione
// (ovvero controllando solo gli esterni).
//
// Modifiche : 10.01.16 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
#pragma once
#include "/EgtDev/Include/EGkCDSimpleSurfFrMove.h"
class CurveLine ;
class SurfFlatRegion ;
//----------------------------------------------------------------------------
class MyCDSimpleSurfFrMove
{
public :
MyCDSimpleSurfFrMove( 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 ;
} ;