0029940: The method TPrsStd_AISPresentation::SetSelectionMode() seems useless for...
[occt.git] / src / TPrsStd / TPrsStd_AISPresentation.hxx
index bf61e8b..6d5ddd2 100644 (file)
@@ -27,6 +27,9 @@
 #include <Standard_Integer.hxx>
 #include <Standard_Boolean.hxx>
 #include <TDF_Attribute.hxx>
+#include <TDataXtd_Presentation.hxx>
+#include <AIS_InteractiveContext.hxx>
+
 class AIS_InteractiveObject;
 class Standard_GUID;
 class TDF_Label;
@@ -34,7 +37,6 @@ class TDF_Attribute;
 class TDF_RelocationTable;
 class TDF_AttributeDelta;
 
-
 class TPrsStd_AISPresentation;
 DEFINE_STANDARD_HANDLE(TPrsStd_AISPresentation, TDF_Attribute)
 
@@ -155,20 +157,26 @@ public:
   Standard_EXPORT void UnsetMode();
   
   Standard_EXPORT Standard_Integer SelectionMode() const;
-  
-  Standard_EXPORT void SetSelectionMode (const Standard_Integer theSelectionMode);
+
+  //! Sets selection mode.
+  //! If "theTransaction" flag is OFF, modification of the attribute doesn't influence the transaction mechanism
+  //! (the attribute doesn't participate in undo/redo).
+  //! Certainly, if any other data of the attribute is modified (display mode, color, ...),
+  //! the attribute will be included into transaction.
+  //! Obsolete method (may be removed later).
+  Standard_EXPORT void SetSelectionMode (const Standard_Integer theSelectionMode, const Standard_Boolean theTransaction = Standard_True);
   
   Standard_EXPORT Standard_Boolean HasOwnSelectionMode() const;
   
   Standard_EXPORT void UnsetSelectionMode();
   
-  Standard_EXPORT const Standard_GUID& ID() const;
+  Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
   
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const;
+  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
   
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& with);
+  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& with) Standard_OVERRIDE;
   
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& into, const Handle(TDF_RelocationTable)& RT) const;
+  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
   
   Standard_EXPORT virtual Handle(TDF_Attribute) BackupCopy() const Standard_OVERRIDE;
   
@@ -185,18 +193,20 @@ public:
   //! update AIS viewer according to delta
   Standard_EXPORT virtual Standard_Boolean AfterUndo (const Handle(TDF_AttributeDelta)& anAttDelta, const Standard_Boolean forceIt = Standard_False) Standard_OVERRIDE;
 
-
-
-
-  DEFINE_STANDARD_RTTI(TPrsStd_AISPresentation,TDF_Attribute)
+  DEFINE_STANDARD_RTTIEXT(TPrsStd_AISPresentation,TDF_Attribute)
 
 protected:
 
-
-
+  //! Returns attribute storing presentation data
+  Standard_EXPORT virtual Handle(TDataXtd_Presentation) getData () const;
 
 private:
 
+  Handle(AIS_InteractiveContext) getAISContext() const;
+
+  //! Activates selection mode of the interactive object.
+  //! It is called internally on change of selection mode and AISUpdate().
+  void ActivateSelectionMode();
   
   //! Updates AIS_InteractiveObject stored in the attribute
   //! and applies the visualization settings
@@ -210,29 +220,8 @@ private:
   //! from AIS_InteractiveContext instead of simple erasing in the viewer
   Standard_EXPORT void AISErase (const Standard_Boolean remove = Standard_False);
 
-  Standard_GUID myDriverGUID;
-  Standard_Real myTransparency;
-  Quantity_NameOfColor myColor;
-  Graphic3d_NameOfMaterial myMaterial;
-  Standard_Real myWidth;
-  Standard_Integer myMode;
-  Standard_Integer mySelectionMode;
-  Standard_Boolean isDisplayed;
-  Standard_Boolean hasOwnColor;
-  Standard_Boolean hasOwnMaterial;
-  Standard_Boolean hasOwnTransparency;
-  Standard_Boolean hasOwnWidth;
-  Standard_Boolean hasOwnMode;
-  Standard_Boolean hasOwnSelectionMode;
+private:
   Handle(AIS_InteractiveObject) myAIS;
-
-
 };
 
-
-
-
-
-
-
 #endif // _TPrsStd_AISPresentation_HeaderFile