1 // File: GeomAPI_AISObject.hxx
2 // Created: 25 Jun 2014
3 // Author: Artem ZHIDKOV
5 #ifndef GeomAPI_AISObject_HeaderFile
6 #define GeomAPI_AISObject_HeaderFile
8 #include <GeomAPI_Interface.h>
10 #include <boost/shared_ptr.hpp>
18 struct GEOMAPI_EXPORT Colors
20 static int COLOR_BROWN;
22 static int COLOR_GREEN;
23 static int COLOR_BLUE;
26 /** \class GeomAPI_AISObject
28 * \brief Interface for AIS_InteractiveObject
31 class GEOMAPI_EXPORT GeomAPI_AISObject : public GeomAPI_Interface
34 /// \brief Creation of empty AIS object
37 /// \brief Creates AIS_Shape object using specified shape
38 void createShape(boost::shared_ptr<GeomAPI_Shape> theShape);
40 /** \brief Creates AIS_LengthDimension object
41 * \param[in] theStartPoint first point for dimension
42 * \param[in] theEndPoint second point for dimension
43 * \param[in] theFlyoutPoint the flyout of dimension relative to the measured line
44 * \param[in] thePlane the plane which contains all points above
45 * \param[in] theDistance value of the distance to be shown
47 void createDistance(boost::shared_ptr<GeomAPI_Pnt> theStartPoint,
48 boost::shared_ptr<GeomAPI_Pnt> theEndPoint,
49 boost::shared_ptr<GeomAPI_Pnt> theFlyoutPoint,
50 boost::shared_ptr<GeomAPI_Pln> thePlane,
53 /** \brief Creates AIS_RadiusDimension object
54 * \param[in] theCircle the radius is created for this circle
55 * \param[in] theFlyoutPoint the flyout of dimension
56 * \param[in] theRadius value of the radius to be shown
58 void createRadius(boost::shared_ptr<GeomAPI_Circ> theCircle,
59 boost::shared_ptr<GeomAPI_Pnt> theFlyoutPoint,
62 /** \brief Creates AIS_ParallelRelation object for two lines
63 * \param[in] theLine1 first parallel line
64 * \param[in] theLine2 second parallel line
65 * \param[in] theFlyoutPoint the flyout point for relation
66 * \param[in] thePlane the plane which contains the lines
68 void createParallel(boost::shared_ptr<GeomAPI_Shape> theLine1,
69 boost::shared_ptr<GeomAPI_Shape> theLine2,
70 boost::shared_ptr<GeomAPI_Pnt> theFlyoutPoint,
71 boost::shared_ptr<GeomAPI_Pln> thePlane);
73 /** \brief Creates AIS_PerpendicularRelation object for two lines
74 * \param[in] theLine1 first parallel line
75 * \param[in] theLine2 second parallel line
76 * \param[in] thePlane the plane which contains the lines
78 void createPerpendicular(boost::shared_ptr<GeomAPI_Shape> theLine1,
79 boost::shared_ptr<GeomAPI_Shape> theLine2,
80 boost::shared_ptr<GeomAPI_Pln> thePlane);
82 /** \brief Assigns the color for the shape
83 * \param[in] theColor index of the color
85 void setColor(const int& theColor);
87 /// \brief Assigns the width of the lines of shape
88 void setWidth(const double& theWidth);
90 /// \brief Checks if the object is empty