// This file is generated by WOK (CPPExt). // Please do not edit this file; modify original file instead. // The copyright and license terms as defined for the original file apply to // this header file considered to be the "object code" form of the original source. #ifndef _Geom_Plane_HeaderFile #define _Geom_Plane_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_DefineHandle_HeaderFile #include #endif #ifndef _Handle_Geom_Plane_HeaderFile #include #endif #ifndef _Geom_ElementarySurface_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _Handle_Geom_Curve_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _Handle_Geom_Geometry_HeaderFile #include #endif class Standard_ConstructionError; class Standard_RangeError; class gp_Ax3; class gp_Pln; class gp_Pnt; class gp_Dir; class gp_Trsf; class gp_GTrsf2d; class Geom_Curve; class gp_Vec; class Geom_Geometry; //! Describes a plane in 3D space.
//! A plane is positioned in space by a coordinate system
//! (a gp_Ax3 object) such that the plane is defined by
//! the origin, "X Direction" and "Y Direction" of this
//! coordinate system.
//! This coordinate system is the "local coordinate
//! system" of the plane. The following apply:
//! - Its "X Direction" and "Y Direction" are respectively
//! the u and v parametric directions of the plane.
//! - Its origin is the origin of the u and v parameters
//! (also called the "origin" of the plane).
//! - Its "main Direction" is a vector normal to the plane.
//! This normal vector gives the orientation of the
//! plane only if the local coordinate system is "direct".
//! (The orientation of the plane is always defined by
//! the "X Direction" and the "Y Direction" of its local
//! coordinate system.)
//! The parametric equation of the plane is:
//! P(u, v) = O + u*XDir + v*YDir
//! where O, XDir and YDir are respectively the
//! origin, the "X Direction" and the "Y Direction" of the
//! local coordinate system of the plane.
//! The parametric range of the two parameters u and v
//! is ] -infinity, +infinity [.
class Geom_Plane : public Geom_ElementarySurface { public: //! Creates a plane located in 3D space with an axis placement
//! three axis. The "ZDirection" of "A3" is the direction normal
//! to the plane. The "Location" point of "A3" is the origin of
//! the plane. The "XDirection" and "YDirection" of "A3" define
//! the directions of the U isoparametric and V isoparametric
//! curves.
Standard_EXPORT Geom_Plane(const gp_Ax3& A3); //! Creates a plane from a non transient plane from package gp.
Standard_EXPORT Geom_Plane(const gp_Pln& Pl); //! P is the "Location" point or origin of the plane.
//! V is the direction normal to the plane.
Standard_EXPORT Geom_Plane(const gp_Pnt& P,const gp_Dir& V); //! Creates a plane from its cartesian equation :
//! Ax + By + Cz + D = 0.0
//! Raised if Sqrt (A*A + B*B + C*C) <= Resolution from gp
Standard_EXPORT Geom_Plane(const Standard_Real A,const Standard_Real B,const Standard_Real C,const Standard_Real D); //! Set so that has the same geometric properties as Pl.
Standard_EXPORT void SetPln(const gp_Pln& Pl) ; //! Converts this plane into a gp_Pln plane.
Standard_EXPORT gp_Pln Pln() const; //! Changes the orientation of this plane in the u (or v)
//! parametric direction. The bounds of the plane are not
//! changed but the given parametric direction is
//! reversed. Hence the orientation of the surface is reversed.
Standard_EXPORT virtual void UReverse() ; //! Computes the u parameter on the modified
//! plane, produced when reversing the u
//! parametric of this plane, for any point of u parameter U on this plane.
//! In the case of a plane, these methods return - -U.
Standard_EXPORT Standard_Real UReversedParameter(const Standard_Real U) const; //! Changes the orientation of this plane in the u (or v)
//! parametric direction. The bounds of the plane are not
//! changed but the given parametric direction is
//! reversed. Hence the orientation of the surface is reversed.
Standard_EXPORT virtual void VReverse() ; //! Computes the v parameter on the modified
//! plane, produced when reversing the v
//! parametric of this plane, for any point of v parameter V on this plane.
//! In the case of a plane, these methods return -V.
Standard_EXPORT Standard_Real VReversedParameter(const Standard_Real V) const; //! Computes the parameters on the transformed surface for
//! the transform of the point of parameters U,V on .
//! me->Transformed(T)->Value(U',V')
//! is the same point as
//! me->Value(U,V).Transformed(T)
//! Where U',V' are the new values of U,V after calling
//! me->TranformParameters(U,V,T)
//! This methods multiplies U and V by T.ScaleFactor()
Standard_EXPORT virtual void TransformParameters(Standard_Real& U,Standard_Real& V,const gp_Trsf& T) const; //! Returns a 2d transformation used to find the new
//! parameters of a point on the transformed surface.
//! me->Transformed(T)->Value(U',V')
//! is the same point as
//! me->Value(U,V).Transformed(T)
//! Where U',V' are obtained by transforming U,V with
//! th 2d transformation returned by
//! me->ParametricTransformation(T)
//! This methods returns a scale centered on the
//! origin with T.ScaleFactor
Standard_EXPORT virtual gp_GTrsf2d ParametricTransformation(const gp_Trsf& T) const; //! Returns the parametric bounds U1, U2, V1 and V2 of this plane.
//! Because a plane is an infinite surface, the following is always true:
//! - U1 = V1 = Standard_Real::RealFirst()
//! - U2 = V2 = Standard_Real::RealLast().
Standard_EXPORT void Bounds(Standard_Real& U1,Standard_Real& U2,Standard_Real& V1,Standard_Real& V2) const; //! Computes the normalized coefficients of the plane's
//! cartesian equation : Ax + By + Cz + D = 0.0
Standard_EXPORT void Coefficients(Standard_Real& A,Standard_Real& B,Standard_Real& C,Standard_Real& D) const; //! return False
Standard_EXPORT Standard_Boolean IsUClosed() const; //! return False
Standard_EXPORT Standard_Boolean IsVClosed() const; //! return False.
Standard_EXPORT Standard_Boolean IsUPeriodic() const; //! return False.
Standard_EXPORT Standard_Boolean IsVPeriodic() const; //! Computes the U isoparametric curve.
//! This is a Line parallel to the YAxis of the plane.
Standard_EXPORT Handle_Geom_Curve UIso(const Standard_Real U) const; //! Computes the V isoparametric curve.
//! This is a Line parallel to the XAxis of the plane.
Standard_EXPORT Handle_Geom_Curve VIso(const Standard_Real V) const; //! Computes the point P (U, V) on .
//! P = O + U * XDir + V * YDir.
//! where O is the "Location" point of the plane, XDir the
//! "XDirection" and YDir the "YDirection" of the plane's local
//! coordinate system.
Standard_EXPORT void D0(const Standard_Real U,const Standard_Real V,gp_Pnt& P) const; //! Computes the current point and the first derivatives in the
//! directions U and V.
Standard_EXPORT void D1(const Standard_Real U,const Standard_Real V,gp_Pnt& P,gp_Vec& D1U,gp_Vec& D1V) const; //! Computes the current point, the first and the second
//! derivatives in the directions U and V.
Standard_EXPORT void D2(const Standard_Real U,const Standard_Real V,gp_Pnt& P,gp_Vec& D1U,gp_Vec& D1V,gp_Vec& D2U,gp_Vec& D2V,gp_Vec& D2UV) const; //! Computes the current point, the first,the second and the
//! third derivatives in the directions U and V.
Standard_EXPORT void D3(const Standard_Real U,const Standard_Real V,gp_Pnt& P,gp_Vec& D1U,gp_Vec& D1V,gp_Vec& D2U,gp_Vec& D2V,gp_Vec& D2UV,gp_Vec& D3U,gp_Vec& D3V,gp_Vec& D3UUV,gp_Vec& D3UVV) const; //! Computes the derivative of order Nu in the direction u
//! and Nv in the direction v.
//! Raised if Nu + Nv < 1 or Nu < 0 or Nv < 0.
Standard_EXPORT gp_Vec DN(const Standard_Real U,const Standard_Real V,const Standard_Integer Nu,const Standard_Integer Nv) const; //! Applies the transformation T to this plane.
Standard_EXPORT void Transform(const gp_Trsf& T) ; //! Creates a new object which is a copy of this plane.
Standard_EXPORT Handle_Geom_Geometry Copy() const; DEFINE_STANDARD_RTTI(Geom_Plane) protected: private: }; // other Inline functions and methods (like "C++: function call" methods) #endif