// 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 _gce_MakeHypr_HeaderFile #define _gce_MakeHypr_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _gp_Hypr_HeaderFile #include #endif #ifndef _gce_Root_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif class StdFail_NotDone; class gp_Ax2; class gp_Pnt; class gp_Hypr; //!This class implements the following algorithms used to
//! create Hyperbola from gp.
//! * Create an Hyperbola from its center, and two points:
//! one on its axis of symmetry giving the major radius, the
//! other giving the value of the small radius.
//! The three points give the plane of the hyperbola.
//! * Create an hyperbola from its axisplacement and its
//! MajorRadius and its MinorRadius.
//!
//!
//! ^YAxis
//! |
//! FirstConjugateBranch
//! |
//! Other | Main
//! --------------------- C ------------------------------>XAxis
//! Branch | Branch
//! |
//! |
//! SecondConjugateBranch
//! |
class gce_MakeHypr : public gce_Root { public: void* operator new(size_t,void* anAddress) { return anAddress; } void* operator new(size_t size) { return Standard::Allocate(size); } void operator delete(void *anAddress) { if (anAddress) Standard::Free((Standard_Address&)anAddress); } //! A2 is the local coordinate system of the hyperbola.
//! In the local coordinates system A2 the equation of the
//! hyperbola is :
//! X*X / MajorRadius*MajorRadius - Y*Y / MinorRadius*MinorRadius = 1.0
//! It is not forbidden to create an Hyperbola with MajorRadius =
//! MinorRadius.
//! For the hyperbola the MajorRadius can be lower than the
//! MinorRadius.
//! The status is "NegativeRadius" if MajorRadius < 0.0 and
//! "InvertRadius" if MinorRadius > MajorRadius.
Standard_EXPORT gce_MakeHypr(const gp_Ax2& A2,const Standard_Real MajorRadius,const Standard_Real MinorRadius); //! Constructs a hyperbola
//! - centered on the point Center, where:
//! - the plane of the hyperbola is defined by Center, S1 and S2,
//! - its major axis is defined by Center and S1,
//! - its major radius is the distance between Center and S1, and
//! - its minor radius is the distance between S2 and the major axis.
//! Warning
//! If an error occurs (that is, when IsDone returns
//! false), the Status function returns:
//! - gce_NegativeRadius if MajorRadius is less than 0.0;
//! - gce_InvertRadius if:
//! - the major radius (computed with Center, S1) is
//! less than the minor radius (computed with Center, S1 and S2), or
//! - MajorRadius is less than MinorRadius; or
//! - gce_ColinearPoints if S1, S2 and Center are collinear.
Standard_EXPORT gce_MakeHypr(const gp_Pnt& S1,const gp_Pnt& S2,const gp_Pnt& Center); //! Returns the constructed hyperbola.
//! Exceptions StdFail_NotDone if no hyperbola is constructed.
Standard_EXPORT const gp_Hypr& Value() const; Standard_EXPORT const gp_Hypr& Operator() const; Standard_EXPORT operator gp_Hypr() const; protected: private: gp_Hypr TheHypr; }; // other Inline functions and methods (like "C++: function call" methods) #endif