1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233
|
// 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
#include <Standard.hxx>
#include <Standard_DefineHandle.hxx>
#include <Handle_Geom_Plane.hxx>
#include <Geom_ElementarySurface.hxx>
#include <Standard_Real.hxx>
#include <Standard_Boolean.hxx>
#include <Handle_Geom_Curve.hxx>
#include <Standard_Integer.hxx>
#include <Handle_Geom_Geometry.hxx>
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 <me> so that <me> 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>.
//! 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 <me>.
//! 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:
};
#endif // _Geom_Plane_HeaderFile
|