X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FOBJECT%2FGEOM_AISShape.hxx;h=62bf81233e5b967fd13254044e057c7a19159b29;hb=e093baaf913215eb4070acc4d31ce1b3f9d1c3eb;hp=8a60ba952f059b78a70214971723020374f06b01;hpb=852ccfccc50fb56a385fdc8227c985c1417bf053;p=modules%2Fgeom.git diff --git a/src/OBJECT/GEOM_AISShape.hxx b/src/OBJECT/GEOM_AISShape.hxx index 8a60ba952..62bf81233 100644 --- a/src/OBJECT/GEOM_AISShape.hxx +++ b/src/OBJECT/GEOM_AISShape.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -20,171 +20,129 @@ // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // -// GEOM OBJECT : interactive object for Geometry entities visualization -// File : GEOM_AISShape.hxx -// Module : GEOM -// #ifndef _GEOM_AISShape_HeaderFile #define _GEOM_AISShape_HeaderFile -#include "GEOM_OBJECT_defs.hxx" - -#include +#include +#include -#ifndef _Standard_HeaderFile #include -#endif -#ifndef _Handle_GEOM_AISShape_HeaderFile -#include "Handle_GEOM_AISShape.hxx" -#endif - -#ifndef _Handle_SALOME_InteractiveObject_HeaderFile -#include "Handle_SALOME_InteractiveObject.hxx" -#endif -#ifndef _Standard_CString_HeaderFile -#include -#endif -#ifndef _SALOME_AISShape_HeaderFile -#include "SALOME_AISShape.hxx" -#endif -#ifndef _Standard_Boolean_HeaderFile -#include -#endif -#ifndef _PrsMgr_PresentationManager_HeaderFile +#include #include -#endif -#ifndef _Handle_Prs3d_Presentation_HeaderFile -#include -#endif - #include - #include -#include #include #include -class Prs3d_Presentation; -class SALOME_InteractiveObject; -class TopoDS_Shape; +#include +#include CORBA_SERVER_HEADER(GEOM_Gen) -class GEOM_OBJECT_EXPORT GEOM_AISShape : public SALOME_AISShape { +class TopoDS_Shape; +class GEOM_AISShape : public SALOME_AISShape +{ public: - - //! Enumeration of display modes - typedef enum { - //WireFrame, //!< the same as AIS_WireFrame - //Shading, //!< the same as AIS_Shaded - ShadingWithEdges = AIS_Shaded+1, //!< shading with edges - TexturedShape = ShadingWithEdges+1, //!< the same as AIS_ExactHLR - CustomHighlight = TexturedShape+1 - } DispMode; - - //! Enumeration of top level display modes - typedef enum { - TopShowAdditionalWActor = 0, - TopKeepCurrent, //!< Keep current display mode - TopWireFrame, - TopShading, - TopShadingWithEdges, - } TopLevelDispMode; - - - inline void* operator new(size_t,void* anAddress) - { - return anAddress; - } - inline void* operator new(size_t size) - { - return Standard::Allocate(size); - } - inline void operator delete(void *anAddress) - { - if (anAddress) Standard::Free((Standard_Address&)anAddress); - } -// inline void operator delete(void *anAddress, size_t size) -// { -// if (anAddress) Standard::Free((Standard_Address&)anAddress,size); -// } - // Methods PUBLIC - // - GEOM_AISShape(const TopoDS_Shape& shape, const Standard_CString aName); - Standard_Boolean hasIO() ; - void setIO(const Handle(SALOME_InteractiveObject)& name) ; - void setName(const Standard_CString aName) ; - Standard_CString getName() ; - Standard_Boolean isTopLevel(); - void setTopLevel(Standard_Boolean); - Handle_SALOME_InteractiveObject getIO() ; - void highlightSubShapes(const TColStd_IndexedMapOfInteger& aIndexMap, const Standard_Boolean aHighlight ); - ~GEOM_AISShape(); - - void SetShadingColor(const Quantity_Color &aCol); - void SetEdgesInShadingColor(const Quantity_Color &aCol); - void SetDisplayVectors(bool isShow); - void SetDisplayVertices(bool isShow); - - virtual void Compute(const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, - const Handle(Prs3d_Presentation)& aPresentation, - const Standard_Integer aMode = 0) ; - - virtual bool isShowVectors () { return myDisplayVectors; } - virtual bool isShowVertices () { return myDisplayVertices; } - virtual Standard_Boolean switchTopLevel(); - virtual Standard_Boolean toActivate(); + //! Enumeration of display modes + typedef enum { + Wireframe = AIS_WireFrame, //!< wireframe + Shading = AIS_Shaded, //!< shadin + ShadingWithEdges, //!< shading with edges + TexturedShape, //!< texture + CustomHighlight //!< fields + } DispMode; + + //! Enumeration of top level display modes + typedef enum { + TopShowAdditionalWActor = 0, + TopKeepCurrent, //!< Keep current display mode + TopWireFrame, + TopShading, + TopShadingWithEdges, + } TopLevelDispMode; + + Standard_EXPORT GEOM_AISShape(const TopoDS_Shape& shape, const Standard_CString aName); + Standard_EXPORT ~GEOM_AISShape(); + + Standard_EXPORT Standard_Boolean hasIO(); + Standard_EXPORT void setIO(const Handle(SALOME_InteractiveObject)& name); + Standard_EXPORT Handle(SALOME_InteractiveObject) getIO(); + + Standard_EXPORT void setName(const Standard_CString aName); + Standard_EXPORT Standard_CString getName(); + + Standard_EXPORT Standard_Boolean isTopLevel(); + Standard_EXPORT void setTopLevel(Standard_Boolean); + + Standard_EXPORT void highlightSubShapes(const TColStd_IndexedMapOfInteger& aIndexMap, const Standard_Boolean aHighlight ); + + Standard_EXPORT void SetShadingColor(const Quantity_Color &aCol); + Standard_EXPORT void SetEdgesInShadingColor(const Quantity_Color &aCol); + Standard_EXPORT void SetLabelColor(const Quantity_Color &aCol); + Standard_EXPORT void SetDisplayVectors(bool isShow); + Standard_EXPORT void SetDisplayVertices(bool isShow); + Standard_EXPORT void SetDisplayName(bool isShow); + + Standard_EXPORT virtual void Compute(const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, + const Handle(Prs3d_Presentation)& aPresentation, + const Standard_Integer aMode = 0); + + Standard_EXPORT virtual bool isShowVectors() { return myDisplayVectors; } + Standard_EXPORT virtual bool isShowVertices() { return myDisplayVertices; } + Standard_EXPORT virtual bool isShowName() { return myDisplayName; } + + Standard_EXPORT virtual Standard_Boolean switchTopLevel(); + Standard_EXPORT virtual Standard_Boolean toActivate(); - // Type management - // - friend Handle_Standard_Type& GEOM_AISShape_Type_(); - const Handle(Standard_Type)& DynamicType() const; - Standard_Boolean IsKind(const Handle(Standard_Type)&) const; - - static Quantity_Color topLevelColor(); - static void setTopLevelColor(const Quantity_Color c); + Standard_EXPORT static Quantity_Color topLevelColor(); + Standard_EXPORT static void setTopLevelColor(const Quantity_Color c); - static TopLevelDispMode topLevelDisplayMode(); - static void setTopLevelDisplayMode(const TopLevelDispMode dm); + Standard_EXPORT static TopLevelDispMode topLevelDisplayMode(); + Standard_EXPORT static void setTopLevelDisplayMode(const TopLevelDispMode dm); - void setPrevDisplayMode(const Standard_Integer mode); - Standard_Integer prevDisplayMode() const {return myPrevDisplayMode;} + Standard_EXPORT void setPrevDisplayMode(const Standard_Integer mode); + Standard_EXPORT Standard_Integer prevDisplayMode() const {return myPrevDisplayMode;} // Field step information - void setFieldStepInfo( const GEOM::field_data_type theFieldDataType, - const int theFieldDimension, - const QList& theFieldStepData, - const TCollection_AsciiString& theFieldStepName, - const double theFieldStepRangeMin, - const double theFieldStepRangeMax ); - void getFieldStepInfo( GEOM::field_data_type& theFieldDataType, - int& theFieldDimension, - QList& theFieldStepData, - TCollection_AsciiString& theFieldStepName, - double& theFieldStepRangeMin, - double& theFieldStepRangeMax ) const; + Standard_EXPORT void setFieldStepInfo( const GEOM::field_data_type theFieldDataType, + const int theFieldDimension, + const QList& theFieldStepData, + const TCollection_AsciiString& theFieldStepName, + const double theFieldStepRangeMin, + const double theFieldStepRangeMax ); + Standard_EXPORT void getFieldStepInfo( GEOM::field_data_type& theFieldDataType, + int& theFieldDimension, + QList& theFieldStepData, + TCollection_AsciiString& theFieldStepName, + double& theFieldStepRangeMin, + double& theFieldStepRangeMax ) const; protected: - void shadingMode(const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, - const Handle(Prs3d_Presentation)& aPrs, - const Standard_Integer aMode); - + Standard_EXPORT void shadingMode(const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, + const Handle(Prs3d_Presentation)& aPrs, + const Standard_Integer aMode); + // Displaying the field data - void drawField( const Handle(Prs3d_Presentation)& thePrs, - const bool theIsText = false, - const bool theIsHighlight = false ); + Standard_EXPORT void drawField( const Handle(Prs3d_Presentation)& thePrs, + const bool theIsText = false, + const bool theIsHighlight = false ); + + // Displaying the name of shape + Standard_EXPORT void drawName( const Handle(Prs3d_Presentation)& thePrs ); // Auxiliary method to compute a center of mass for the specified shape - static Standard_Boolean computeMassCenter( const TopoDS_Shape& theShape, - gp_Pnt& theCenter ); - - Quantity_Color myShadingColor; - Quantity_Color myEdgesInShadingColor; - + Standard_EXPORT static Standard_Boolean computeMassCenter( const TopoDS_Shape& theShape, + gp_Pnt& theCenter ); + private: + Quantity_Color myShadingColor; + Quantity_Color myEdgesInShadingColor; + Quantity_Color myLabelColor; + TCollection_AsciiString myName; bool myDisplayVectors; bool myDisplayVertices; + bool myDisplayName; Standard_Boolean myTopLevel; Standard_Integer myPrevDisplayMode; @@ -195,13 +153,13 @@ private: double myFieldStepRangeMin; double myFieldStepRangeMax; - static TopLevelDispMode myTopLevelDm; - static Quantity_Color myTopLevelColor; -}; - + static TopLevelDispMode myTopLevelDm; + static Quantity_Color myTopLevelColor; -// other inline functions and methods (like "C++: function call" methods) -// +public: + DEFINE_STANDARD_RTTIEXT(GEOM_AISShape, SALOME_AISShape) +}; +DEFINE_STANDARD_HANDLE(GEOM_AISShape, SALOME_AISShape) #endif