+++ /dev/null
-// Copyright (c) 1995-1999 Matra Datavision
-// Copyright (c) 1999-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#include <Standard_ConstructionError.hxx>
-#include <gp_Pnt.hxx>
-#include <gp_Ax1.hxx>
-#include <gp_Ax2.hxx>
-
-inline gp_Circ::gp_Circ () : radius(RealLast())
-{ }
-
-inline gp_Circ::gp_Circ (const gp_Ax2& A2,
- const Standard_Real R) : pos(A2), radius(R)
-{
- Standard_ConstructionError_Raise_if (R < 0.0, "gp_Circ() - radius should be positive number");
-}
-
-inline void gp_Circ::SetAxis (const gp_Ax1& A1)
-{ pos.SetAxis (A1); }
-
-inline void gp_Circ::SetLocation (const gp_Pnt& P)
-{ pos.SetLocation (P); }
-
-inline void gp_Circ::SetPosition (const gp_Ax2& A2)
-{ pos = A2; }
-
-inline void gp_Circ::SetRadius (const Standard_Real R)
-{
- Standard_ConstructionError_Raise_if (R < 0.0, "gp_Circ::SetRadius() - radius should be positive number");
- radius = R;
-}
-
-inline Standard_Real gp_Circ::Area() const
-{ return M_PI * radius * radius; }
-
-inline const gp_Ax1& gp_Circ::Axis () const
-{ return pos.Axis(); }
-
-inline Standard_Real gp_Circ::Length() const
-{ return 2. * M_PI * radius; }
-
-inline const gp_Pnt& gp_Circ::Location () const
-{ return pos.Location(); }
-
-inline const gp_Ax2& gp_Circ::Position() const
-{ return pos; }
-
-inline Standard_Real gp_Circ::Radius() const
-{ return radius; }
-
-inline gp_Ax1 gp_Circ::XAxis () const
-{return gp_Ax1(pos.Location(), pos.XDirection());}
-
-inline gp_Ax1 gp_Circ::YAxis () const
-{return gp_Ax1(pos.Location(), pos.YDirection());}
-
-inline Standard_Real gp_Circ::Distance (const gp_Pnt& P) const
-{ return sqrt(SquareDistance(P)); }
-
-inline Standard_Real gp_Circ::SquareDistance (const gp_Pnt& P) const
-{
- gp_Vec V(Location(),P);
- Standard_Real x = V.Dot(pos.XDirection());
- Standard_Real y = V.Dot(pos.YDirection());
- Standard_Real z = V.Dot(pos.Direction ());
- Standard_Real t = sqrt( x*x + y*y) - radius;
- return (t*t + z*z);
-}
-
-inline Standard_Boolean gp_Circ::Contains
-(const gp_Pnt& P,
- const Standard_Real LinearTolerance) const
-{ return Distance(P) <= LinearTolerance; }
-
-inline void gp_Circ::Rotate (const gp_Ax1& A1,
- const Standard_Real Ang)
-{ pos.Rotate(A1, Ang); }
-
-inline gp_Circ gp_Circ::Rotated (const gp_Ax1& A1,
- const Standard_Real Ang) const
-{
- gp_Circ C = *this;
- C.pos.Rotate(A1, Ang);
- return C;
-}
-
-inline void gp_Circ::Scale (const gp_Pnt& P,
- const Standard_Real S)
-{
- radius *= S;
- if (radius < 0) radius = - radius;
- pos.Scale(P, S);
-}
-
-inline gp_Circ gp_Circ::Scaled (const gp_Pnt& P,
- const Standard_Real S) const
-{
- gp_Circ C = *this;
- C.radius *= S;
- if (C.radius < 0) C.radius = - C.radius;
- C.pos.Scale(P, S);
- return C;
-}
-
-inline void gp_Circ::Transform (const gp_Trsf& T)
-{
- radius *= T.ScaleFactor();
- if (radius < 0) radius = - radius;
- pos.Transform(T);
-}
-
-inline gp_Circ gp_Circ::Transformed (const gp_Trsf& T) const
-{
- gp_Circ C = *this;
- C.radius *= T.ScaleFactor();
- if (C.radius < 0) C.radius = - C.radius;
- C.pos.Transform(T);
- return C;
-}
-
-inline void gp_Circ::Translate (const gp_Vec& V)
-{ pos.Translate(V); }
-
-inline gp_Circ gp_Circ::Translated (const gp_Vec& V) const
-{
- gp_Circ C = *this;
- C.pos.Translate(V);
- return C;
-}
-
-inline void gp_Circ::Translate (const gp_Pnt& P1,
- const gp_Pnt& P2)
-{pos.Translate(P1,P2);}
-
-inline gp_Circ gp_Circ::Translated (const gp_Pnt& P1,
- const gp_Pnt& P2) const
-{
- gp_Circ C = *this;
- C.pos.Translate(P1, P2);
- return C;
-}
-