0024129: Eliminate remaining compiler warnings in MSVC++ 2008 32 bit with warning...
[occt.git] / src / TopOpeBRep / TopOpeBRep_Point2d.cxx
1 // Created on: 1998-10-29
2 // Created by: Jean Yves LEBEY
3 // Copyright (c) 1998-1999 Matra Datavision
4 // Copyright (c) 1999-2012 OPEN CASCADE SAS
5 //
6 // The content of this file is subject to the Open CASCADE Technology Public
7 // License Version 6.5 (the "License"). You may not use the content of this file
8 // except in compliance with the License. Please obtain a copy of the License
9 // at http://www.opencascade.org and read it completely before using this file.
10 //
11 // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13 //
14 // The Original Code and all software distributed under the License is
15 // distributed on an "AS IS" basis, without warranty of any kind, and the
16 // Initial Developer hereby disclaims all such warranties, including without
17 // limitation, any warranties of merchantability, fitness for a particular
18 // purpose or non-infringement. Please see the License for the specific terms
19 // and conditions governing the rights and limitations under the License.
20
21
22 #ifdef DRAW
23 #include <TopOpeBRepTool_DRAW.hxx>
24 #endif
25
26 #include <TopOpeBRep_Point2d.ixx>
27 #include <TopOpeBRep_define.hxx>
28 #include <TopOpeBRepDS.hxx>
29 #include <BRep_Tool.hxx>
30
31 //=======================================================================
32 //function : TopOpeBRep_Point2d
33 //purpose  : 
34 //=======================================================================
35 TopOpeBRep_Point2d::TopOpeBRep_Point2d() :
36 myhaspint(Standard_False),
37 myisvertex1(Standard_False),
38 myparameter1(0.),
39 myisvertex2(Standard_False),
40 myparameter2(0.),
41 myispointofsegment(Standard_False),
42 myips1(0),myips2(0),myhasancestors(Standard_False),
43 mystatus(TopOpeBRep_P2DUNK),
44 myindex(0),
45 mykeep(Standard_True),
46 myedgesconfig(TopOpeBRepDS_UNSHGEOMETRY),
47 mytolerance(0.)
48 {
49 }
50
51 //=======================================================================
52 //function : Vertex
53 //purpose  : 
54 //=======================================================================
55 const TopoDS_Vertex& TopOpeBRep_Point2d::Vertex(const Standard_Integer Index) const
56 {
57   if (!IsVertex(Index)) Standard_Failure::Raise("TopOpeBRep_Point2d::Vertex");
58   if      (Index == 1) return myvertex1;
59   else if (Index == 2) return myvertex2;
60   else Standard_Failure::Raise("TopOpeBRep_Point2d::Vertex");
61   return myvertex1;
62 }
63
64 //=======================================================================
65 //function : Transition
66 //purpose  : 
67 //=======================================================================
68 const TopOpeBRepDS_Transition& TopOpeBRep_Point2d::Transition(const Standard_Integer Index) const
69 {
70   if      (Index == 1) return mytransition1;
71   else if (Index == 2) return mytransition2;
72   else Standard_Failure::Raise("TopOpeBRep_Point2d::Transition");
73   return mytransition1;
74 }
75
76 //=======================================================================
77 //function : ChangeTransition
78 //purpose  : 
79 //=======================================================================
80 TopOpeBRepDS_Transition& TopOpeBRep_Point2d::ChangeTransition(const Standard_Integer Index)
81 {
82   if      (Index == 1) return mytransition1;
83   else if (Index == 2) return mytransition2;
84   else Standard_Failure::Raise("TopOpeBRep_Point2d::ChangeTransition");
85   return mytransition1;
86 }
87
88 //=======================================================================
89 //function : Dump
90 //purpose  : 
91 //=======================================================================
92 #ifdef DEB
93 void TopOpeBRep_Point2d::Dump(const Standard_Integer E1index,const Standard_Integer E2index) const
94 {
95   Standard_Real par1 = Parameter(1);
96   Standard_Real par2 = Parameter(2);
97   
98   Standard_Integer index = Index();
99   Standard_Boolean keep = Keep();
100   Standard_Integer sts = Status();
101   Standard_Boolean pos = IsPointOfSegment();
102
103   const TopOpeBRepDS_Transition& T1 = Transition(1);
104   const TopOpeBRepDS_Transition& T2 = Transition(2);
105   
106   Standard_Boolean isvertex1 = IsVertex(1); TopoDS_Vertex V1; if (isvertex1) V1 = Vertex(1);
107   Standard_Boolean isvertex2 = IsVertex(2); TopoDS_Vertex V2; if (isvertex2) V2 = Vertex(2);
108
109   Standard_Integer ia1,ia2; SegmentAncestors(ia1,ia2);
110   cout<<endl<<"p2d "<<index<<"  k="<<keep<<" pos="<<pos;
111   switch (sts) {
112   case TopOpeBRep_P2DUNK : cout<<" sts=u";break;
113   case TopOpeBRep_P2DSGF : cout<<" sts=f";break;
114   case TopOpeBRep_P2DSGL : cout<<" sts=l";break;
115   case TopOpeBRep_P2DNEW :
116     cout<<" sts=n";
117     cout<<" anc="<<ia1<<","<<ia2;
118     break;
119   case TopOpeBRep_P2DINT : cout<<" sts=i";break;
120   } // switch
121   cout<<" cfg=";TopOpeBRepDS::Print(myedgesconfig,cout);
122   cout<<endl;
123   
124   gp_Pnt P3D = Value();
125 #ifdef DRAW
126   cout<<FUN_tool_PRODINP()<<"P"<<Index()<<" "<<P3D.X()<<" "<<P3D.Y()<<" "<<P3D.Z()<<"; # tol = "<<tol<<endl;
127 #endif
128   cout<<"     on (1) :"; cout<<" vertex(1) : "; cout<<(isvertex1)? 1:0;
129   cout<<"  T "<<E1index<<"(1) : "; T1.Dump(cout);
130   cout<<" par(1) = "<<par1;
131   if (isvertex1) {
132     P3D = BRep_Tool::Pnt(V1);
133     cout<<" PV(1) : "<<P3D.X()<<" "<<P3D.Y()<<" "<<P3D.Z();
134   }
135   cout<<endl;
136   
137   cout<<"     on (2) :"; cout<<" vertex(2) : "; cout<<(isvertex2)? 1:0;
138   cout<<"  T "<<E2index<<"(2) : "; T2.Dump(cout); 
139   cout<<" par(2) = "<<par2;
140   if (isvertex2) {
141     P3D = BRep_Tool::Pnt(V2);
142     cout<<" PV(2) : "<<P3D.X()<<" "<<P3D.Y()<<" "<<P3D.Z();
143   }
144   cout<<endl;
145 }
146 #else
147 void TopOpeBRep_Point2d::Dump(const Standard_Integer,const Standard_Integer) const {}
148 #endif