0031687: Draw Harness, ViewerTest - extend command vrenderparams with option updating...
[occt.git] / src / AIS / AIS_Line.hxx
index 6f09b85..2345a8b 100644 (file)
 #ifndef _AIS_Line_HeaderFile
 #define _AIS_Line_HeaderFile
 
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <Standard_Boolean.hxx>
 #include <AIS_InteractiveObject.hxx>
-#include <PrsMgr_PresentationManager3d.hxx>
-#include <Standard_Integer.hxx>
-#include <SelectMgr_Selection.hxx>
 #include <AIS_KindOfInteractive.hxx>
-#include <Quantity_NameOfColor.hxx>
-#include <Standard_Real.hxx>
+
 class Geom_Line;
 class Geom_Point;
-class Prs3d_Presentation;
-class Prs3d_Projector;
-class Geom_Transformation;
-class Quantity_Color;
-
-
-class AIS_Line;
-DEFINE_STANDARD_HANDLE(AIS_Line, AIS_InteractiveObject)
 
 //! Constructs line datums to be used in construction of
 //! composite shapes.
 class AIS_Line : public AIS_InteractiveObject
 {
-
+  DEFINE_STANDARD_RTTIEXT(AIS_Line, AIS_InteractiveObject)
 public:
 
-  
   //! Initializes the line aLine.
   Standard_EXPORT AIS_Line(const Handle(Geom_Line)& aLine);
-  
+
   //! Initializes a starting point aStartPoint
   //! and a finishing point aEndPoint for the line.
   Standard_EXPORT AIS_Line(const Handle(Geom_Point)& aStartPoint, const Handle(Geom_Point)& aEndPoint);
-  
-  //! computes the presentation according to a point of view
-  //! given by <aProjector>.
-  //! To be Used when the associated degenerated Presentations
-  //! have been transformed by <aTrsf> which is not a Pure
-  //! Translation. The HLR Prs can't be deducted automatically
-  //! WARNING :<aTrsf> must be applied
-  //! to the object to display before computation  !!!
-  Standard_EXPORT virtual void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Geom_Transformation)& aTrsf, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE;
-  
+
   //! Returns the signature 5.
-    virtual Standard_Integer Signature() const Standard_OVERRIDE;
-  
+  virtual Standard_Integer Signature() const Standard_OVERRIDE { return 5; }
+
   //! Returns the type Datum.
-    virtual AIS_KindOfInteractive Type() const Standard_OVERRIDE;
-  
+  virtual AIS_KindOfInteractive Type() const Standard_OVERRIDE { return AIS_KOI_Datum; }
+
   //! Constructs an infinite line.
-    const Handle(Geom_Line)& Line() const;
-  
-  //! Returns the starting point PStart and the end point
-  //! PEnd of the line set by SetPoints.
-    void Points (Handle(Geom_Point)& PStart, Handle(Geom_Point)& PEnd) const;
-  
+  const Handle(Geom_Line)& Line() const { return myComponent; }
+
+  //! Returns the starting point thePStart and the end point thePEnd of the line set by SetPoints.
+  void Points (Handle(Geom_Point)& thePStart, Handle(Geom_Point)& thePEnd) const
+  {
+    thePStart = myStartPoint;
+    thePEnd   = myEndPoint;
+  }
+
   //! instantiates an infinite line.
-    void SetLine (const Handle(Geom_Line)& L);
-  
+  void SetLine (const Handle(Geom_Line)& theLine)
+  {
+    myComponent = theLine;
+    myLineIsSegment = Standard_False;
+  }
 
-  //! Sets the starting point P1 and ending point P2 of the
+  //! Sets the starting point thePStart and ending point thePEnd of the
   //! infinite line to create a finite line segment.
-    void SetPoints (const Handle(Geom_Point)& P1, const Handle(Geom_Point)& P2);
-  
-  //! Provides a new color setting aColor for the line in the
-  //! drawing tool, or "Drawer".
-  Standard_EXPORT void SetColor (const Quantity_NameOfColor aColor) Standard_OVERRIDE;
-  
+  void SetPoints (const Handle(Geom_Point)& thePStart, const Handle(Geom_Point)& thePEnd)
+  {
+    myStartPoint    = thePStart;
+    myEndPoint      = thePEnd;
+    myLineIsSegment = Standard_True;
+  }
+
+  //! Provides a new color setting aColor for the line in the drawing tool, or "Drawer".
   Standard_EXPORT void SetColor (const Quantity_Color& aColor) Standard_OVERRIDE;
-  
+
   //! Provides the new width setting aValue for the line in
   //! the drawing tool, or "Drawer".
   Standard_EXPORT void SetWidth (const Standard_Real aValue) Standard_OVERRIDE;
-  
+
   //! Removes the color setting and returns the original color.
   Standard_EXPORT void UnsetColor() Standard_OVERRIDE;
-  
+
   //! Removes the width setting and returns the original width.
   Standard_EXPORT void UnsetWidth() Standard_OVERRIDE;
 
-
-
-
-  DEFINE_STANDARD_RTTI(AIS_Line,AIS_InteractiveObject)
-
-protected:
-
-
-
-
 private:
-
   
   Standard_EXPORT void Compute (const Handle(PrsMgr_PresentationManager3d)& aPresentationManager, const Handle(Prs3d_Presentation)& aPresentation, const Standard_Integer aMode = 0) Standard_OVERRIDE;
   
-  Standard_EXPORT void Compute (const Handle(Prs3d_Projector)& aProjector, const Handle(Prs3d_Presentation)& aPresentation) Standard_OVERRIDE;
-  
   Standard_EXPORT void ComputeSelection (const Handle(SelectMgr_Selection)& aSelection, const Standard_Integer aMode) Standard_OVERRIDE;
   
   Standard_EXPORT void ComputeInfiniteLine (const Handle(Prs3d_Presentation)& aPresentation);
@@ -127,19 +96,18 @@ private:
   
   Standard_EXPORT void ComputeSegmentLineSelection (const Handle(SelectMgr_Selection)& aSelection);
 
+  //! Replace aspects of already computed groups with the new value.
+  void replaceWithNewLineAspect (const Handle(Prs3d_LineAspect)& theAspect);
+
+private:
+
   Handle(Geom_Line) myComponent;
   Handle(Geom_Point) myStartPoint;
   Handle(Geom_Point) myEndPoint;
   Standard_Boolean myLineIsSegment;
 
-
 };
 
-
-#include <AIS_Line.lxx>
-
-
-
-
+DEFINE_STANDARD_HANDLE(AIS_Line, AIS_InteractiveObject)
 
 #endif // _AIS_Line_HeaderFile