1 // Created on: 1993-03-10 2 // Created by: JCV 3 // Copyright (c) 1993-1999 Matra Datavision 4 // Copyright (c) 1999-2014 OPEN CASCADE SAS 5 // 6 // This file is part of Open CASCADE Technology software library. 7 // 8 // This library is free software; you can redistribute it and/or modify it under 9 // the terms of the GNU Lesser General Public License version 2.1 as published 10 // by the Free Software Foundation, with special exception defined in the file 11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT 12 // distribution for complete text of the license and disclaimer of any warranty. 13 // 14 // Alternatively, this file may be used under the terms of Open CASCADE 15 // commercial license or contractual agreement. 16 17 #ifndef _Geom_Point_HeaderFile 18 #define _Geom_Point_HeaderFile 19 20 #include <Standard.hxx> 21 #include <Standard_Type.hxx> 22 23 #include <Geom_Geometry.hxx> 24 #include <Standard_Real.hxx> 25 class gp_Pnt; 26 27 28 class Geom_Point; 29 DEFINE_STANDARD_HANDLE(Geom_Point, Geom_Geometry) 30 31 //! The abstract class Point describes the common 32 //! behavior of geometric points in 3D space. 33 //! The Geom package also provides the concrete class 34 //! Geom_CartesianPoint. 35 class Geom_Point : public Geom_Geometry 36 { 37 38 public: 39 40 41 //! returns the Coordinates of <me>. 42 Standard_EXPORT virtual void Coord (Standard_Real& X, Standard_Real& Y, Standard_Real& Z) const = 0; 43 44 //! returns a non transient copy of <me> 45 Standard_EXPORT virtual gp_Pnt Pnt() const = 0; 46 47 //! returns the X coordinate of <me>. 48 Standard_EXPORT virtual Standard_Real X() const = 0; 49 50 //! returns the Y coordinate of <me>. 51 Standard_EXPORT virtual Standard_Real Y() const = 0; 52 53 //! returns the Z coordinate of <me>. 54 Standard_EXPORT virtual Standard_Real Z() const = 0; 55 56 //! Computes the distance between <me> and <Other>. 57 Standard_EXPORT Standard_Real Distance (const Handle(Geom_Point)& Other) const; 58 59 //! Computes the square distance between <me> and <Other>. 60 Standard_EXPORT Standard_Real SquareDistance (const Handle(Geom_Point)& Other) const; 61 62 63 64 65 DEFINE_STANDARD_RTTIEXT(Geom_Point,Geom_Geometry) 66 67 protected: 68 69 70 71 72 private: 73 74 75 76 77 }; 78 79 80 81 82 83 84 85 #endif // _Geom_Point_HeaderFile 86