From 26424252f93cca4f0b5d538252d0a3a70f517c47 Mon Sep 17 00:00:00 2001 From: LorenzoM Date: Wed, 21 Jul 2021 12:50:58 +0200 Subject: [PATCH 1/2] Aggiunta una seconda tempProp a oggetti vari --- CurveArc.cpp | 7 +++++-- CurveArc.h | 10 +++++----- CurveBezier.cpp | 7 +++++-- CurveBezier.h | 10 +++++----- CurveComposite.cpp | 21 +++++++++++++-------- CurveComposite.h | 14 +++++++------- CurveLine.cpp | 7 +++++-- CurveLine.h | 10 +++++----- ExtDimension.cpp | 5 ++++- ExtDimension.h | 10 +++++----- ExtText.cpp | 7 +++++-- ExtText.h | 10 +++++----- GeoFrame3d.cpp | 7 +++++-- GeoFrame3d.h | 10 +++++----- GeoPoint3d.cpp | 7 +++++-- GeoPoint3d.h | 10 +++++----- GeoVector3d.cpp | 7 +++++-- GeoVector3d.h | 10 +++++----- SurfBezier.h | 4 ++-- SurfFlatRegion.cpp | 10 +++++++--- SurfFlatRegion.h | 10 +++++----- SurfTriMesh.cpp | 7 +++++-- SurfTriMesh.h | 10 +++++----- SurfTriMeshBooleans.cpp | 22 +++++++++++----------- VolZmap.h | 4 ++-- 25 files changed, 136 insertions(+), 100 deletions(-) diff --git a/CurveArc.cpp b/CurveArc.cpp index b355fe8..eda7678 100644 --- a/CurveArc.cpp +++ b/CurveArc.cpp @@ -59,8 +59,10 @@ class ArcApproxer //---------------------------------------------------------------------------- CurveArc::CurveArc( void) : m_nStatus( TO_VERIFY), m_PtCen(), m_VtN(), m_VtS(), m_dRad(), - m_dAngCenDeg(), m_dDeltaN(), m_VtExtr(), m_dThick(), m_nTempProp() + m_dAngCenDeg(), m_dDeltaN(), m_VtExtr(), m_dThick() { + m_nTempProp[0] = 0 ; + m_nTempProp[1] = 0 ; } //---------------------------------------------------------------------------- @@ -578,7 +580,8 @@ CurveArc::CopyFrom( const CurveArc& caSrc) return true ; m_VtExtr = caSrc.m_VtExtr ; m_dThick = caSrc.m_dThick ; - m_nTempProp = caSrc.m_nTempProp ; + m_nTempProp[0] = caSrc.m_nTempProp[0] ; + m_nTempProp[1] = caSrc.m_nTempProp[1] ; return Set( caSrc.m_PtCen, caSrc.m_VtN, caSrc.m_dRad, caSrc.m_VtS, caSrc.m_dAngCenDeg, caSrc.m_dDeltaN) ; } diff --git a/CurveArc.h b/CurveArc.h index 768f5c9..c005958 100644 --- a/CurveArc.h +++ b/CurveArc.h @@ -49,10 +49,10 @@ class CurveArc : public ICurveArc, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp) override - { m_nTempProp = nProp ; } - int GetTempProp( void) const override - { return m_nTempProp ; } + void SetTempProp( int nProp, int nPropNum = 0) override + { m_nTempProp[nPropNum] = nProp ; } + int GetTempProp( int nPropNum = 0) const override + { return m_nTempProp[nPropNum] ; } public : // ICurve bool IsSimple( void) const override @@ -211,7 +211,7 @@ class CurveArc : public ICurveArc, public IGeoObjRW double m_dDeltaN ; // variazione di quota lungo VtN della fine rispetto all'inizio Vector3d m_VtExtr ; // vettore estrusione (normalmente coincide con m_VtN) double m_dThick ; // spessore - int m_nTempProp ; // proprietà temporanea + int m_nTempProp[2] ; // vettore di proprietà temporanee } ; //----------------------------------------------------------------------------- diff --git a/CurveBezier.cpp b/CurveBezier.cpp index e0299ad..16533dd 100644 --- a/CurveBezier.cpp +++ b/CurveBezier.cpp @@ -45,8 +45,10 @@ GEOOBJ_REGISTER( CRV_BEZIER, NGE_C_BEZ, CurveBezier) ; //---------------------------------------------------------------------------- CurveBezier::CurveBezier( void) : m_nStatus( TO_VERIFY), m_nDeg(), m_bRat( false), m_dParSing( -2), - m_VtExtr(), m_dThick(), m_nTempProp() + m_VtExtr(), m_dThick() { + m_nTempProp[0] = 0 ; + m_nTempProp[1] = 0 ; } //---------------------------------------------------------------------------- @@ -283,7 +285,8 @@ CurveBezier::CopyFrom( const CurveBezier& cbSrc) m_vWeCtrl = cbSrc.m_vWeCtrl ; m_VtExtr = cbSrc.m_VtExtr ; m_dThick = cbSrc.m_dThick ; - m_nTempProp = cbSrc.m_nTempProp ; + m_nTempProp[0] = cbSrc.m_nTempProp[0] ; + m_nTempProp[1] = cbSrc.m_nTempProp[1] ; return true ; } diff --git a/CurveBezier.h b/CurveBezier.h index 3710ca7..5921c48 100644 --- a/CurveBezier.h +++ b/CurveBezier.h @@ -51,10 +51,10 @@ class CurveBezier : public ICurveBezier, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp) override - { m_nTempProp = nProp ; } - int GetTempProp( void) const override - { return m_nTempProp ; } + void SetTempProp( int nProp, int nPropNum = 0) override + { m_nTempProp[nPropNum] = nProp ; } + int GetTempProp( int nPropNum = 0) const override + { return m_nTempProp[nPropNum] ; } public : // ICurve bool IsSimple( void) const override { return true ; } @@ -189,7 +189,7 @@ class CurveBezier : public ICurveBezier, public IGeoObjRW DBLVECTOR m_vWeCtrl ; // vettore dei pesi di controllo Vector3d m_VtExtr ; // vettore estrusione (normalmente coincide con m_VtN) double m_dThick ; // spessore - int m_nTempProp ; // proprietà temporanea + int m_nTempProp[2] ; // vettore di proprietà temporanee } ; //----------------------------------------------------------------------------- diff --git a/CurveComposite.cpp b/CurveComposite.cpp index 65ed355..c9d6239 100644 --- a/CurveComposite.cpp +++ b/CurveComposite.cpp @@ -40,8 +40,10 @@ GEOOBJ_REGISTER( CRV_COMPO, NGE_C_CMP, CurveComposite) ; //---------------------------------------------------------------------------- CurveComposite::CurveComposite( void) - : m_nStatus( TO_VERIFY), m_VtExtr(), m_dThick(), m_ptStart(), m_nTempProp(), m_Iter( m_CrvSmplS.end()) + : m_nStatus( TO_VERIFY), m_VtExtr(), m_dThick(), m_ptStart(), m_Iter( m_CrvSmplS.end()) { + m_nTempProp[0] = 0 ; + m_nTempProp[1] = 0 ; } //---------------------------------------------------------------------------- @@ -63,7 +65,8 @@ CurveComposite::Clear( void) m_VtExtr = V_NULL ; m_dThick = 0 ; m_ptStart = ORIG ; - m_nTempProp = 0 ; + m_nTempProp[0] = 0 ; + m_nTempProp[1] = 0 ; m_Iter = m_CrvSmplS.end() ; // imposto ricalcolo della grafica @@ -541,7 +544,8 @@ CurveComposite::CopyFrom( const CurveComposite& ccSrc) Clear() ; m_VtExtr = ccSrc.m_VtExtr ; m_dThick = ccSrc.m_dThick ; - m_nTempProp = ccSrc.m_nTempProp ; + m_nTempProp[0] = ccSrc.m_nTempProp[0] ; + m_nTempProp[1] = ccSrc.m_nTempProp[1] ; for ( auto& pCrv : ccSrc.m_CrvSmplS) { if ( ! AddCurve( *pCrv)) return false ; @@ -558,7 +562,8 @@ CurveComposite::RelocateFrom( CurveComposite& ccSrc) Clear() ; m_VtExtr = ccSrc.m_VtExtr ; m_dThick = ccSrc.m_dThick ; - m_nTempProp = ccSrc.m_nTempProp ; + m_nTempProp[0] = ccSrc.m_nTempProp[0] ; + m_nTempProp[1] = ccSrc.m_nTempProp[1] ; for ( ICurve* pCrv = ccSrc.RemoveFirstOrLastCurve( false) ; pCrv != nullptr ; pCrv = ccSrc.RemoveFirstOrLastCurve( false)) { @@ -3243,7 +3248,7 @@ CurveComposite::IsACircle( double dLinTol, Point3d& ptCen, Vector3d& vtN, double //---------------------------------------------------------------------------- bool -CurveComposite::SetCurveTempProp( int nCrv, int nProp) +CurveComposite::SetCurveTempProp( int nCrv, int nProp, int nPropNum) { // la curva deve essere validata if ( m_nStatus != OK) @@ -3252,13 +3257,13 @@ CurveComposite::SetCurveTempProp( int nCrv, int nProp) if ( nCrv < 0 || nCrv >= int( m_CrvSmplS.size())) return false ; // eseguo assegnazione - m_CrvSmplS[nCrv]->SetTempProp( nProp) ; + m_CrvSmplS[nCrv]->SetTempProp( nProp, nPropNum) ; return true ; } //---------------------------------------------------------------------------- bool -CurveComposite::GetCurveTempProp( int nCrv, int& nProp) const +CurveComposite::GetCurveTempProp( int nCrv, int& nProp, int nPropNum) const { // la curva deve essere validata if ( m_nStatus != OK) @@ -3267,6 +3272,6 @@ CurveComposite::GetCurveTempProp( int nCrv, int& nProp) const if ( nCrv < 0 || nCrv >= int( m_CrvSmplS.size())) return false ; // eseguo recupero - nProp = m_CrvSmplS[nCrv]->GetTempProp() ; + nProp = m_CrvSmplS[nCrv]->GetTempProp( nPropNum) ; return true ; } diff --git a/CurveComposite.h b/CurveComposite.h index fed9790..8fd3187 100644 --- a/CurveComposite.h +++ b/CurveComposite.h @@ -50,10 +50,10 @@ class CurveComposite : public ICurveComposite, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp) override - { m_nTempProp = nProp ; } - int GetTempProp( void) const override - { return m_nTempProp ; } + void SetTempProp( int nProp, int nPropNum = 0) override + { m_nTempProp[nPropNum] = nProp ; } + int GetTempProp( int nPropNum = 0) const override + { return m_nTempProp[nPropNum] ; } public : // ICurve bool IsSimple( void) const override @@ -158,8 +158,8 @@ class CurveComposite : public ICurveComposite, public IGeoObjRW bool IsAPoint( void) const override ; bool IsALine( double dLinTol, Point3d& ptStart, Point3d& ptEnd) const override ; bool IsACircle( double dLinTol, Point3d& ptCen, Vector3d& vtN, double& dRad, bool& bCCW) const override ; - bool SetCurveTempProp( int nCrv, int nProp) override ; - bool GetCurveTempProp( int nCrv, int& nProp) const override ; + bool SetCurveTempProp( int nCrv, int nProp, int nPropNum = 0) override ; + bool GetCurveTempProp( int nCrv, int& nProp, int nPropNum = 0) const override ; public : // IGeoObjRW int GetNgeId( void) const override ; @@ -202,7 +202,7 @@ class CurveComposite : public ICurveComposite, public IGeoObjRW Vector3d m_VtExtr ; // vettore estrusione (normalmente coincide con m_VtN) double m_dThick ; // spessore Point3d m_ptStart ; // punto iniziale per composita vuota per Add di linee o archi - int m_nTempProp ; // proprietà temporanea + int m_nTempProp[2] ; // vettore di proprietà temporanee mutable PCSD_CONST_ITER m_Iter ; // iteratore } ; diff --git a/CurveLine.cpp b/CurveLine.cpp index f5e2527..79ee00a 100644 --- a/CurveLine.cpp +++ b/CurveLine.cpp @@ -29,8 +29,10 @@ GEOOBJ_REGISTER( CRV_LINE, NGE_C_LIN, CurveLine) ; //---------------------------------------------------------------------------- CurveLine::CurveLine( void) - : m_nStatus( TO_VERIFY), m_PtStart(), m_PtEnd(), m_VtExtr(), m_dThick(), m_nTempProp() + : m_nStatus( TO_VERIFY), m_PtStart(), m_PtEnd(), m_VtExtr(), m_dThick() { + m_nTempProp[0] = 0 ; + m_nTempProp[0] = 0 ; } //---------------------------------------------------------------------------- @@ -123,7 +125,8 @@ CurveLine::CopyFrom( const CurveLine& clSrc) return true ; m_VtExtr = clSrc.m_VtExtr ; m_dThick = clSrc.m_dThick ; - m_nTempProp = clSrc.m_nTempProp ; + m_nTempProp[0] = clSrc.m_nTempProp[0] ; + m_nTempProp[1] = clSrc.m_nTempProp[1] ; return Set( clSrc.m_PtStart, clSrc.m_PtEnd) ; } diff --git a/CurveLine.h b/CurveLine.h index dfb395c..337a493 100644 --- a/CurveLine.h +++ b/CurveLine.h @@ -49,10 +49,10 @@ class CurveLine : public ICurveLine, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp) override - { m_nTempProp = nProp ; } - int GetTempProp( void) const override - { return m_nTempProp ; } + void SetTempProp( int nProp, int nPropNum = 0) override + { m_nTempProp[nPropNum] = nProp ; } + int GetTempProp( int nPropNum = 0) const override + { return m_nTempProp[nPropNum] ; } public : // ICurve bool IsSimple( void) const override @@ -164,7 +164,7 @@ class CurveLine : public ICurveLine, public IGeoObjRW Point3d m_PtEnd ; // punto finale Vector3d m_VtExtr ; // vettore estrusione double m_dThick ; // spessore - int m_nTempProp ; // proprietà temporanea + int m_nTempProp[2] ; // vettore di proprietà temporanee } ; //----------------------------------------------------------------------------- diff --git a/ExtDimension.cpp b/ExtDimension.cpp index bd9e12c..beb3fbd 100644 --- a/ExtDimension.cpp +++ b/ExtDimension.cpp @@ -49,6 +49,8 @@ ExtDimension::ExtDimension( void) : m_dExtLineLen( STD_EXTLINELEN), m_dArrowLen( STD_ARROWLEN), m_dTextDist( STD_TEXTDIST), m_bLenIsMM( true), m_nDecDigit( STD_DECDIGIT), m_sFont( STD_FONT), m_dTextHeight( STD_TEXTHEIGHT) { + m_nTempProp[0] = 0 ; + m_nTempProp[1] = 0 ; } //---------------------------------------------------------------------------- @@ -186,7 +188,8 @@ ExtDimension::CopyFrom( const ExtDimension& clSrc) m_nDecDigit = clSrc.m_nDecDigit ; m_sFont = clSrc.m_sFont ; m_dTextHeight = clSrc.m_dTextHeight ; - m_nTempProp = clSrc.m_nTempProp ; + m_nTempProp[0] = clSrc.m_nTempProp[0] ; + m_nTempProp[1] = clSrc.m_nTempProp[1] ; return true ; } diff --git a/ExtDimension.h b/ExtDimension.h index fa73734..47ae2c2 100644 --- a/ExtDimension.h +++ b/ExtDimension.h @@ -50,10 +50,10 @@ class ExtDimension : public IExtDimension, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp) override - { m_nTempProp = nProp ; } - int GetTempProp( void) const override - { return m_nTempProp ; } + void SetTempProp( int nProp, int nPropTemp = 0) override + { m_nTempProp[nPropTemp] = nProp ; } + int GetTempProp( int nPropTemp = 0) const override + { return m_nTempProp[nPropTemp] ; } public : // IExtDimension bool CopyFrom( const IGeoObj* pGObjSrc) override ; @@ -148,5 +148,5 @@ class ExtDimension : public IExtDimension, public IGeoObjRW int m_nDecDigit ; // numero di cifre decimali std::string m_sFont ; // font del testo double m_dTextHeight ; // altezza del testo - int m_nTempProp ; // proprietà temporanea + int m_nTempProp[2] ; // vettore di proprietà temporanee } ; diff --git a/ExtText.cpp b/ExtText.cpp index 007d9c9..6662878 100644 --- a/ExtText.cpp +++ b/ExtText.cpp @@ -35,8 +35,10 @@ GEOOBJ_REGISTER( EXT_TEXT, NGE_E_TXT, ExtText) ; //---------------------------------------------------------------------------- ExtText::ExtText( void) : m_pSTM( nullptr), m_bNoSTM( false), m_ptP(), m_vtN( 0, 0, 1), m_vtD( 1, 0, 0), m_sFont(), - m_nWeight( 400), m_bItalic( false), m_dHeight( 10), m_dRatio( 1), m_dAddAdvance( 0), m_nTempProp() + m_nWeight( 400), m_bItalic( false), m_dHeight( 10), m_dRatio( 1), m_dAddAdvance( 0) { + m_nTempProp[0] = 0 ; + m_nTempProp[1] = 0 ; } //---------------------------------------------------------------------------- @@ -184,7 +186,8 @@ ExtText::CopyFrom( const ExtText& clSrc) m_dRatio = clSrc.m_dRatio ; m_dAddAdvance = clSrc.m_dAddAdvance ; m_nInsPos = clSrc.m_nInsPos ; - m_nTempProp = clSrc.m_nTempProp ; + m_nTempProp[0] = clSrc.m_nTempProp[0] ; + m_nTempProp[1] = clSrc.m_nTempProp[1] ; return true ; } diff --git a/ExtText.h b/ExtText.h index 2da3d7e..96bd6aa 100644 --- a/ExtText.h +++ b/ExtText.h @@ -50,10 +50,10 @@ class ExtText : public IExtText, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp) override - { m_nTempProp = nProp ; } - int GetTempProp( void) const override - { return m_nTempProp ; } + void SetTempProp( int nProp, int nPropTemp = 0) override + { m_nTempProp[nPropTemp] = nProp ; } + int GetTempProp( int nPropTemp = 0) const override + { return m_nTempProp[nPropTemp] ; } public : // IExtText bool CopyFrom( const IGeoObj* pGObjSrc) override ; @@ -143,5 +143,5 @@ class ExtText : public IExtText, public IGeoObjRW double m_dRatio ; // rapporto tra larghezza e altezza double m_dAddAdvance ; // avanzamento addizionale tra caratteri int m_nInsPos ; // posizione del punto di inserimento rispetto al testo - int m_nTempProp ; // proprietà temporanea + int m_nTempProp[2] ; // vettore di proprietà temporanee } ; diff --git a/GeoFrame3d.cpp b/GeoFrame3d.cpp index 58a3373..54d2be4 100644 --- a/GeoFrame3d.cpp +++ b/GeoFrame3d.cpp @@ -29,8 +29,10 @@ GEOOBJ_REGISTER( GEO_FRAME3D, NGE_G_FRM, GeoFrame3d) ; //---------------------------------------------------------------------------- GeoFrame3d::GeoFrame3d( void) - : m_frF(), m_nTempProp() + : m_frF() { + m_nTempProp[0] = 0 ; + m_nTempProp[1] = 0 ; } //---------------------------------------------------------------------------- @@ -114,7 +116,8 @@ GeoFrame3d::CopyFrom( const GeoFrame3d& gfSrc) { if ( &gfSrc == this) return true ; - m_nTempProp = gfSrc.m_nTempProp ; + m_nTempProp[0] = gfSrc.m_nTempProp[0] ; + m_nTempProp[1] = gfSrc.m_nTempProp[1] ; return Set( gfSrc.m_frF) ; } diff --git a/GeoFrame3d.h b/GeoFrame3d.h index 575e53a..da4cb56 100644 --- a/GeoFrame3d.h +++ b/GeoFrame3d.h @@ -57,10 +57,10 @@ class GeoFrame3d : public IGeoFrame3d, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp) override - { m_nTempProp = nProp ; } - int GetTempProp( void) const override - { return m_nTempProp ; } + void SetTempProp( int nProp, int nPropNum = 0) override + { m_nTempProp[nPropNum] = nProp ; } + int GetTempProp( int nPropNum = 0) const override + { return m_nTempProp[nPropNum] ; } public : // IGeoFrame3d bool CopyFrom( const IGeoObj* pGObjSrc) override ; @@ -95,5 +95,5 @@ class GeoFrame3d : public IGeoFrame3d, public IGeoObjRW private : ObjGraphicsMgr m_OGrMgr ; // gestore grafica dell'oggetto Frame3d m_frF ; // oggetto - int m_nTempProp ; // proprietà temporanea + int m_nTempProp[2] ; // vettore di proprietà temporanee } ; diff --git a/GeoPoint3d.cpp b/GeoPoint3d.cpp index 72d129f..0f53b5d 100644 --- a/GeoPoint3d.cpp +++ b/GeoPoint3d.cpp @@ -28,8 +28,10 @@ GEOOBJ_REGISTER( GEO_PNT3D, NGE_G_PNT, GeoPoint3d) ; //---------------------------------------------------------------------------- GeoPoint3d::GeoPoint3d( void) - : m_ptP(), m_nTempProp() + : m_ptP() { + m_nTempProp[0] = 0 ; + m_nTempProp[1] = 0 ; } //---------------------------------------------------------------------------- @@ -82,7 +84,8 @@ GeoPoint3d::CopyFrom( const GeoPoint3d& clSrc) { if ( &clSrc == this) return true ; - m_nTempProp = clSrc.m_nTempProp ; + m_nTempProp[0] = clSrc.m_nTempProp[0] ; + m_nTempProp[1] = clSrc.m_nTempProp[1] ; return Set( clSrc.m_ptP) ; } diff --git a/GeoPoint3d.h b/GeoPoint3d.h index da10eed..1bd1b44 100644 --- a/GeoPoint3d.h +++ b/GeoPoint3d.h @@ -57,10 +57,10 @@ class GeoPoint3d : public IGeoPoint3d, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp) override - { m_nTempProp = nProp ; } - int GetTempProp( void) const override - { return m_nTempProp ; } + void SetTempProp( int nProp, int nPropNum = 0) override + { m_nTempProp[nPropNum] = nProp ; } + int GetTempProp( int nPropNum = 0) const override + { return m_nTempProp[nPropNum] ; } public : // IGeoPoint3d bool CopyFrom( const IGeoObj* pGObjSrc) override ; @@ -89,5 +89,5 @@ class GeoPoint3d : public IGeoPoint3d, public IGeoObjRW private : ObjGraphicsMgr m_OGrMgr ; // gestore grafica dell'oggetto Point3d m_ptP ; // oggetto - int m_nTempProp ; // proprietà temporanea + int m_nTempProp[2] ; // vettore di proprietà temporanee } ; diff --git a/GeoVector3d.cpp b/GeoVector3d.cpp index c6b2fab..eef867a 100644 --- a/GeoVector3d.cpp +++ b/GeoVector3d.cpp @@ -29,8 +29,10 @@ GEOOBJ_REGISTER( GEO_VECT3D, NGE_G_VEC, GeoVector3d) ; //---------------------------------------------------------------------------- GeoVector3d::GeoVector3d( void) - : m_vtV(), m_nTempProp() + : m_vtV() { + m_nTempProp[0] = 0 ; + m_nTempProp[1] = 0 ; } //---------------------------------------------------------------------------- @@ -98,7 +100,8 @@ GeoVector3d::CopyFrom( const GeoVector3d& clSrc) { if ( &clSrc == this) return true ; - m_nTempProp = clSrc.m_nTempProp ; + m_nTempProp[0] = clSrc.m_nTempProp[0] ; + m_nTempProp[1] = clSrc.m_nTempProp[1] ; return Set( clSrc.m_vtV, clSrc.m_ptBase) ; } diff --git a/GeoVector3d.h b/GeoVector3d.h index 4461e2b..ed9bbd2 100644 --- a/GeoVector3d.h +++ b/GeoVector3d.h @@ -65,10 +65,10 @@ class GeoVector3d : public IGeoVector3d, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp) override - { m_nTempProp = nProp ; } - int GetTempProp( void) const override - { return m_nTempProp ; } + void SetTempProp( int nProp, int nPropNum = 0) override + { m_nTempProp[nPropNum] = nProp ; } + int GetTempProp( int nPropNum = 0) const override + { return m_nTempProp[nPropNum] ; } public : // IGeoVector3d bool CopyFrom( const IGeoObj* pGObjSrc) override ; @@ -104,5 +104,5 @@ class GeoVector3d : public IGeoVector3d, public IGeoObjRW ObjGraphicsMgr m_OGrMgr ; // gestore grafica dell'oggetto Vector3d m_vtV ; // oggetto Point3d m_ptBase ; // punto base da cui tracciare il vettore - int m_nTempProp ; // proprietà temporanea + int m_nTempProp[2] ; // vettore di proprietà temporanee } ; diff --git a/SurfBezier.h b/SurfBezier.h index 320774b..cc8e783 100644 --- a/SurfBezier.h +++ b/SurfBezier.h @@ -53,9 +53,9 @@ class SurfBezier : public ISurfBezier, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp) override + void SetTempProp( int nProp, int nPropNum) override { m_nTempProp = nProp ; } - int GetTempProp( void) const override + int GetTempProp( int nPropNum) const override { return m_nTempProp ; } public : // ISurf diff --git a/SurfFlatRegion.cpp b/SurfFlatRegion.cpp index 1353dcc..b5ef968 100644 --- a/SurfFlatRegion.cpp +++ b/SurfFlatRegion.cpp @@ -33,8 +33,10 @@ GEOOBJ_REGISTER( SRF_FLATRGN, NGE_S_FRG, SurfFlatRegion) ; //---------------------------------------------------------------------------- SurfFlatRegion::SurfFlatRegion( void) - : m_pSTM( nullptr), m_nStatus( TO_VERIFY), m_nTempProp() + : m_pSTM( nullptr), m_nStatus( TO_VERIFY) { + m_nTempProp[0] = 0 ; + m_nTempProp[1] = 0 ; } //---------------------------------------------------------------------------- @@ -55,7 +57,8 @@ SurfFlatRegion::Clear( void) delete pLoop ; m_vpLoop.clear() ; - m_nTempProp = 0 ; + m_nTempProp[0] = 0 ; + m_nTempProp[1] = 0 ; // imposto ricalcolo della grafica m_OGrMgr.Reset() ; @@ -397,7 +400,8 @@ SurfFlatRegion::CopyFrom( const SurfFlatRegion& sfrSrc) m_vpLoop.push_back( pCrv) ; } m_vExtInd = sfrSrc.m_vExtInd ; - m_nTempProp = sfrSrc.m_nTempProp ; + m_nTempProp[0] = sfrSrc.m_nTempProp[0] ; + m_nTempProp[1] = sfrSrc.m_nTempProp[1] ; m_nStatus = sfrSrc.m_nStatus ; return ( m_nStatus == OK && ! m_vpLoop.empty()) ; } diff --git a/SurfFlatRegion.h b/SurfFlatRegion.h index 9239f34..b33eb67 100644 --- a/SurfFlatRegion.h +++ b/SurfFlatRegion.h @@ -51,10 +51,10 @@ class SurfFlatRegion : public ISurfFlatRegion, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp) override - { m_nTempProp = nProp ; } - int GetTempProp( void) const override - { return m_nTempProp ; } + void SetTempProp( int nProp, int nPropNum = 0) override + { m_nTempProp[nPropNum] = nProp ; } + int GetTempProp( int nPropNum = 0) const override + { return m_nTempProp[nPropNum] ; } public : // ISurf bool IsSimple( void) const override @@ -144,7 +144,7 @@ class SurfFlatRegion : public ISurfFlatRegion, public IGeoObjRW Frame3d m_frF ; // riferimento intrinseco PCRV_DEQUE m_vpLoop ; // deque delle curve che formano i loop INTVECTOR m_vExtInd ; // indice dei loop esterni nel precedente vettore - int m_nTempProp ; // proprietà temporanea + int m_nTempProp[2] ; // vettore di proprietà temporanee } ; //----------------------------------------------------------------------------- diff --git a/SurfTriMesh.cpp b/SurfTriMesh.cpp index bd21a5a..0151ad1 100644 --- a/SurfTriMesh.cpp +++ b/SurfTriMesh.cpp @@ -41,10 +41,12 @@ GEOOBJ_REGISTER( SRF_TRIMESH, NGE_S_TRM, SurfTriMesh) ; SurfTriMesh::SurfTriMesh( void) : m_nStatus( TO_VERIFY), m_dLinTol( STM_STD_LIN_TOL), m_dBoundaryAng( STM_STD_BOUNDARY_ANG), m_dSmoothAng( STM_STD_SMOOTH_ANG), m_bOriented( false), m_bClosed( false), m_bFaceted( false), - m_nTimeStamp( 0), m_nTempProp( 0), m_nMaxTFlag( 0), m_nParts( -1), m_pHGrd3d( nullptr) + m_nTimeStamp( 0), m_nMaxTFlag( 0), m_nParts( -1), m_pHGrd3d( nullptr) { m_dCosBndAng = cos( m_dBoundaryAng * DEGTORAD) ; m_dCosSmAng = cos( m_dSmoothAng * DEGTORAD) ; + m_nTempProp[0] = 0 ; + m_nTempProp[1] = 0 ; } //---------------------------------------------------------------------------- @@ -1068,7 +1070,8 @@ SurfTriMesh::CopyFrom( const SurfTriMesh& stmSrc) m_vTria = stmSrc.m_vTria ; m_vFacet = stmSrc.m_vFacet ; m_nTimeStamp = stmSrc.m_nTimeStamp ; - m_nTempProp = stmSrc.m_nTempProp ; + m_nTempProp[0] = stmSrc.m_nTempProp[0] ; + m_nTempProp[1] = stmSrc.m_nTempProp[1] ; m_nMaxTFlag = stmSrc.m_nMaxTFlag ; m_nParts = stmSrc.m_nParts ; return true ; diff --git a/SurfTriMesh.h b/SurfTriMesh.h index 6bfbf6b..6e084af 100644 --- a/SurfTriMesh.h +++ b/SurfTriMesh.h @@ -206,10 +206,10 @@ class SurfTriMesh : public ISurfTriMesh, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp) override - { m_nTempProp = nProp ; } - int GetTempProp( void) const override - { return m_nTempProp ; } + void SetTempProp( int nProp, int nPropNum = 0) override + { m_nTempProp[nPropNum] = nProp ; } + int GetTempProp( int nPropNum = 0) const override + { return m_nTempProp[nPropNum] ; } public : // ISurf bool IsSimple( void) const override @@ -422,7 +422,7 @@ class SurfTriMesh : public ISurfTriMesh, public IGeoObjRW TRIAVECTOR m_vTria ; // vettore dei triangoli INTVECTOR m_vFacet ; // vettore delle sfaccettature mutable int m_nTimeStamp ; // orologio locale - int m_nTempProp ; // proprietà temporanea + int m_nTempProp[2] ; // vettore di proprietà temporanee int m_nMaxTFlag ; // massimo valore dei TFlag dei triangoli mutable int m_nParts ; // numero di parti connesse (-1 se da calcolare) mutable HashGrids3d* m_pHGrd3d ; // Hash Grid 3d nel suo riferimento diff --git a/SurfTriMeshBooleans.cpp b/SurfTriMeshBooleans.cpp index 0377b79..e6e5b26 100644 --- a/SurfTriMeshBooleans.cpp +++ b/SurfTriMeshBooleans.cpp @@ -3168,17 +3168,17 @@ AddPolyLineToPolyLine( PolyLine& Poly, PolyLine& PolyToAdd) return true ; } -//---------------------------------------------------------------------------- -struct PositionOnPolyLine { - int nIndexInVec ; - int nSegNum ; - double dParOnSeg ; - PositionOnPolyLine( int nIndex, int nSeg, double dPar) { - nIndexInVec = nIndex ; - nSegNum = nSeg ; - dParOnSeg = dPar ; - } -} ; +////---------------------------------------------------------------------------- +//struct PositionOnPolyLine { +// int nIndexInVec ; +// int nSegNum ; +// double dParOnSeg ; +// PositionOnPolyLine( int nIndex, int nSeg, double dPar) { +// nIndexInVec = nIndex ; +// nSegNum = nSeg ; +// dParOnSeg = dPar ; +// } +//} ; //---------------------------------------------------------------------------- bool diff --git a/VolZmap.h b/VolZmap.h index f2218b1..302326a 100644 --- a/VolZmap.h +++ b/VolZmap.h @@ -60,9 +60,9 @@ class VolZmap : public IVolZmap, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp) override + void SetTempProp( int nProp, int nPropNum = 0) override { m_nTempProp = nProp ; } - int GetTempProp( void) const override + int GetTempProp( int nPropNum = 0) const override { return m_nTempProp ; } public : // IVolZmap From 038142a6d78d7d16086a7ea604e0c0a94dc221f5 Mon Sep 17 00:00:00 2001 From: DarioS Date: Wed, 21 Jul 2021 16:44:28 +0200 Subject: [PATCH 2/2] =?UTF-8?q?EgtGeomKernel=202.3g3=20:=20-=20aggiustamen?= =?UTF-8?q?ti=20e=20ricompilazione=20per=20seconda=20propriet=C3=A0=20temp?= =?UTF-8?q?oranea=20degli=20oggetti=20geometrici.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CurveArc.h | 11 ++++++----- CurveBezier.h | 11 ++++++----- CurveComposite.h | 11 ++++++----- CurveLine.h | 11 ++++++----- EgtGeomKernel.rc | Bin 11710 -> 11710 bytes ExtDimension.h | 11 ++++++----- ExtText.h | 11 ++++++----- GeoFrame3d.h | 11 ++++++----- GeoPoint3d.h | 11 ++++++----- GeoVector3d.h | 11 ++++++----- SurfBezier.cpp | 7 +++++-- SurfBezier.h | 11 ++++++----- SurfFlatRegion.h | 11 ++++++----- SurfTriMesh.h | 11 ++++++----- SurfTriMeshBooleans.cpp | 22 +++++++++++----------- VolZmap.cpp | 10 +++++++--- VolZmap.h | 11 ++++++----- 17 files changed, 101 insertions(+), 81 deletions(-) diff --git a/CurveArc.h b/CurveArc.h index c005958..69ba383 100644 --- a/CurveArc.h +++ b/CurveArc.h @@ -49,10 +49,11 @@ class CurveArc : public ICurveArc, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp, int nPropNum = 0) override - { m_nTempProp[nPropNum] = nProp ; } - int GetTempProp( int nPropNum = 0) const override - { return m_nTempProp[nPropNum] ; } + void SetTempProp( int nProp, int nPropInd = 0) override + { if ( nPropInd >= 0 && nPropInd < 2) + m_nTempProp[nPropInd] = nProp ; } + int GetTempProp( int nPropInd = 0) const override + { return (( nPropInd >= 0 && nPropInd < 2) ? m_nTempProp[nPropInd] : 0) ; } public : // ICurve bool IsSimple( void) const override @@ -211,7 +212,7 @@ class CurveArc : public ICurveArc, public IGeoObjRW double m_dDeltaN ; // variazione di quota lungo VtN della fine rispetto all'inizio Vector3d m_VtExtr ; // vettore estrusione (normalmente coincide con m_VtN) double m_dThick ; // spessore - int m_nTempProp[2] ; // vettore di proprietà temporanee + int m_nTempProp[2] ; // vettore proprietà temporanee } ; //----------------------------------------------------------------------------- diff --git a/CurveBezier.h b/CurveBezier.h index 5921c48..d5e96ac 100644 --- a/CurveBezier.h +++ b/CurveBezier.h @@ -51,10 +51,11 @@ class CurveBezier : public ICurveBezier, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp, int nPropNum = 0) override - { m_nTempProp[nPropNum] = nProp ; } - int GetTempProp( int nPropNum = 0) const override - { return m_nTempProp[nPropNum] ; } + void SetTempProp( int nProp, int nPropInd = 0) override + { if ( nPropInd >= 0 && nPropInd < 2) + m_nTempProp[nPropInd] = nProp ; } + int GetTempProp( int nPropInd = 0) const override + { return (( nPropInd >= 0 && nPropInd < 2) ? m_nTempProp[nPropInd] : 0) ; } public : // ICurve bool IsSimple( void) const override { return true ; } @@ -189,7 +190,7 @@ class CurveBezier : public ICurveBezier, public IGeoObjRW DBLVECTOR m_vWeCtrl ; // vettore dei pesi di controllo Vector3d m_VtExtr ; // vettore estrusione (normalmente coincide con m_VtN) double m_dThick ; // spessore - int m_nTempProp[2] ; // vettore di proprietà temporanee + int m_nTempProp[2] ; // vettore proprietà temporanee } ; //----------------------------------------------------------------------------- diff --git a/CurveComposite.h b/CurveComposite.h index 8fd3187..e9cf54d 100644 --- a/CurveComposite.h +++ b/CurveComposite.h @@ -50,10 +50,11 @@ class CurveComposite : public ICurveComposite, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp, int nPropNum = 0) override - { m_nTempProp[nPropNum] = nProp ; } - int GetTempProp( int nPropNum = 0) const override - { return m_nTempProp[nPropNum] ; } + void SetTempProp( int nProp, int nPropInd = 0) override + { if ( nPropInd >= 0 && nPropInd < 2) + m_nTempProp[nPropInd] = nProp ; } + int GetTempProp( int nPropInd = 0) const override + { return (( nPropInd >= 0 && nPropInd < 2) ? m_nTempProp[nPropInd] : 0) ; } public : // ICurve bool IsSimple( void) const override @@ -202,7 +203,7 @@ class CurveComposite : public ICurveComposite, public IGeoObjRW Vector3d m_VtExtr ; // vettore estrusione (normalmente coincide con m_VtN) double m_dThick ; // spessore Point3d m_ptStart ; // punto iniziale per composita vuota per Add di linee o archi - int m_nTempProp[2] ; // vettore di proprietà temporanee + int m_nTempProp[2] ; // vettore proprietà temporanee mutable PCSD_CONST_ITER m_Iter ; // iteratore } ; diff --git a/CurveLine.h b/CurveLine.h index 337a493..a3179d6 100644 --- a/CurveLine.h +++ b/CurveLine.h @@ -49,10 +49,11 @@ class CurveLine : public ICurveLine, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp, int nPropNum = 0) override - { m_nTempProp[nPropNum] = nProp ; } - int GetTempProp( int nPropNum = 0) const override - { return m_nTempProp[nPropNum] ; } + void SetTempProp( int nProp, int nPropInd = 0) override + { if ( nPropInd >= 0 && nPropInd < 2) + m_nTempProp[nPropInd] = nProp ; } + int GetTempProp( int nPropInd = 0) const override + { return (( nPropInd >= 0 && nPropInd < 2) ? m_nTempProp[nPropInd] : 0) ; } public : // ICurve bool IsSimple( void) const override @@ -164,7 +165,7 @@ class CurveLine : public ICurveLine, public IGeoObjRW Point3d m_PtEnd ; // punto finale Vector3d m_VtExtr ; // vettore estrusione double m_dThick ; // spessore - int m_nTempProp[2] ; // vettore di proprietà temporanee + int m_nTempProp[2] ; // vettore proprietà temporanee } ; //----------------------------------------------------------------------------- diff --git a/EgtGeomKernel.rc b/EgtGeomKernel.rc index 6c3373475938df8e28ee6dae041b543302850f8a..6978284f6feddd12b5a532bd530f7eb8b2c9e62d 100644 GIT binary patch delta 94 zcmdlNy)SyhFE&Qw&A-_cnHh~ID{|{@_Trkr0u;H;XNwSVW8B;$>;>dw2zN+>g;Df- LFmBFL4&ed-W11TR delta 94 zcmdlNy)SyhFE&P_&A-_cnHh~HD{|{@_Trkr0u;H;XNwSVW8B;$>;>dw2zN+>g;Df- LFmBFL4&ed-Vf-5U diff --git a/ExtDimension.h b/ExtDimension.h index 47ae2c2..a7e4e95 100644 --- a/ExtDimension.h +++ b/ExtDimension.h @@ -50,10 +50,11 @@ class ExtDimension : public IExtDimension, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp, int nPropTemp = 0) override - { m_nTempProp[nPropTemp] = nProp ; } - int GetTempProp( int nPropTemp = 0) const override - { return m_nTempProp[nPropTemp] ; } + void SetTempProp( int nProp, int nPropInd = 0) override + { if ( nPropInd >= 0 && nPropInd < 2) + m_nTempProp[nPropInd] = nProp ; } + int GetTempProp( int nPropInd = 0) const override + { return (( nPropInd >= 0 && nPropInd < 2) ? m_nTempProp[nPropInd] : 0) ; } public : // IExtDimension bool CopyFrom( const IGeoObj* pGObjSrc) override ; @@ -148,5 +149,5 @@ class ExtDimension : public IExtDimension, public IGeoObjRW int m_nDecDigit ; // numero di cifre decimali std::string m_sFont ; // font del testo double m_dTextHeight ; // altezza del testo - int m_nTempProp[2] ; // vettore di proprietà temporanee + int m_nTempProp[2] ; // vettore proprietà temporanee } ; diff --git a/ExtText.h b/ExtText.h index 96bd6aa..053ed4a 100644 --- a/ExtText.h +++ b/ExtText.h @@ -50,10 +50,11 @@ class ExtText : public IExtText, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp, int nPropTemp = 0) override - { m_nTempProp[nPropTemp] = nProp ; } - int GetTempProp( int nPropTemp = 0) const override - { return m_nTempProp[nPropTemp] ; } + void SetTempProp( int nProp, int nPropInd = 0) override + { if ( nPropInd >= 0 && nPropInd < 2) + m_nTempProp[nPropInd] = nProp ; } + int GetTempProp( int nPropInd = 0) const override + { return (( nPropInd >= 0 && nPropInd < 2) ? m_nTempProp[nPropInd] : 0) ; } public : // IExtText bool CopyFrom( const IGeoObj* pGObjSrc) override ; @@ -143,5 +144,5 @@ class ExtText : public IExtText, public IGeoObjRW double m_dRatio ; // rapporto tra larghezza e altezza double m_dAddAdvance ; // avanzamento addizionale tra caratteri int m_nInsPos ; // posizione del punto di inserimento rispetto al testo - int m_nTempProp[2] ; // vettore di proprietà temporanee + int m_nTempProp[2] ; // vettore proprietà temporanee } ; diff --git a/GeoFrame3d.h b/GeoFrame3d.h index da4cb56..728c1b0 100644 --- a/GeoFrame3d.h +++ b/GeoFrame3d.h @@ -57,10 +57,11 @@ class GeoFrame3d : public IGeoFrame3d, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp, int nPropNum = 0) override - { m_nTempProp[nPropNum] = nProp ; } - int GetTempProp( int nPropNum = 0) const override - { return m_nTempProp[nPropNum] ; } + void SetTempProp( int nProp, int nPropInd = 0) override + { if ( nPropInd >= 0 && nPropInd < 2) + m_nTempProp[nPropInd] = nProp ; } + int GetTempProp( int nPropInd = 0) const override + { return (( nPropInd >= 0 && nPropInd < 2) ? m_nTempProp[nPropInd] : 0) ; } public : // IGeoFrame3d bool CopyFrom( const IGeoObj* pGObjSrc) override ; @@ -95,5 +96,5 @@ class GeoFrame3d : public IGeoFrame3d, public IGeoObjRW private : ObjGraphicsMgr m_OGrMgr ; // gestore grafica dell'oggetto Frame3d m_frF ; // oggetto - int m_nTempProp[2] ; // vettore di proprietà temporanee + int m_nTempProp[2] ; // vettore proprietà temporanee } ; diff --git a/GeoPoint3d.h b/GeoPoint3d.h index 1bd1b44..59f08a0 100644 --- a/GeoPoint3d.h +++ b/GeoPoint3d.h @@ -57,10 +57,11 @@ class GeoPoint3d : public IGeoPoint3d, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp, int nPropNum = 0) override - { m_nTempProp[nPropNum] = nProp ; } - int GetTempProp( int nPropNum = 0) const override - { return m_nTempProp[nPropNum] ; } + void SetTempProp( int nProp, int nPropInd = 0) override + { if ( nPropInd >= 0 && nPropInd < 2) + m_nTempProp[nPropInd] = nProp ; } + int GetTempProp( int nPropInd = 0) const override + { return (( nPropInd >= 0 && nPropInd < 2) ? m_nTempProp[nPropInd] : 0) ; } public : // IGeoPoint3d bool CopyFrom( const IGeoObj* pGObjSrc) override ; @@ -89,5 +90,5 @@ class GeoPoint3d : public IGeoPoint3d, public IGeoObjRW private : ObjGraphicsMgr m_OGrMgr ; // gestore grafica dell'oggetto Point3d m_ptP ; // oggetto - int m_nTempProp[2] ; // vettore di proprietà temporanee + int m_nTempProp[2] ; // vettore proprietà temporanee } ; diff --git a/GeoVector3d.h b/GeoVector3d.h index ed9bbd2..aaeac07 100644 --- a/GeoVector3d.h +++ b/GeoVector3d.h @@ -65,10 +65,11 @@ class GeoVector3d : public IGeoVector3d, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp, int nPropNum = 0) override - { m_nTempProp[nPropNum] = nProp ; } - int GetTempProp( int nPropNum = 0) const override - { return m_nTempProp[nPropNum] ; } + void SetTempProp( int nProp, int nPropInd = 0) override + { if ( nPropInd >= 0 && nPropInd < 2) + m_nTempProp[nPropInd] = nProp ; } + int GetTempProp( int nPropInd = 0) const override + { return (( nPropInd >= 0 && nPropInd < 2) ? m_nTempProp[nPropInd] : 0) ; } public : // IGeoVector3d bool CopyFrom( const IGeoObj* pGObjSrc) override ; @@ -104,5 +105,5 @@ class GeoVector3d : public IGeoVector3d, public IGeoObjRW ObjGraphicsMgr m_OGrMgr ; // gestore grafica dell'oggetto Vector3d m_vtV ; // oggetto Point3d m_ptBase ; // punto base da cui tracciare il vettore - int m_nTempProp[2] ; // vettore di proprietà temporanee + int m_nTempProp[2] ; // vettore proprietà temporanee } ; diff --git a/SurfBezier.cpp b/SurfBezier.cpp index 88ef863..97be565 100644 --- a/SurfBezier.cpp +++ b/SurfBezier.cpp @@ -35,8 +35,10 @@ GEOOBJ_REGISTER( SRF_BEZIER, NGE_S_BEZ, SurfBezier) ; //---------------------------------------------------------------------------- SurfBezier::SurfBezier(void) : m_pSTM( nullptr), m_nStatus( TO_VERIFY), m_nDegU(), m_nDegV(), m_nSpanU(), m_nSpanV(), m_bRat( false), - m_bTrimmed( false), m_pTrimReg( nullptr), m_nTempProp( 0) + m_bTrimmed( false), m_pTrimReg( nullptr) { + m_nTempProp[0] = 0 ; + m_nTempProp[1] = 0 ; } //---------------------------------------------------------------------------- @@ -566,7 +568,8 @@ SurfBezier::CopyFrom( const SurfBezier& sbSrc) m_vPtCtrl = sbSrc.m_vPtCtrl ; if ( sbSrc.m_bRat) m_vWeCtrl = sbSrc.m_vWeCtrl ; - m_nTempProp = sbSrc.m_nTempProp ; + m_nTempProp[0] = sbSrc.m_nTempProp[0] ; + m_nTempProp[1] = sbSrc.m_nTempProp[1] ; return true ; } diff --git a/SurfBezier.h b/SurfBezier.h index cc8e783..f64e5a1 100644 --- a/SurfBezier.h +++ b/SurfBezier.h @@ -53,10 +53,11 @@ class SurfBezier : public ISurfBezier, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp, int nPropNum) override - { m_nTempProp = nProp ; } - int GetTempProp( int nPropNum) const override - { return m_nTempProp ; } + void SetTempProp( int nProp, int nPropInd) override + { if ( nPropInd >= 0 && nPropInd < 2) + m_nTempProp[nPropInd] = nProp ; } + int GetTempProp( int nPropInd) const override + { return (( nPropInd >= 0 && nPropInd < 2) ? m_nTempProp[nPropInd] : 0) ; } public : // ISurf bool IsSimple( void) const override @@ -165,7 +166,7 @@ class SurfBezier : public ISurfBezier, public IGeoObjRW PNTVECTOR m_vPtCtrl ; // vettore dei punti di controllo DBLVECTOR m_vWeCtrl ; // vettore dei pesi di controllo SurfFlatRegion* m_pTrimReg ; // eventuale regione di trim - int m_nTempProp ; // proprietà temporanea + int m_nTempProp[2] ; // vettore proprietà temporanee } ; //----------------------------------------------------------------------------- diff --git a/SurfFlatRegion.h b/SurfFlatRegion.h index b33eb67..3ace4b1 100644 --- a/SurfFlatRegion.h +++ b/SurfFlatRegion.h @@ -51,10 +51,11 @@ class SurfFlatRegion : public ISurfFlatRegion, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp, int nPropNum = 0) override - { m_nTempProp[nPropNum] = nProp ; } - int GetTempProp( int nPropNum = 0) const override - { return m_nTempProp[nPropNum] ; } + void SetTempProp( int nProp, int nPropInd = 0) override + { if ( nPropInd >= 0 && nPropInd < 2) + m_nTempProp[nPropInd] = nProp ; } + int GetTempProp( int nPropInd = 0) const override + { return (( nPropInd >= 0 && nPropInd < 2) ? m_nTempProp[nPropInd] : 0) ; } public : // ISurf bool IsSimple( void) const override @@ -144,7 +145,7 @@ class SurfFlatRegion : public ISurfFlatRegion, public IGeoObjRW Frame3d m_frF ; // riferimento intrinseco PCRV_DEQUE m_vpLoop ; // deque delle curve che formano i loop INTVECTOR m_vExtInd ; // indice dei loop esterni nel precedente vettore - int m_nTempProp[2] ; // vettore di proprietà temporanee + int m_nTempProp[2] ; // vettore proprietà temporanee } ; //----------------------------------------------------------------------------- diff --git a/SurfTriMesh.h b/SurfTriMesh.h index 6e084af..a770898 100644 --- a/SurfTriMesh.h +++ b/SurfTriMesh.h @@ -206,10 +206,11 @@ class SurfTriMesh : public ISurfTriMesh, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp, int nPropNum = 0) override - { m_nTempProp[nPropNum] = nProp ; } - int GetTempProp( int nPropNum = 0) const override - { return m_nTempProp[nPropNum] ; } + void SetTempProp( int nProp, int nPropInd = 0) override + { if ( nPropInd >= 0 && nPropInd < 2) + m_nTempProp[nPropInd] = nProp ; } + int GetTempProp( int nPropInd = 0) const override + { return (( nPropInd >= 0 && nPropInd < 2) ? m_nTempProp[nPropInd] : 0) ; } public : // ISurf bool IsSimple( void) const override @@ -422,7 +423,7 @@ class SurfTriMesh : public ISurfTriMesh, public IGeoObjRW TRIAVECTOR m_vTria ; // vettore dei triangoli INTVECTOR m_vFacet ; // vettore delle sfaccettature mutable int m_nTimeStamp ; // orologio locale - int m_nTempProp[2] ; // vettore di proprietà temporanee + int m_nTempProp[2] ; // vettore proprietà temporanee int m_nMaxTFlag ; // massimo valore dei TFlag dei triangoli mutable int m_nParts ; // numero di parti connesse (-1 se da calcolare) mutable HashGrids3d* m_pHGrd3d ; // Hash Grid 3d nel suo riferimento diff --git a/SurfTriMeshBooleans.cpp b/SurfTriMeshBooleans.cpp index e6e5b26..0377b79 100644 --- a/SurfTriMeshBooleans.cpp +++ b/SurfTriMeshBooleans.cpp @@ -3168,17 +3168,17 @@ AddPolyLineToPolyLine( PolyLine& Poly, PolyLine& PolyToAdd) return true ; } -////---------------------------------------------------------------------------- -//struct PositionOnPolyLine { -// int nIndexInVec ; -// int nSegNum ; -// double dParOnSeg ; -// PositionOnPolyLine( int nIndex, int nSeg, double dPar) { -// nIndexInVec = nIndex ; -// nSegNum = nSeg ; -// dParOnSeg = dPar ; -// } -//} ; +//---------------------------------------------------------------------------- +struct PositionOnPolyLine { + int nIndexInVec ; + int nSegNum ; + double dParOnSeg ; + PositionOnPolyLine( int nIndex, int nSeg, double dPar) { + nIndexInVec = nIndex ; + nSegNum = nSeg ; + dParOnSeg = dPar ; + } +} ; //---------------------------------------------------------------------------- bool diff --git a/VolZmap.cpp b/VolZmap.cpp index cc0a5bd..36b9a93 100644 --- a/VolZmap.cpp +++ b/VolZmap.cpp @@ -35,7 +35,7 @@ GEOOBJ_REGISTER( VOL_ZMAP, NGE_V_ZMP, VolZmap) ; //---------------------------------------------------------------------------- VolZmap::VolZmap(void) : m_nStatus( TO_VERIFY), m_nMapNum( 0), m_nNumBlock( 0), m_nConnectedCompoCount( 0), m_dStep( 10.0), - m_nVoxNumPerBlock( N_VOXBLOCK), m_nDexVoxRatio( 1), m_nShape( GENERIC), m_nTempProp( 0), m_Tool( true) + m_nVoxNumPerBlock( N_VOXBLOCK), m_nDexVoxRatio( 1), m_nShape( GENERIC), m_Tool( true) { for ( int i = 0 ; i < N_MAPS ; ++ i) { m_nNx[i] = 0 ; @@ -45,6 +45,8 @@ VolZmap::VolZmap(void) m_dMaxZ[i] = 0 ; m_nFracLin[i] = 0 ; } + m_nTempProp[0] = 0 ; + m_nTempProp[1] = 0 ; m_Tool.SetTolerances( LIN_TOL_STD, ANG_TOL_APPROX_DEG) ; } @@ -72,7 +74,8 @@ VolZmap::Clear( void) m_Values[i].clear() ; } m_dStep = EPS_SMALL ; - m_nTempProp = 0 ; + m_nTempProp[0] = 0 ; + m_nTempProp[1] = 0 ; m_Tool.Clear() ; // imposto ricalcolo della grafica m_OGrMgr.Reset() ; @@ -138,7 +141,8 @@ VolZmap::CopyFrom( const VolZmap& vzmSrc) m_dStep = vzmSrc.m_dStep ; m_nStatus = vzmSrc.m_nStatus ; - m_nTempProp = vzmSrc.m_nTempProp ; + m_nTempProp[0] = vzmSrc.m_nTempProp[0] ; + m_nTempProp[1] = vzmSrc.m_nTempProp[1] ; // dimensiono membri legati ai blocchi m_BlockToUpdate = vzmSrc.m_BlockToUpdate ; diff --git a/VolZmap.h b/VolZmap.h index 302326a..69422b9 100644 --- a/VolZmap.h +++ b/VolZmap.h @@ -60,10 +60,11 @@ class VolZmap : public IVolZmap, public IGeoObjRW { return m_OGrMgr.GetObjGraphics() ; } const IObjGraphics* GetObjGraphics( void) const override { return m_OGrMgr.GetObjGraphics() ; } - void SetTempProp( int nProp, int nPropNum = 0) override - { m_nTempProp = nProp ; } - int GetTempProp( int nPropNum = 0) const override - { return m_nTempProp ; } + void SetTempProp( int nProp, int nPropInd = 0) override + { if ( nPropInd >= 0 && nPropInd < 2) + m_nTempProp[nPropInd] = nProp ; } + int GetTempProp( int nPropInd = 0) const override + { return (( nPropInd >= 0 && nPropInd < 2) ? m_nTempProp[nPropInd] : 0) ; } public : // IVolZmap bool CopyFrom( const IGeoObj* pGObjSrc) override ; @@ -401,7 +402,7 @@ class VolZmap : public IVolZmap, public IGeoObjRW private : ObjGraphicsMgr m_OGrMgr ; // gestore grafica dell'oggetto Status m_nStatus ; // stato - int m_nTempProp ; // proprietà temporanea + int m_nTempProp[2] ; // vettore proprietà temporanee double m_dStep ; // passo delle griglie int m_nMapNum ; // numero di griglie ( 1 o 3) Frame3d m_MapFrame ; // riferimento intrinseco dello Zmap