Salome HOME
Regression: do not rotate viewer if sketch plane is selected from a face of a shape
[modules/shaper.git] / src / GeomAPI / GeomAPI_AISObject.h
index 06bc2e9050705e5158656a341c5d1cbdf55627c2..c649ba93862dbb829cb3b7c4ef67b5fed18dfca1 100644 (file)
@@ -22,17 +22,23 @@ class GeomAPI_Shape;
  *  \brief Interface for AIS_InteractiveObject
  */
 
-class GEOMAPI_EXPORT GeomAPI_AISObject : public GeomAPI_Interface
+class GeomAPI_AISObject : public GeomAPI_Interface
 {
  public:
   /// \brief Creation of empty AIS object
+  GEOMAPI_EXPORT 
   GeomAPI_AISObject();
 
+  GEOMAPI_EXPORT 
   ~GeomAPI_AISObject();
 
   /// \brief Creates AIS_Shape object using specified shape
+  GEOMAPI_EXPORT 
   void createShape(std::shared_ptr<GeomAPI_Shape> theShape);
 
+  /// Reyirns shape used for the presentation creation (can be NULL)
+  GEOMAPI_EXPORT std::shared_ptr<GeomAPI_Shape> getShape() const;
+
   /** \brief Creates AIS_LengthDimension object
    *  \param[in] theStartPoint  first point for dimension
    *  \param[in] theEndPoint    second point for dimension
@@ -40,16 +46,26 @@ class GEOMAPI_EXPORT GeomAPI_AISObject : public GeomAPI_Interface
    *  \param[in] thePlane       the plane which contains all points above
    *  \param[in] theDistance    value of the distance to be shown
    */
+  GEOMAPI_EXPORT 
   void createDistance(std::shared_ptr<GeomAPI_Pnt> theStartPoint,
                       std::shared_ptr<GeomAPI_Pnt> theEndPoint,
                       std::shared_ptr<GeomAPI_Pnt> theFlyoutPoint,
                       std::shared_ptr<GeomAPI_Pln> thePlane, double theDistance);
 
+  /**
+   * Returns validity of the AIS distance. It is invalid if set measured geometry is not valid,
+   * e.g. the distance points are equal.
+   * \return a boolean result
+   */
+  GEOMAPI_EXPORT 
+  bool isEmptyDistanceGeometry();
+
   /** \brief Creates AIS_RadiusDimension object
    *  \param[in] theCircle      the radius is created for this circle
    *  \param[in] theFlyoutPoint the flyout of dimension
    *  \param[in] theRadius      value of the radius to be shown
    */
+  GEOMAPI_EXPORT 
   void createRadius(std::shared_ptr<GeomAPI_Circ> theCircle,
                     std::shared_ptr<GeomAPI_Pnt> theFlyoutPoint, double theRadius);
 
@@ -59,6 +75,7 @@ class GEOMAPI_EXPORT GeomAPI_AISObject : public GeomAPI_Interface
    *  \param[in] theFlyoutPoint the flyout point for relation
    *  \param[in] thePlane       the plane which contains the lines
    */
+  GEOMAPI_EXPORT 
   void createParallel(std::shared_ptr<GeomAPI_Shape> theLine1,
                       std::shared_ptr<GeomAPI_Shape> theLine2,
                       std::shared_ptr<GeomAPI_Pnt> theFlyoutPoint,
@@ -69,6 +86,7 @@ class GEOMAPI_EXPORT GeomAPI_AISObject : public GeomAPI_Interface
    *  \param[in] theLine2       second parallel line
    *  \param[in] thePlane       the plane which contains the lines
    */
+  GEOMAPI_EXPORT 
   void createPerpendicular(std::shared_ptr<GeomAPI_Shape> theLine1,
                            std::shared_ptr<GeomAPI_Shape> theLine2,
                            std::shared_ptr<GeomAPI_Pln> thePlane);
@@ -77,12 +95,14 @@ class GEOMAPI_EXPORT GeomAPI_AISObject : public GeomAPI_Interface
    *  \param[in] theShape       the object
    *  \param[in] thePlane       the plane which contains the lines
    */
+  GEOMAPI_EXPORT 
   void createFixed(std::shared_ptr<GeomAPI_Shape> theShape,
                    std::shared_ptr<GeomAPI_Pln> thePlane);
 
   /** \brief Assigns the color for the shape
    *  \param[in] theColor index of the color
    */
+  GEOMAPI_EXPORT 
   void setColor(const int& theColor);
 
   /** \brief Assigns the color for the shape
@@ -91,6 +111,7 @@ class GEOMAPI_EXPORT GeomAPI_AISObject : public GeomAPI_Interface
    *  \param[in] theB value of the blue component
    *  \returns true if the presentation color is changed
    */
+  GEOMAPI_EXPORT 
   bool setColor(int theR, int theG, int theB);
 
   /** \brief Returns the color for the shape
@@ -98,29 +119,36 @@ class GEOMAPI_EXPORT GeomAPI_AISObject : public GeomAPI_Interface
    *  \param[in] theG value of the green component
    *  \param[in] theB value of the blue component
    */
+  GEOMAPI_EXPORT 
   void getColor(int& theR, int& theG, int& theB);
 
   /// \brief Assigns the width of the lines of shape
+  GEOMAPI_EXPORT 
   bool setWidth(const double& theWidth);
 
   /// \brief Checks if the object is empty
+  GEOMAPI_EXPORT 
   bool empty() const;
 
   /// Return shape type according to TopAbs_ShapeEnum if the AIS is AIS_Shape
   /// Otherwise returns -1
+  GEOMAPI_EXPORT 
   int getShapeType() const;
 
   /// Sets marker type for vertex.
   /// The type has to be defined according to Acpect_TypeOfMarker
+  GEOMAPI_EXPORT 
   void setPointMarker(int theType, double theScale);
 
   /// Set line type of edges
   /// Has to be defined according to Aspect_TypeOfLine
   /// \returns true if the object value differs from the current
+  GEOMAPI_EXPORT 
   bool setLineStyle(int theStyle);
 
   /// Set transparency of the presentation (theVal = 0 ... 1)
   /// \returns true if the object value differs from the current
+  GEOMAPI_EXPORT 
   bool setTransparensy(double theVal);
 };