0031687: Draw Harness, ViewerTest - extend command vrenderparams with option updating...
[occt.git] / src / AIS / AIS_DiameterDimension.hxx
index 6c8dcac..bc13501 100644 (file)
@@ -1,5 +1,4 @@
-// Copyright (c) 1995-1999 Matra Datavision
-// Copyright (c) 1999-2014 OPEN CASCADE SAS
+// Copyright (c) 2020 OPEN CASCADE SAS
 //
 // This file is part of Open CASCADE Technology software library.
 //
 // Alternatively, this file may be used under the terms of Open CASCADE
 // commercial license or contractual agreement.
 
-
 #ifndef _AIS_DiameterDimension_HeaderFile
 #define _AIS_DiameterDimension_HeaderFile
 
-#include <AIS.hxx>
-#include <AIS_Dimension.hxx>
-#include <gp_Pnt.hxx>
-#include <gp_Circ.hxx>
-#include <Standard.hxx>
-#include <Standard_Macro.hxx>
-#include <Standard_Type.hxx>
-
-class AIS_DiameterDimension;
-DEFINE_STANDARD_HANDLE (AIS_DiameterDimension, AIS_Dimension)
-
-//! Diameter dimension. Can be constructued:
-//! - On generic circle.
-//! - On generic circle with user-defined anchor point on that circle
-//!   (dimension plane is oriented to follow the anchor point).
-//! - On generic circle in the specified plane.
-//! - On generic shape containing geometry that can be measured
-//!   by diameter dimension: circle wire, circular face, etc.
-//! The anchor point is the location of the left attachement point of
-//! dimension on the circle.
-//! The anchor point computation is processed after dimension plane setting
-//! so that positive flyout direction stands with normal of the circle and
-//! the normal of the plane.
-//! If the plane is user-defined the anchor point was computed as intersection
-//! of the plane and the basis circle. Among two intersection points
-//! the one is selected so that positive flyout direction vector and
-//! the circle normal on the one side form the circle plane.
-//! (corner between positive flyout directio nand the circle normal is acute.)
-//! If the plane is computed automatically (by default it is the circle plane),
-//! the anchor point is the zero parameter point of the circle.
-//!
-//! The dimension is considered as invalid if the user-defined plane
-//! does not include th enachor point and th ecircle center,
-//! if the diameter of the circle is less than Precision::Confusion().
-//! In case if the dimension is built on the arbitrary shape, it can be considered
-//! as invalid if the shape does not contain circle geometry.
-//!
-class AIS_DiameterDimension : public AIS_Dimension
-{
-public:
-
-  //! Construct diameter dimension for the circle.
-  //! @param theCircle [in] the circle to measure.
-  Standard_EXPORT AIS_DiameterDimension (const gp_Circ& theCircle);
-
-  //! Construct diameter dimension for the circle and orient it correspondingly
-  //! to the passed plane.
-  //! @param theCircle [in] the circle to measure.
-  //! @param thePlane [in] the plane defining preferred orientation
-  //!        for dimension.
-  Standard_EXPORT AIS_DiameterDimension (const gp_Circ& theCircle,
-                                         const gp_Pln& thePlane);
-
-  //! Construct diameter on the passed shape, if applicable.
-  //! @param theShape [in] the shape to measure.
-  Standard_EXPORT AIS_DiameterDimension (const TopoDS_Shape& theShape);
-
-  //! Construct diameter on the passed shape, if applicable - and
-  //! define the preferred plane to orient the dimension.
-  //! @param theShape [in] the shape to measure.
-  //! @param thePlane [in] the plane defining preferred orientation
-  //!        for dimension.
-  Standard_EXPORT AIS_DiameterDimension (const TopoDS_Shape& theShape,
-                                         const gp_Pln& thePlane);
-
-public:
-
-  //! @return measured geometry circle.
-  const gp_Circ& Circle() const
-  {
-    return myCircle;
-  }
-
-  //! @return anchor point on circle for diameter dimension.
-  Standard_EXPORT gp_Pnt AnchorPoint();
-
-  //! @return the measured shape.
-  const TopoDS_Shape& Shape() const
-  {
-    return myShape;
-  }
-
-public:
-
-  //! Measure diameter of the circle.
-  //! The actual dimension plane is used for determining anchor points
-  //! on the circle to attach the dimension lines to.
-  //! The dimension will become invalid if the diameter of the circle
-  //! is less than Precision::Confusion().
-  //! @param theCircle [in] the circle to measure.
-  Standard_EXPORT void SetMeasuredGeometry (const gp_Circ& theCircle);
-
-  //! Measure diameter on the passed shape, if applicable.
-  //! The dimension will become invalid if the passed shape is not
-  //! measurable or if measured diameter value is less than Precision::Confusion().
-  //! @param theShape [in] the shape to measure.
-  Standard_EXPORT void SetMeasuredGeometry (const TopoDS_Shape& theShape);
-
-  //! @return the display units string.
-  Standard_EXPORT virtual const TCollection_AsciiString& GetDisplayUnits() const Standard_OVERRIDE;
-  
-  //! @return the model units string.
-  Standard_EXPORT virtual const TCollection_AsciiString& GetModelUnits() const Standard_OVERRIDE;
-
-  Standard_EXPORT virtual void SetDisplayUnits (const TCollection_AsciiString& theUnits) Standard_OVERRIDE;
-
-  Standard_EXPORT virtual void SetModelUnits (const TCollection_AsciiString& theUnits) Standard_OVERRIDE;
-
-  Standard_EXPORT virtual void SetTextPosition (const gp_Pnt& theTextPos) Standard_OVERRIDE;
-
-  Standard_EXPORT virtual const gp_Pnt GetTextPosition() const Standard_OVERRIDE;
-
-public:
-
-  DEFINE_STANDARD_RTTIEXT(AIS_DiameterDimension,AIS_Dimension)
-
-protected:
-
-  //! Override this method to change logic of anchor point computation.
-  //! Computes anchor point. Its computation is based on the current
-  //! dimension plane. Therfore, anchor point is an intersection of plane
-  //! and circle.
-  //! ATTENTION!
-  //! 1) The plane should be set or computed before.
-  //! 2) The plane should inclide th ecircle center to be valid.
-  Standard_EXPORT virtual void ComputeAnchorPoint();
-
-  Standard_EXPORT virtual void ComputePlane() Standard_OVERRIDE;
-
-  //! Checks if the center of the circle is on the plane.
-  Standard_EXPORT virtual Standard_Boolean CheckPlane (const gp_Pln& thePlane) const Standard_OVERRIDE;
-
-  Standard_EXPORT virtual Standard_Real ComputeValue() const Standard_OVERRIDE;
-
-  Standard_EXPORT virtual void Compute (const Handle(PrsMgr_PresentationManager3d)& thePresentationManager,
-                                        const Handle(Prs3d_Presentation)& thePresentation,
-                                        const Standard_Integer theMode = 0) Standard_OVERRIDE;
-
-  Standard_EXPORT virtual void ComputeFlyoutSelection (const Handle(SelectMgr_Selection)& theSelection,
-                                                       const Handle(SelectMgr_EntityOwner)& theEntityOwner) Standard_OVERRIDE;
-
-protected:
-
-  //! Compute points on the circle sides for the dimension plane.
-  //! Program error exception is raised if the dimension plane "x" direction 
-  //! is orthogonal to plane (the "impossible" case). The passed dimension plane
-  //! is the one specially computed to locate dimension presentation in circle.
-  //! @param theCircle [in] the circle.
-  //! @param theFirstPnt [out] the first point.
-  //! @param theSecondPnt [out] the second point.
-  Standard_EXPORT void ComputeSidePoints (const gp_Circ& theCircle,
-                                          gp_Pnt& theFirstPnt,
-                                          gp_Pnt& theSecondPnt);
-
-  Standard_EXPORT Standard_Boolean IsValidCircle (const gp_Circ& theCircle) const;
-
-  Standard_EXPORT Standard_Boolean IsValidAnchor (const gp_Circ& theCircle,
-                                                  const gp_Pnt& thePnt) const;
-
-private:
+#include <PrsDim_DiameterDimension.hxx>
 
-  gp_Circ          myCircle;
-  gp_Pnt           myAnchorPoint;
-  TopoDS_Shape     myShape;
-};
+Standard_DEPRECATED("Alias to moved class")
+typedef PrsDim_DiameterDimension AIS_DiameterDimension;
 
 #endif // _AIS_DiameterDimension_HeaderFile