EgtGraphics 1.6b6 :
- migliorata gestione punti notevoli di curve con estrusione - prima versione di punto End su SurfTM.
This commit is contained in:
Binary file not shown.
@@ -20,6 +20,9 @@
|
||||
|
||||
class IGdbIterator ;
|
||||
class ICurve ;
|
||||
class ICurveComposite ;
|
||||
class ISurfTriMesh ;
|
||||
class IExtText ;
|
||||
class ObjEGrGraphics ;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
@@ -83,6 +86,7 @@ class Scene : public IEGrScene
|
||||
virtual int GetFirstSelectedObj( void) ;
|
||||
virtual int GetNextSelectedObj( void) ;
|
||||
virtual double GetSelectedObjWinZ( int nSel = - 1) ;
|
||||
virtual double GetSelectedObjMinWinZ( int nSel = - 1) ;
|
||||
virtual bool GetPointFromSelect( int nSelId, const Point3d& ptView, Point3d& ptSel) ;
|
||||
virtual bool Project( const Point3d& ptWorld, Point3d& ptView) ;
|
||||
virtual bool UnProject( const Point3d& ptView, Point3d& ptWorld) ;
|
||||
@@ -200,12 +204,19 @@ class Scene : public IEGrScene
|
||||
bool DrawGeoTria( void) ;
|
||||
bool DrawWinRect( void) ;
|
||||
// Snap
|
||||
bool GetGridSnapPoint( bool bSketch, const Point3d& ptWin, Point3d& ptSel) ;
|
||||
bool GetSelectedSnapPoint( int nSnap, const Point3d& ptWin, int nW, int nH, Point3d& ptSel) ;
|
||||
bool TestCurveSnapPoints( int nSnap, const Point3d& ptWin, int nId, const Frame3d& frEnt,
|
||||
const ICurve* pCrv, double& dMinSqDist, Point3d& ptSel) ;
|
||||
bool FindGridSnapPoint( bool bSketch, const Point3d& ptWin) ;
|
||||
bool FindSelectedIntersectionPoint( const Point3d& ptWin, int nW, int nH) ;
|
||||
bool FindSelectedSnapPoint( int nSnap, const Point3d& ptWin, int nW, int nH) ;
|
||||
bool FindCurveSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Frame3d& frEnt,
|
||||
const ICurve* pCrv, double& dMinSqDist) ;
|
||||
bool VerifySnapPoint( const Point3d& ptP, const Point3d& ptWin, double& dMinSqDist) ;
|
||||
bool GetSelectedIntersectionPoint( const Point3d& ptWin, int nW, int nH, Point3d& ptSel) ;
|
||||
bool AdjustForCurveExtr( const Point3d& ptWin, const Frame3d& frEnt, const ICurve* pCrv, Point3d& ptP) ;
|
||||
bool FindCurveCompoSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Frame3d& frEnt,
|
||||
const ICurveComposite* pCrvCompo, double& dMinSqDist) ;
|
||||
bool FindSurfTMSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Frame3d& frEnt,
|
||||
const ISurfTriMesh* pStm, double& dMinSqDist) ;
|
||||
bool FindTextSnapPoint( int nSnap, const Point3d& ptWin, int nId, const Frame3d& frEnt,
|
||||
const IExtText* pTxt, double& dMinSqDist) ;
|
||||
|
||||
private :
|
||||
// Basic
|
||||
@@ -241,6 +252,7 @@ class Scene : public IEGrScene
|
||||
SelRec m_nSelBuff[DIM_SEL_BUF] ; // buffer per selezione con OpenGL
|
||||
// Snap
|
||||
int m_nLastSnapId ; // Id dell'entità generatrice dell'ultimo punto snap
|
||||
Point3d m_ptLastSnapPnt ; // ultimo punto di snap
|
||||
bool m_bLastSnapDirOk ; // flag validità direzione associata a ultimo punto snap
|
||||
Vector3d m_vtLastSnapDir ; // direzione associata a ultimo punto snap
|
||||
// Geometry
|
||||
|
||||
@@ -158,9 +158,6 @@ Scene::DrawGroup( const IGdbIterator& iIter, int nPass, const MdStMkCol& cParent
|
||||
bool
|
||||
Scene::DrawGeoObj( const IGdbIterator& iIter, int nPass, const MdStMkCol& siObj)
|
||||
{
|
||||
// valore limite di opacità oltre il quale è considerata completa
|
||||
const int ALPHA_LIM = 90 ;
|
||||
|
||||
// recupero l'oggetto geometrico e il suo tipo
|
||||
IGeoObj* pGeoObj = (const_cast<IGdbIterator*>(&iIter))->GetGeoObj() ;
|
||||
if ( pGeoObj == nullptr)
|
||||
|
||||
@@ -150,6 +150,17 @@ Scene::GetSelectedObjWinZ( int nSel)
|
||||
return 0.5 * ( double( m_nSelBuff[nSel].nZmin) + double( m_nSelBuff[nSel].nZmax)) / UINT_MAX ;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
double
|
||||
Scene::GetSelectedObjMinWinZ( int nSel)
|
||||
{
|
||||
if ( nSel < 0)
|
||||
nSel = m_nSelCurr ;
|
||||
if ( nSel < 0 || nSel >= m_nSelNbr)
|
||||
return 0.5 ;
|
||||
return ( double( m_nSelBuff[nSel].nZmin)) / UINT_MAX ;
|
||||
}
|
||||
|
||||
/*------------------------------------------------------------------------------------------*/
|
||||
bool
|
||||
Scene::UnselectableAdd( int nId)
|
||||
|
||||
+543
-431
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user