From: adv Date: Mon, 2 Sep 2013 07:02:27 +0000 (+0000) Subject: Line endings converted to UNIX format. X-Git-Tag: BR_hydro_v_0_1~83 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=f96113cb7e3ebc96e9ce6230234c68afe9c7e34c;p=modules%2Fhydro.git Line endings converted to UNIX format. --- diff --git a/src/HYDROGUI/HYDROGUI_AISCurve.cxx b/src/HYDROGUI/HYDROGUI_AISCurve.cxx index d1e2c7e0..cfe51f30 100755 --- a/src/HYDROGUI/HYDROGUI_AISCurve.cxx +++ b/src/HYDROGUI/HYDROGUI_AISCurve.cxx @@ -1,173 +1,346 @@ -#include "HYDROGUI_AISCurve.h" -#include "CurveCreator_Curve.hxx" - -#include -#include -#include -#include -#include - -HYDROGUI_AISCurveSection::HYDROGUI_AISCurveSection( Handle_AIS_InteractiveContext theContext, - CurveCreator_Curve* theCurve, int theSection) : - myCurve(theCurve), mySection(theSection), myContext(theContext), myIsHL(false) -{ - buildSection(); -} - -HYDROGUI_AISCurveSection::~HYDROGUI_AISCurveSection() -{ - Erase(); - for( int i = 0 ; i < myObjects.size() ; i++ ){ - myObjects[i].Nullify(); - } - myObjects.clear(); -} - -Quantity_Color HYDROGUI_AISCurveSection::getActiveColor() -{ - if( myIsHL ){ - return Quantity_Color( 1., 0., 0., Quantity_TOC_RGB ); - } - return Quantity_Color( 0., 1., 0., Quantity_TOC_RGB ); -} - -void HYDROGUI_AISCurveSection::highlight( bool isHL ) -{ - myIsHL = isHL; - Quantity_Color aColor = getActiveColor(); - for( int i = 0 ; i < myObjects.size() ; i++ ){ - myObjects[i]->SetColor(aColor); - myContext->Display(myObjects[i]); - } -} - -void HYDROGUI_AISCurveSection::Display() -{ - for( int i = 0 ; i < myObjects.size() ; i++ ){ - myContext->Display(myObjects[i]); - } -} - -void HYDROGUI_AISCurveSection::Erase() -{ - for( int i = 0 ; i < myObjects.size() ; i++ ){ - myContext->Erase(myObjects[i]); - } -} - -void HYDROGUI_AISCurveSection::buildSection() -{ - int aSectSize = myCurve->getNbPoints( mySection ); - double anX; - double anY; - double aZ; - int i = 0; - for( ; i < ( aSectSize - 1 ) ; i++ ){ - Handle_AIS_Point anAISPnt = getAISPoint(i); - myObjects.push_back( anAISPnt ); - Handle_AIS_Line aLine = getAISLine( i, i+1 ); - myObjects.push_back( aLine ); - } - if( aSectSize != 0 ){ - Handle_AIS_Point anAISPnt = getAISPoint(i); - myObjects.push_back( anAISPnt ); - if( myCurve->isClosed(mySection) && ( aSectSize > 1 ) ){ - Handle_AIS_Line aLine = getAISLine( i, 0 ); - myObjects.push_back( aLine ); - } - } -} - -Handle_AIS_Point HYDROGUI_AISCurveSection::getAISPoint( int theIndx ) -{ - double anX; - double anY; - double aZ; - getPoint( theIndx, anX, anY, aZ ); - gp_Pnt aPoint( anX, anY, aZ); - AIS_Point* aPnt = new AIS_Point( new Geom_CartesianPoint(aPoint)); - return aPnt; -} - -Handle_AIS_Line HYDROGUI_AISCurveSection::getAISLine( int theIndx1, int theIndx2 ) -{ - double anX; - double anY; - double aZ; - getPoint( theIndx1, anX, anY, aZ ); - gp_Pnt aPoint1( anX, anY, aZ); - double anX2; - double anY2; - double aZ2; - getPoint( theIndx2, anX2, anY2, aZ2 ); -//MTN to avoid crash during line construction - if( ( anX == anX2 ) && ( anY == anY2 ) && (aZ == aZ2 ) ){ - aZ2 += 1e-7; - } - gp_Pnt aPoint2( anX2, anY2, aZ2 ); - AIS_Line* aLine = new AIS_Line( new Geom_CartesianPoint(aPoint1), new Geom_CartesianPoint(aPoint2) ); - return aLine; -} - -void HYDROGUI_AISCurveSection::getPoint( int theIndx, double& theX, double& theY, double& theZ ) -{ - CurveCreator::Dimension aDim = myCurve->getDimension(); - CurveCreator::Coordinates aCoords = myCurve->getCoordinates( mySection, theIndx ); - theX = aCoords[0]; - theY = aCoords[1]; - theZ = 0.; - if( aDim == CurveCreator::Dim3d ){ - theZ = aCoords[2]; - } -} - -/******************************* HYDROGUI_AISCurve ********************************************/ -HYDROGUI_AISCurve::HYDROGUI_AISCurve( CurveCreator_Curve* theCurve, Handle_AIS_InteractiveContext theContext ) : - CurveCreator_Listener(), myCurve(theCurve), myContext( theContext ) -{ - myCurve->setListener(this); - buildCurve(); -} - -HYDROGUI_AISCurve::~HYDROGUI_AISCurve(void) -{ -} - -void HYDROGUI_AISCurve::setCurve( CurveCreator_Curve* theCurve ) -{ - myCurve = theCurve; - buildCurve(); -} - -void HYDROGUI_AISCurve::Display() -{ - for( int i = 0 ; i < myCurveRepresentation.size() ; i++ ){ - myCurveRepresentation[i]->Display(); - } -} - -void HYDROGUI_AISCurve::buildCurve() -{ - for( int i = 0 ; i < myCurveRepresentation.size() ; i++ ){ - myCurveRepresentation[i]->Erase(); - delete myCurveRepresentation[i]; - } - myCurveRepresentation.clear(); - for( int i = 0 ; i < myCurve->getNbSections() ; i++ ){ - HYDROGUI_AISCurveSection* aSection = new HYDROGUI_AISCurveSection( myContext, myCurve, i); - myCurveRepresentation.push_back( aSection ); - myCurveRepresentation[i]->Display(); - } -} - -void HYDROGUI_AISCurve::pointInserted( int theSection, int theIndx ) -{ - buildCurve(); -} - -void HYDROGUI_AISCurve::highlightSection( int theSection, bool isHL ) -{ - if( theSection >= myCurveRepresentation.size() ) - return; - myCurveRepresentation[theSection]->highlight(isHL); -} +#include "HYDROGUI_AISCurve.h" + +#include "CurveCreator_Curve.hxx" + + + +#include + +#include + +#include + +#include + +#include + + + +HYDROGUI_AISCurveSection::HYDROGUI_AISCurveSection( Handle_AIS_InteractiveContext theContext, + + CurveCreator_Curve* theCurve, int theSection) : + + myCurve(theCurve), mySection(theSection), myContext(theContext), myIsHL(false) + +{ + + buildSection(); + +} + + + +HYDROGUI_AISCurveSection::~HYDROGUI_AISCurveSection() + +{ + + Erase(); + + for( int i = 0 ; i < myObjects.size() ; i++ ){ + + myObjects[i].Nullify(); + + } + + myObjects.clear(); + +} + + + +Quantity_Color HYDROGUI_AISCurveSection::getActiveColor() + +{ + + if( myIsHL ){ + + return Quantity_Color( 1., 0., 0., Quantity_TOC_RGB ); + + } + + return Quantity_Color( 0., 1., 0., Quantity_TOC_RGB ); + +} + + + +void HYDROGUI_AISCurveSection::highlight( bool isHL ) + +{ + + myIsHL = isHL; + + Quantity_Color aColor = getActiveColor(); + + for( int i = 0 ; i < myObjects.size() ; i++ ){ + + myObjects[i]->SetColor(aColor); + + myContext->Display(myObjects[i]); + + } + +} + + + +void HYDROGUI_AISCurveSection::Display() + +{ + + for( int i = 0 ; i < myObjects.size() ; i++ ){ + + myContext->Display(myObjects[i]); + + } + +} + + + +void HYDROGUI_AISCurveSection::Erase() + +{ + + for( int i = 0 ; i < myObjects.size() ; i++ ){ + + myContext->Erase(myObjects[i]); + + } + +} + + + +void HYDROGUI_AISCurveSection::buildSection() + +{ + + int aSectSize = myCurve->getNbPoints( mySection ); + + double anX; + + double anY; + + double aZ; + + int i = 0; + + for( ; i < ( aSectSize - 1 ) ; i++ ){ + + Handle_AIS_Point anAISPnt = getAISPoint(i); + + myObjects.push_back( anAISPnt ); + + Handle_AIS_Line aLine = getAISLine( i, i+1 ); + + myObjects.push_back( aLine ); + + } + + if( aSectSize != 0 ){ + + Handle_AIS_Point anAISPnt = getAISPoint(i); + + myObjects.push_back( anAISPnt ); + + if( myCurve->isClosed(mySection) && ( aSectSize > 1 ) ){ + + Handle_AIS_Line aLine = getAISLine( i, 0 ); + + myObjects.push_back( aLine ); + + } + + } + +} + + + +Handle_AIS_Point HYDROGUI_AISCurveSection::getAISPoint( int theIndx ) + +{ + + double anX; + + double anY; + + double aZ; + + getPoint( theIndx, anX, anY, aZ ); + + gp_Pnt aPoint( anX, anY, aZ); + + AIS_Point* aPnt = new AIS_Point( new Geom_CartesianPoint(aPoint)); + + return aPnt; + +} + + + +Handle_AIS_Line HYDROGUI_AISCurveSection::getAISLine( int theIndx1, int theIndx2 ) + +{ + + double anX; + + double anY; + + double aZ; + + getPoint( theIndx1, anX, anY, aZ ); + + gp_Pnt aPoint1( anX, anY, aZ); + + double anX2; + + double anY2; + + double aZ2; + + getPoint( theIndx2, anX2, anY2, aZ2 ); + +//MTN to avoid crash during line construction + + if( ( anX == anX2 ) && ( anY == anY2 ) && (aZ == aZ2 ) ){ + + aZ2 += 1e-7; + + } + + gp_Pnt aPoint2( anX2, anY2, aZ2 ); + + AIS_Line* aLine = new AIS_Line( new Geom_CartesianPoint(aPoint1), new Geom_CartesianPoint(aPoint2) ); + + return aLine; + +} + + + +void HYDROGUI_AISCurveSection::getPoint( int theIndx, double& theX, double& theY, double& theZ ) + +{ + + CurveCreator::Dimension aDim = myCurve->getDimension(); + + CurveCreator::Coordinates aCoords = myCurve->getCoordinates( mySection, theIndx ); + + theX = aCoords[0]; + + theY = aCoords[1]; + + theZ = 0.; + + if( aDim == CurveCreator::Dim3d ){ + + theZ = aCoords[2]; + + } + +} + + + +/******************************* HYDROGUI_AISCurve ********************************************/ + +HYDROGUI_AISCurve::HYDROGUI_AISCurve( CurveCreator_Curve* theCurve, Handle_AIS_InteractiveContext theContext ) : + + CurveCreator_Listener(), myCurve(theCurve), myContext( theContext ) + +{ + + myCurve->setListener(this); + + buildCurve(); + +} + + + +HYDROGUI_AISCurve::~HYDROGUI_AISCurve(void) + +{ + +} + + + +void HYDROGUI_AISCurve::setCurve( CurveCreator_Curve* theCurve ) + +{ + + myCurve = theCurve; + + buildCurve(); + +} + + + +void HYDROGUI_AISCurve::Display() + +{ + + for( int i = 0 ; i < myCurveRepresentation.size() ; i++ ){ + + myCurveRepresentation[i]->Display(); + + } + +} + + + +void HYDROGUI_AISCurve::buildCurve() + +{ + + for( int i = 0 ; i < myCurveRepresentation.size() ; i++ ){ + + myCurveRepresentation[i]->Erase(); + + delete myCurveRepresentation[i]; + + } + + myCurveRepresentation.clear(); + + for( int i = 0 ; i < myCurve->getNbSections() ; i++ ){ + + HYDROGUI_AISCurveSection* aSection = new HYDROGUI_AISCurveSection( myContext, myCurve, i); + + myCurveRepresentation.push_back( aSection ); + + myCurveRepresentation[i]->Display(); + + } + +} + + + +void HYDROGUI_AISCurve::pointInserted( int theSection, int theIndx ) + +{ + + buildCurve(); + +} + + + +void HYDROGUI_AISCurve::highlightSection( int theSection, bool isHL ) + +{ + + if( theSection >= myCurveRepresentation.size() ) + + return; + + myCurveRepresentation[theSection]->highlight(isHL); + +} + diff --git a/src/HYDROGUI/HYDROGUI_AISCurve.h b/src/HYDROGUI/HYDROGUI_AISCurve.h index 52dd9d2a..88390a7e 100755 --- a/src/HYDROGUI/HYDROGUI_AISCurve.h +++ b/src/HYDROGUI/HYDROGUI_AISCurve.h @@ -1,69 +1,137 @@ -#ifndef HYDROGUI_AIS_CURVE_H -#define HYDROGUI_AIS_CURVE_H - -#include -#include - -#include -#include -#include -#include - -class CurveCreator_Curve; -class AIS_InteractiveObject; -class AIS_Point; -class AIS_Line; - -class HYDROGUI_AISCurveSection -{ -public: - HYDROGUI_AISCurveSection( Handle_AIS_InteractiveContext theContext, - CurveCreator_Curve* theCurve, int theSection ); - virtual ~HYDROGUI_AISCurveSection(); - - void Display(); - void Erase(); - - void highlight( bool isHL ); -protected: - virtual void buildSection(); - void getPoint( int theIndx, double& theX, double& theY, double& theZ ); - Handle_AIS_Point getAISPoint( int theIndx ); - Handle_AIS_Line getAISLine( int theIndx1, int theIndx2 ); - Quantity_Color getActiveColor(); - -private: - CurveCreator_Curve* myCurve; - int mySection; - std::vector< Handle_AIS_InteractiveObject > myObjects; - Handle_AIS_InteractiveContext myContext; - bool myIsHighlight; - bool myIsHL; -}; - -class HYDROGUI_AISCurve : public CurveCreator_Listener -{ -public: - HYDROGUI_AISCurve(CurveCreator_Curve* theCurve, Handle_AIS_InteractiveContext theContext ); - ~HYDROGUI_AISCurve(void); - - void setCurve( CurveCreator_Curve* theCurve ); - - void Display(); - - virtual void pointInserted( int theSection, int theIndx ); - - void highlightSection( int theSection, bool isHL ); - void clearSelection(); - -protected: - virtual void buildCurve(); - Quantity_Color getActiveColor(); - -private: - CurveCreator_Curve* myCurve; - Handle_AIS_InteractiveContext myContext; - std::vector< HYDROGUI_AISCurveSection* > myCurveRepresentation; -}; - +#ifndef HYDROGUI_AIS_CURVE_H + +#define HYDROGUI_AIS_CURVE_H + + + +#include + +#include + + + +#include + +#include + +#include + +#include + + + +class CurveCreator_Curve; + +class AIS_InteractiveObject; + +class AIS_Point; + +class AIS_Line; + + + +class HYDROGUI_AISCurveSection + +{ + +public: + + HYDROGUI_AISCurveSection( Handle_AIS_InteractiveContext theContext, + + CurveCreator_Curve* theCurve, int theSection ); + + virtual ~HYDROGUI_AISCurveSection(); + + + + void Display(); + + void Erase(); + + + + void highlight( bool isHL ); + +protected: + + virtual void buildSection(); + + void getPoint( int theIndx, double& theX, double& theY, double& theZ ); + + Handle_AIS_Point getAISPoint( int theIndx ); + + Handle_AIS_Line getAISLine( int theIndx1, int theIndx2 ); + + Quantity_Color getActiveColor(); + + + +private: + + CurveCreator_Curve* myCurve; + + int mySection; + + std::vector< Handle_AIS_InteractiveObject > myObjects; + + Handle_AIS_InteractiveContext myContext; + + bool myIsHighlight; + + bool myIsHL; + +}; + + + +class HYDROGUI_AISCurve : public CurveCreator_Listener + +{ + +public: + + HYDROGUI_AISCurve(CurveCreator_Curve* theCurve, Handle_AIS_InteractiveContext theContext ); + + ~HYDROGUI_AISCurve(void); + + + + void setCurve( CurveCreator_Curve* theCurve ); + + + + void Display(); + + + + virtual void pointInserted( int theSection, int theIndx ); + + + + void highlightSection( int theSection, bool isHL ); + + void clearSelection(); + + + +protected: + + virtual void buildCurve(); + + Quantity_Color getActiveColor(); + + + +private: + + CurveCreator_Curve* myCurve; + + Handle_AIS_InteractiveContext myContext; + + std::vector< HYDROGUI_AISCurveSection* > myCurveRepresentation; + +}; + + + #endif \ No newline at end of file