1 // File: GC_MakePlane.cxx
2 // Created: Fri Oct 2 16:37:10 1992
6 #include <GC_MakePlane.ixx>
7 #include <gce_MakePln.hxx>
10 #include <TColgp_Array1OfPnt.hxx>
11 #include <StdFail_NotDone.hxx>
12 #include <Standard_NotImplemented.hxx>
15 GC_MakePlane::GC_MakePlane(const gp_Ax2& ) //A2)
17 Standard_NotImplemented::Raise("GC_MakePlane");
20 GC_MakePlane::GC_MakePlane(const gp_Pln& Pl)
23 ThePlane = new Geom_Plane(Pl);
26 GC_MakePlane::GC_MakePlane(const gp_Pnt& P,
30 ThePlane = new Geom_Plane(P,V);
33 GC_MakePlane::GC_MakePlane(const Standard_Real A,
34 const Standard_Real B,
35 const Standard_Real C,
36 const Standard_Real D)
38 if (Sqrt(A*A + B*B +C*C) <= gp::Resolution()) {
39 TheError = gce_BadEquation;
43 ThePlane = new Geom_Plane(gp_Pln(A,B,C,D));
47 //=========================================================================
48 // Creation d un Geom_Plane passant par trois points. +
49 //=========================================================================
51 GC_MakePlane::GC_MakePlane(const gp_Pnt& P1 ,
54 gce_MakePln Pl(P1,P2,P3);
55 TheError = Pl.Status();
56 if (TheError == gce_Done) {
57 ThePlane = new Geom_Plane(Pl.Value());
61 //=========================================================================
62 // Creation d un Geom_Plane parallele a un pln a une distance donnee. +
63 //=========================================================================
65 GC_MakePlane::GC_MakePlane(const gp_Pln& Pl ,
66 const Standard_Real Dist ) {
67 gp_Pln Pln = gce_MakePln(Pl,Dist);
69 ThePlane = new Geom_Plane(Pln);
72 //=========================================================================
73 // Creation d un Geom_Plane parallele a un pln passant par un point +
75 //=========================================================================
77 GC_MakePlane::GC_MakePlane(const gp_Pln& Pl ,
78 const gp_Pnt& Point ) {
79 gp_Pln Pln= gce_MakePln(Pl,Point);
81 ThePlane = new Geom_Plane(Pln);
84 //=========================================================================
85 // Creation d un Geom_Plane a partir d un Ax1 (Point + Normale). +
86 //=========================================================================
88 GC_MakePlane::GC_MakePlane(const gp_Ax1& Axis ) {
89 gp_Pln Pln = gce_MakePln(Axis);
91 ThePlane = new Geom_Plane(Pln);
94 //=========================================================================
95 // Creation d un Geom_Plane par un tableau de points. +
96 //=========================================================================
98 /*GC_MakePlane::GC_MakePlane(const TColgp_Array1OfPnt& Pts ,
99 Standard_Real ErrMax ,
100 Standard_Real ErrMean ) {
101 GC_MakePln Pln(Pts,ErrMax,ErrMean);
102 TheError = Pln.Status();
103 if (TheError == GC_Done) {
104 ThePlane = new Geom_Plane(Pln.Value());
109 const Handle(Geom_Plane)& GC_MakePlane::Value() const
111 StdFail_NotDone_Raise_if(!TheError == gce_Done,"");
115 const Handle(Geom_Plane)& GC_MakePlane::Operator() const
120 GC_MakePlane::operator Handle(Geom_Plane) () const