0031456: Visualization - move out Dimensions and Relations from package AIS to PrsDims
[occt.git] / src / PrsDim / PrsDim_IdenticRelation.cxx
similarity index 95%
rename from src/AIS/AIS_IdenticRelation.cxx
rename to src/PrsDim/PrsDim_IdenticRelation.cxx
index fe394d4..127c65a 100644 (file)
@@ -14,9 +14,9 @@
 // Alternatively, this file may be used under the terms of Open CASCADE
 // commercial license or contractual agreement.
 
+#include <PrsDim_IdenticRelation.hxx>
 
-#include <AIS.hxx>
-#include <AIS_IdenticRelation.hxx>
+#include <PrsDim.hxx>
 #include <AIS_Shape.hxx>
 #include <BRep_Tool.hxx>
 #include <DsgPrs_IdenticPresentation.hxx>
@@ -25,7 +25,6 @@
 #include <Geom_Ellipse.hxx>
 #include <Geom_Line.hxx>
 #include <Geom_Plane.hxx>
-#include <Geom_Transformation.hxx>
 #include <Geom_TrimmedCurve.hxx>
 #include <GeomAPI_ProjectPointOnCurve.hxx>
 #include <gp_Dir.hxx>
@@ -41,7 +40,6 @@
 #include <SelectMgr_EntityOwner.hxx>
 #include <SelectMgr_Selection.hxx>
 #include <Standard_NotImplemented.hxx>
-#include <Standard_Type.hxx>
 #include <TCollection_ExtendedString.hxx>
 #include <TColStd_ListIteratorOfListOfTransient.hxx>
 #include <TopAbs.hxx>
@@ -54,7 +52,7 @@
 #include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
 #include <TopTools_ListIteratorOfListOfShape.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(AIS_IdenticRelation,AIS_Relation)
+IMPLEMENT_STANDARD_RTTIEXT(PrsDim_IdenticRelation, PrsDim_Relation)
 
 // jfa 15/10/2000
 static Standard_Real Modulo2PI(const Standard_Real ANGLE)
