EgtGraphics 1.6b6 :

- migliorata gestione punti notevoli di curve con estrusione
- prima versione di punto End su SurfTM.
This commit is contained in:
Dario Sassi
2015-02-24 22:50:22 +00:00
parent 6526f7ab9f
commit 21d509f3da
5 changed files with 571 additions and 439 deletions
BIN
View File
Binary file not shown.
+17 -5
View File
@@ -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
-3
View File
@@ -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)
+11
View File
@@ -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
View File
File diff suppressed because it is too large Load Diff