// 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. // Modif jcv 08/01/1991 // JCV, LPA 07/92 #include inline gp_Ax2d::gp_Ax2d() : loc(0.,0.) //vdir(1.,0.) use default ctor of gp_Dir2d, as it creates the same dir (1,0) { } inline gp_Ax2d::gp_Ax2d (const gp_Pnt2d& P, const gp_Dir2d& V) : loc(P), vdir(V) { } inline void gp_Ax2d::SetLocation(const gp_Pnt2d& P) { loc = P; } inline void gp_Ax2d::SetDirection(const gp_Dir2d& V) { vdir = V; } inline const gp_Pnt2d& gp_Ax2d::Location () const { return loc; } inline const gp_Dir2d& gp_Ax2d::Direction () const { return vdir; } inline Standard_Boolean gp_Ax2d::IsNormal (const gp_Ax2d& Other, const Standard_Real AngularTolerance) const { return vdir.IsNormal(Other.vdir, AngularTolerance); } inline Standard_Boolean gp_Ax2d::IsOpposite (const gp_Ax2d& Other, const Standard_Real AngularTolerance) const { return vdir.IsOpposite (Other.vdir, AngularTolerance); } inline Standard_Boolean gp_Ax2d::IsParallel (const gp_Ax2d& Other, const Standard_Real AngularTolerance) const { return vdir.IsParallel(Other.vdir, AngularTolerance); } inline Standard_Real gp_Ax2d::Angle (const gp_Ax2d& Other) const { return vdir.Angle (Other.vdir); } inline void gp_Ax2d::Reverse() { vdir.Reverse(); } inline gp_Ax2d gp_Ax2d::Reversed() const { gp_Ax2d Temp = *this; Temp.Reverse (); return Temp; } inline void gp_Ax2d::Rotate (const gp_Pnt2d& P, const Standard_Real Ang) { loc.Rotate (P, Ang); vdir.Rotate (Ang); } inline gp_Ax2d gp_Ax2d::Rotated (const gp_Pnt2d& P, const Standard_Real Ang) const { gp_Ax2d A = *this; A.Rotate (P, Ang); return A; } inline gp_Ax2d gp_Ax2d::Scaled (const gp_Pnt2d& P, const Standard_Real S) const { gp_Ax2d A = *this; A.Scale (P, S); return A; } inline void gp_Ax2d::Transform (const gp_Trsf2d& T) { loc.Transform (T); vdir.Transform (T); } inline gp_Ax2d gp_Ax2d::Transformed (const gp_Trsf2d& T) const { gp_Ax2d A = *this; A.Transform (T); return A; } inline void gp_Ax2d::Translate (const gp_Vec2d& V) { loc.Translate (V); } inline gp_Ax2d gp_Ax2d::Translated (const gp_Vec2d& V) const { gp_Ax2d A = *this; (A.loc).Translate (V); return A; } inline void gp_Ax2d::Translate (const gp_Pnt2d& P1, const gp_Pnt2d& P2) { loc.Translate (P1,P2); } inline gp_Ax2d gp_Ax2d::Translated (const gp_Pnt2d& P1, const gp_Pnt2d& P2) const { gp_Ax2d A = *this; (A.loc).Translate( gp_Vec2d (P1, P2)); return A; }