@@ -75,11 +73,11 @@ static Standard_Boolean IsEqual2PI(const Standard_Real angle1,
 // jfa 15/10/2000 end
 
 //=======================================================================
-//function : AIS_Sort
+//function : PrsDim_Sort
 //purpose  : sort an array of parameters <tab1> in increasing order
 //           updates <tab2> and <tab3> according to <tab1>
 //=======================================================================
-static void AIS_Sort(Standard_Real tab1[4],
+static void PrsDim_Sort(Standard_Real tab1[4],
                     gp_Pnt tab2[4],
                     Standard_Integer tab3[4])
 {
@@ -287,10 +285,10 @@ static Standard_Boolean ComputeAttach(const gp_Elips& theEll,
 // jfa 16/10/2000 end
 
 //=======================================================================
-//function : AIS_IdenticRelation
+//function : PrsDim_IdenticRelation
 //purpose  : 
 //=======================================================================
-AIS_IdenticRelation::AIS_IdenticRelation(const TopoDS_Shape& FirstShape, 
+PrsDim_IdenticRelation::PrsDim_IdenticRelation(const TopoDS_Shape& FirstShape, 
                                         const TopoDS_Shape& SecondShape, 
                                         const Handle(Geom_Plane)& aPlane)
   :isCircle(Standard_False)
@@ -304,7 +302,7 @@ AIS_IdenticRelation::AIS_IdenticRelation(const TopoDS_Shape& FirstShape,
 //function : Compute
 //purpose  : 
 //=======================================================================
-void AIS_IdenticRelation::Compute(const Handle(PrsMgr_PresentationManager3d)&, 
+void PrsDim_IdenticRelation::Compute(const Handle(PrsMgr_PresentationManager3d)&, 
                                  const Handle(Prs3d_Presentation)& aprs, 
                                  const Standard_Integer)
 {
@@ -362,7 +360,7 @@ void AIS_IdenticRelation::Compute(const Handle(PrsMgr_PresentationManager3d)&,
 //           before.
 //=======================================================================
 
-void AIS_IdenticRelation::ComputeSelection(const Handle(SelectMgr_Selection)& aSelection, 
+void PrsDim_IdenticRelation::ComputeSelection(const Handle(SelectMgr_Selection)& aSelection, 
                                           const Standard_Integer)
 {
   Handle(SelectMgr_EntityOwner) own = new SelectMgr_EntityOwner(this,7);
@@ -385,7 +383,7 @@ void AIS_IdenticRelation::ComputeSelection(const Handle(SelectMgr_Selection)& aS
          gp_Pnt firstp1,lastp1,firstp2,lastp2;
          Standard_Boolean isInfinite1,isInfinite2;
          Handle(Geom_Curve) extCurv;
-         if ( !AIS::ComputeGeometry(TopoDS::Edge(myFShape),TopoDS::Edge(mySShape),
+         if ( !PrsDim::ComputeGeometry(TopoDS::Edge(myFShape),TopoDS::Edge(mySShape),
                                     myExtShape,curv1,curv2,
                                     firstp1,lastp1,firstp2,lastp2,
                                     extCurv,isInfinite1,isInfinite2,myPlane) ) return;
@@ -456,14 +454,14 @@ void AIS_IdenticRelation::ComputeSelection(const Handle(SelectMgr_Selection)& aS
 //function : ComputeTwoEdgesPresentation
 //purpose  : 
 //=======================================================================
-void AIS_IdenticRelation::ComputeTwoEdgesPresentation(const Handle(Prs3d_Presentation)& aPrs)
+void PrsDim_IdenticRelation::ComputeTwoEdgesPresentation(const Handle(Prs3d_Presentation)& aPrs)
 {
   Handle(Geom_Curve) curv1,curv2;
   gp_Pnt firstp1,lastp1,firstp2,lastp2;
   Standard_Boolean isInfinite1,isInfinite2;
 
   Handle(Geom_Curve) extCurv;
-  if (!AIS::ComputeGeometry(TopoDS::Edge(myFShape),
+  if (!PrsDim::ComputeGeometry(TopoDS::Edge(myFShape),
                            TopoDS::Edge(mySShape),
                            myExtShape,
                            curv1,
@@ -526,7 +524,7 @@ void AIS_IdenticRelation::ComputeTwoEdgesPresentation(const Handle(Prs3d_Present
 //           <firstp2>: first extremity of the 2nd curve of the constraint
 //           <lastp2> :last extremity of the 2nd curve of the constraint
 //=======================================================================
-void AIS_IdenticRelation::ComputeTwoLinesPresentation(const Handle(Prs3d_Presentation)& aPrs, 
+void PrsDim_IdenticRelation::ComputeTwoLinesPresentation(const Handle(Prs3d_Presentation)& aPrs, 
                                                      const Handle(Geom_Line)& thelin,
                                                      gp_Pnt& firstp1,
                                                      gp_Pnt& lastp1,
@@ -595,7 +593,7 @@ void AIS_IdenticRelation::ComputeTwoLinesPresentation(const Handle(Prs3d_Present
     tabRang1[3] = pl2; tabRang2[3] = lastp2;  tabRang3[3] = 2;
 
   // Sort of the array of parameters (tabRang1)
-    AIS_Sort(tabRang1, tabRang2, tabRang3);
+    PrsDim_Sort(tabRang1, tabRang2, tabRang3);
 
     // Computation of myFAttach and mySAttach according to the
     // position of the 2 linear edges
@@ -701,7 +699,7 @@ void AIS_IdenticRelation::ComputeTwoLinesPresentation(const Handle(Prs3d_Present
 //           <firstp2>: first extremity of the 2nd curve of the constraint
 //           <lastp2> :last extremity of the 2nd curve of the constraint
 //=======================================================================
-void AIS_IdenticRelation::ComputeTwoCirclesPresentation(const Handle(Prs3d_Presentation)& aPrs,
+void PrsDim_IdenticRelation::ComputeTwoCirclesPresentation(const Handle(Prs3d_Presentation)& aPrs,
                                                        const Handle(Geom_Circle)& thecirc,
                                                        const gp_Pnt& firstp1,
                                                        const gp_Pnt& lastp1,
@@ -948,7 +946,7 @@ void AIS_IdenticRelation::ComputeTwoCirclesPresentation(const Handle(Prs3d_Prese
 //purpose  : Compute the presentation of the constraint where we are
 //           not in the case of dragging.
 //=======================================================================
-void AIS_IdenticRelation::ComputeAutoArcPresentation(const Handle(Geom_Circle)& thecirc,
+void PrsDim_IdenticRelation::ComputeAutoArcPresentation(const Handle(Geom_Circle)& thecirc,
                                                     const gp_Pnt& firstp,
                                                     const gp_Pnt& lastp,
                                                     const Standard_Boolean isstatic)
@@ -981,7 +979,7 @@ void AIS_IdenticRelation::ComputeAutoArcPresentation(const Handle(Geom_Circle)&
 //           The symbol of the constraint moves together with arc
 //           representing the constraint around all the circle.
 //=======================================================================
-void AIS_IdenticRelation::ComputeNotAutoCircPresentation(const Handle(Geom_Circle)& thecirc)
+void PrsDim_IdenticRelation::ComputeNotAutoCircPresentation(const Handle(Geom_Circle)& thecirc)
 {
   gp_Pnt curpos = myPosition;
 
@@ -1013,7 +1011,7 @@ void AIS_IdenticRelation::ComputeNotAutoCircPresentation(const Handle(Geom_Circl
 //           The symbol of the constraint moves only between myFAttach
 //           and mySAttach.
 //=======================================================================
-void AIS_IdenticRelation::ComputeNotAutoArcPresentation(const Handle(Geom_Circle)& thecirc,
+void PrsDim_IdenticRelation::ComputeNotAutoArcPresentation(const Handle(Geom_Circle)& thecirc,
                                                        const gp_Pnt& pntfirst,
                                                        const gp_Pnt& pntlast)
 {
@@ -1056,7 +1054,7 @@ void AIS_IdenticRelation::ComputeNotAutoArcPresentation(const Handle(Geom_Circle
 //           <firstp2>: first extremity of the 2nd curve of the constraint
 //           <lastp2> :last extremity of the 2nd curve of the constraint
 //=======================================================================
-void AIS_IdenticRelation::ComputeTwoEllipsesPresentation(const Handle(Prs3d_Presentation)& aPrs,
+void PrsDim_IdenticRelation::ComputeTwoEllipsesPresentation(const Handle(Prs3d_Presentation)& aPrs,
                                                         const Handle(Geom_Ellipse)& theEll,
                                                         const gp_Pnt& firstp1,
                                                         const gp_Pnt& lastp1,
@@ -1302,7 +1300,7 @@ void AIS_IdenticRelation::ComputeTwoEllipsesPresentation(const Handle(Prs3d_Pres
 //purpose  : Compute the presentation of the constraint where we are
 //           not in the case of dragging.
 //=======================================================================
-void AIS_IdenticRelation::ComputeAutoArcPresentation(const Handle(Geom_Ellipse)& theEll,
+void PrsDim_IdenticRelation::ComputeAutoArcPresentation(const Handle(Geom_Ellipse)& theEll,
                                                     const gp_Pnt& firstp,
                                                     const gp_Pnt& lastp,
                                                     const Standard_Boolean isstatic)
@@ -1337,7 +1335,7 @@ void AIS_IdenticRelation::ComputeAutoArcPresentation(const Handle(Geom_Ellipse)&
 //           The symbol of the constraint moves only between myFAttach
 //           and mySAttach.
 //=======================================================================
-void AIS_IdenticRelation::ComputeNotAutoElipsPresentation(const Handle(Geom_Ellipse)& theEll)
+void PrsDim_IdenticRelation::ComputeNotAutoElipsPresentation(const Handle(Geom_Ellipse)& theEll)
 {
   gp_Pnt curpos = myPosition;
 
@@ -1372,7 +1370,7 @@ void AIS_IdenticRelation::ComputeNotAutoElipsPresentation(const Handle(Geom_Elli
 //           The symbol of the constraint moves only between myFAttach
 //           and mySAttach.
 //=======================================================================
-void AIS_IdenticRelation::ComputeNotAutoArcPresentation(const Handle(Geom_Ellipse)& theEll,
+void PrsDim_IdenticRelation::ComputeNotAutoArcPresentation(const Handle(Geom_Ellipse)& theEll,
                                                        const gp_Pnt& pntfirst,
                                                        const gp_Pnt& pntlast)
 {
@@ -1411,14 +1409,14 @@ void AIS_IdenticRelation::ComputeNotAutoArcPresentation(const Handle(Geom_Ellips
 //function : ComputeTwoVerticesPresentation
 //purpose  : 
 //=======================================================================
-void AIS_IdenticRelation::ComputeTwoVerticesPresentation(const Handle(Prs3d_Presentation)& aPrs)
+void PrsDim_IdenticRelation::ComputeTwoVerticesPresentation(const Handle(Prs3d_Presentation)& aPrs)
 {
   Standard_Boolean isOnPlane1, isOnPlane2;
   const TopoDS_Vertex& FVertex = TopoDS::Vertex(myFShape);
   const TopoDS_Vertex& SVertex = TopoDS::Vertex(mySShape);
   
-  AIS::ComputeGeometry(FVertex, myFAttach, myPlane, isOnPlane1);
-  AIS::ComputeGeometry(SVertex, mySAttach, myPlane, isOnPlane2);
+  PrsDim::ComputeGeometry(FVertex, myFAttach, myPlane, isOnPlane1);
+  PrsDim::ComputeGeometry(SVertex, mySAttach, myPlane, isOnPlane2);
   
   if (isOnPlane1 && isOnPlane2)
     myExtShape = 0;
@@ -1512,7 +1510,7 @@ void AIS_IdenticRelation::ComputeTwoVerticesPresentation(const Handle(Prs3d_Pres
 //function : ComputeSegSize
 //purpose  : 
 //=======================================================================
-Standard_Real AIS_IdenticRelation::ComputeSegSize() const 
+Standard_Real PrsDim_IdenticRelation::ComputeSegSize() const 
 {
   return 1.;
 }
@@ -1523,7 +1521,7 @@ Standard_Real AIS_IdenticRelation::ComputeSegSize() const
 //           elements connected to the vertex <VERT>, in way to not have
 //           overlap between the symbol and them.
 //=======================================================================
-Standard_Boolean AIS_IdenticRelation::ComputeDirection(const TopoDS_Wire& aWire, 
+Standard_Boolean PrsDim_IdenticRelation::ComputeDirection(const TopoDS_Wire& aWire, 
                                                       const TopoDS_Vertex& VERT, 
                                                       gp_Dir& dF) const 
 {
@@ -1540,7 +1538,7 @@ Standard_Boolean AIS_IdenticRelation::ComputeDirection(const TopoDS_Wire& aWire,
 
   // Case with 2 edges connected to the vertex <VERT>
   if ( !edg1.IsNull() && !edg2.IsNull() ) {
-    if ( !AIS::ComputeGeometry(edg1,edg2,
+    if ( !PrsDim::ComputeGeometry(edg1,edg2,
                               curv1,curv2,
                               firstp1, lastp1,
                               firstp2, lastp2,myPlane))
@@ -1582,7 +1580,7 @@ Standard_Boolean AIS_IdenticRelation::ComputeDirection(const TopoDS_Wire& aWire,
     else 
       return Standard_False;
 
-    if ( !AIS::ComputeGeometry(VEdge, curv1, firstp1, lastp1) )
+    if ( !PrsDim::ComputeGeometry(VEdge, curv1, firstp1, lastp1) )
       return Standard_False; 
     if ( curv1->IsInstance(STANDARD_TYPE(Geom_Circle)) ) {
       dF = ComputeCircleDirection( Handle(Geom_Circle)::DownCast (curv1), VERT);
@@ -1601,7 +1599,7 @@ Standard_Boolean AIS_IdenticRelation::ComputeDirection(const TopoDS_Wire& aWire,
 //function : ComputeLineDirection
 //purpose  : 
 //=======================================================================
-gp_Dir AIS_IdenticRelation::ComputeLineDirection(const Handle(Geom_Line)& lin, 
+gp_Dir PrsDim_IdenticRelation::ComputeLineDirection(const Handle(Geom_Line)& lin, 
                                                 const gp_Pnt& firstP) const 
 {
   gp_Dir dir;
@@ -1615,7 +1613,7 @@ gp_Dir AIS_IdenticRelation::ComputeLineDirection(const Handle(Geom_Line)& lin,
 //function : ComputeCircleDirection
 //purpose  : 
 //=======================================================================
-gp_Dir AIS_IdenticRelation::ComputeCircleDirection(const Handle(Geom_Circle)& circ, 
+gp_Dir PrsDim_IdenticRelation::ComputeCircleDirection(const Handle(Geom_Circle)& circ, 
                                                   const TopoDS_Vertex& VERT) const 
 {
   gp_Vec V(circ->Location(),BRep_Tool::Pnt(VERT));
@@ -1626,7 +1624,7 @@ gp_Dir AIS_IdenticRelation::ComputeCircleDirection(const Handle(Geom_Circle)& ci
 //function : ComputeOneEdgeOVertexPresentation
 //purpose  : 
 //=======================================================================
-void AIS_IdenticRelation::ComputeOneEdgeOVertexPresentation(const Handle(Prs3d_Presentation)& aPrs)
+void PrsDim_IdenticRelation::ComputeOneEdgeOVertexPresentation(const Handle(Prs3d_Presentation)& aPrs)
 {
   TopoDS_Vertex V;
   TopoDS_Edge E;
@@ -1647,10 +1645,10 @@ void AIS_IdenticRelation::ComputeOneEdgeOVertexPresentation(const Handle(Prs3d_P
   Handle(Geom_Curve) extCurv;
   Standard_Boolean isInfinite;
   Standard_Boolean isOnPlanEdge, isOnPlanVertex;
-  if (!AIS::ComputeGeometry(E,aCurve,ptonedge1,ptonedge2,extCurv,isInfinite,isOnPlanEdge,myPlane))
+  if (!PrsDim::ComputeGeometry(E,aCurve,ptonedge1,ptonedge2,extCurv,isInfinite,isOnPlanEdge,myPlane))
     return;
   aPrs->SetInfiniteState(isInfinite);
-  AIS::ComputeGeometry(V, myFAttach, myPlane, isOnPlanVertex);
+  PrsDim::ComputeGeometry(V, myFAttach, myPlane, isOnPlanVertex);
 
   // only the curve can be projected 
   if (!isOnPlanEdge && !isOnPlanVertex) return;