Salome HOME
Code refactoring and small modifications
[modules/geom.git] / src / EntityGUI / EntityGUI_3DSketcherDlg.h
index 80741562c588cbf78331f1aaaabae90640d7c195..af81a199d13259968db0b15291c38b5670ee635c 100755 (executable)
@@ -30,9 +30,12 @@ class QButtonGroup;
 class QDoubleSpinBox;
 class EntityGUI_3Spin;
 class EntityGUI_Angles;
+class EntityGUI_Controls;
 class DlgRef_3Radio;
 class SOCC_Prs;
 
+#include <AIS_ListOfInteractive.hxx>
+
 #ifndef COORD_MIN
 #  define COORD_MIN -1e+15
 #  define COORD_MAX +1e+15
@@ -82,29 +85,46 @@ private:
   void                               displayTrihedron( int );
   
   void                               displayAngle( double, double, double, int, bool store = false );
+  void                               displayLength( double theLength = -1.0, bool store = false );
 
   bool                               createShapes( GEOM::GEOM_Object_ptr,
                                                    TopoDS_Shape&,
                                                    TopoDS_Shape& );
 
   XYZ                                getLastPoint() const;
+  XYZ                                getPenultimatePoint() const;
   XYZ                                getCurrentPoint() const;
+  
+  std::string                        doubleToString( double );
+  
+  void                               removeLastIOFromPrs( int );
+  void                               restoreLastIOToPrs( int );
 
 private:
   XYZList                            myPointsList;
   XYZList                            myRedoList;
+  AIS_ListOfInteractive              myLengthIORedoList;
+  AIS_ListOfInteractive              myAngleIORedoList;
+  int                                myPrsType;
+  std::list<int>                     myPrsTypeList;
+  std::list<int>                     myPrsTypeRedoList;
 
   EntityGUI_3Spin*                   Group3Spin;
   EntityGUI_Angles*                  GroupAngles;
+  EntityGUI_Controls*                GroupControls;
   DlgRef_3Radio*                     GroupType;
   QButtonGroup*                      myTypeGroup;
 
   int                                myMode;
   int                                myOrientation;
   bool                               myOK;
+  bool                               isLengthVisible;
+  bool                               isAngleVisible;
+  
   double                             myLineWidth;
   GeometryGUI*                       myGeometryGUI;
   SOCC_Prs*                          myAnglePrs;
+  SOCC_Prs*                          myLengthPrs;
 
 private slots:
   void                               ClickOnOk();
@@ -122,7 +142,7 @@ private slots:
   void                               TypeClicked( int );
   void                               ValueChangedInSpinBox( double );
   void                               ButtonClicked( bool );
-  void                               AngleChecked ( bool );
+  void                               BoxChecked ( bool );
   void                               SetDoubleSpinBoxStep( double );
 };