// 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 _gp_XYZ_HeaderFile #define _gp_XYZ_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif #ifndef _Standard_Storable_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _Standard_PrimitiveTypes_HeaderFile #include #endif class Standard_ConstructionError; class Standard_OutOfRange; class gp_Mat; Standard_EXPORT const Handle(Standard_Type)& STANDARD_TYPE(gp_XYZ); //! This class describes a cartesian coordinate entity in
//! 3D space {X,Y,Z}. This entity is used for algebraic
//! calculation. This entity can be transformed
//! with a "Trsf" or a "GTrsf" from package "gp".
//! It is used in vectorial computations or for holding this type
//! of information in data structures.
class gp_XYZ { 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); } //! Creates an XYZ object with zero co-ordinates (0,0,0)
gp_XYZ(); //! creates an XYZ with given coordinates
gp_XYZ(const Standard_Real X,const Standard_Real Y,const Standard_Real Z); //! For this XYZ object, assigns
//! the values X, Y and Z to its three coordinates
void SetCoord(const Standard_Real X,const Standard_Real Y,const Standard_Real Z) ; //! modifies the coordinate of range Index
//! Index = 1 => X is modified
//! Index = 2 => Y is modified
//! Index = 3 => Z is modified
//! Raises OutOfRange if Index != {1, 2, 3}.
void SetCoord(const Standard_Integer Index,const Standard_Real Xi) ; //! Assigns the given value to the X coordinate
void SetX(const Standard_Real X) ; //! Assigns the given value to the Y coordinate
void SetY(const Standard_Real Y) ; //! Assigns the given value to the Z coordinate
void SetZ(const Standard_Real Z) ; //! returns the coordinate of range Index :
//! Index = 1 => X is returned
//! Index = 2 => Y is returned
//! Index = 3 => Z is returned
//!
//! Raises OutOfRange if Index != {1, 2, 3}.
Standard_Real Coord(const Standard_Integer Index) const; void Coord(Standard_Real& X,Standard_Real& Y,Standard_Real& Z) const; //! Returns the X coordinate
Standard_Real X() const; //! Returns the Y coordinate
Standard_Real Y() const; //! Returns the Z coordinate
Standard_Real Z() const; //! computes Sqrt (X*X + Y*Y + Z*Z) where X, Y and Z are the three coordinates of this XYZ object.
Standard_Real Modulus() const; //! Computes X*X + Y*Y + Z*Z where X, Y and Z are the three coordinates of this XYZ object.
Standard_Real SquareModulus() const; //! Returns True if he coordinates of this XYZ object are
//! equal to the respective coordinates Other,
//! within the specified tolerance Tolerance. I.e.:
//! abs(.X() - Other.X()) <= Tolerance and
//! abs(.Y() - Other.Y()) <= Tolerance and
//! abs(.Z() - Other.Z()) <= Tolerance.
Standard_EXPORT Standard_Boolean IsEqual(const gp_XYZ& Other,const Standard_Real Tolerance) const; //! .X() = .X() + Other.X()
//! .Y() = .Y() + Other.Y()
//! .Z() = .Z() + Other.Z()
void Add(const gp_XYZ& Other) ; void operator +=(const gp_XYZ& Other) { Add(Other); } //! new.X() = .X() + Other.X()
//! new.Y() = .Y() + Other.Y()
//! new.Z() = .Z() + Other.Z()
gp_XYZ Added(const gp_XYZ& Other) const; gp_XYZ operator +(const gp_XYZ& Other) const { return Added(Other); } //! .X() = .Y() * Other.Z() - .Z() * Other.Y()
//! .Y() = .Z() * Other.X() - .X() * Other.Z()
//! .Z() = .X() * Other.Y() - .Y() * Other.X()
void Cross(const gp_XYZ& Right) ; void operator ^=(const gp_XYZ& Right) { Cross(Right); } //! new.X() = .Y() * Other.Z() - .Z() * Other.Y()
//! new.Y() = .Z() * Other.X() - .X() * Other.Z()
//! new.Z() = .X() * Other.Y() - .Y() * Other.X()
gp_XYZ Crossed(const gp_XYZ& Right) const; gp_XYZ operator ^(const gp_XYZ& Right) const { return Crossed(Right); } //! Computes the magnitude of the cross product between and
//! Right. Returns || ^ Right ||
Standard_Real CrossMagnitude(const gp_XYZ& Right) const; //! Computes the square magnitude of the cross product between and
//! Right. Returns || ^ Right ||**2
Standard_Real CrossSquareMagnitude(const gp_XYZ& Right) const; //! Triple vector product
//! Computes = .Cross(Coord1.Cross(Coord2))
void CrossCross(const gp_XYZ& Coord1,const gp_XYZ& Coord2) ; //! Triple vector product
//! computes New = .Cross(Coord1.Cross(Coord2))
gp_XYZ CrossCrossed(const gp_XYZ& Coord1,const gp_XYZ& Coord2) const; //! divides by a real.
void Divide(const Standard_Real Scalar) ; void operator /=(const Standard_Real Scalar) { Divide(Scalar); } //! divides by a real.
gp_XYZ Divided(const Standard_Real Scalar) const; gp_XYZ operator /(const Standard_Real Scalar) const { return Divided(Scalar); } //! computes the scalar product between and Other
Standard_Real Dot(const gp_XYZ& Other) const; Standard_Real operator *(const gp_XYZ& Other) const { return Dot(Other); } //! computes the triple scalar product
Standard_Real DotCross(const gp_XYZ& Coord1,const gp_XYZ& Coord2) const; //! .X() = .X() * Scalar;
//! .Y() = .Y() * Scalar;
//! .Z() = .Z() * Scalar;
void Multiply(const Standard_Real Scalar) ; void operator *=(const Standard_Real Scalar) { Multiply(Scalar); } //! .X() = .X() * Other.X();
//! .Y() = .Y() * Other.Y();
//! .Z() = .Z() * Other.Z();
void Multiply(const gp_XYZ& Other) ; void operator *=(const gp_XYZ& Other) { Multiply(Other); } //! = Matrix *
void Multiply(const gp_Mat& Matrix) ; void operator *=(const gp_Mat& Matrix) { Multiply(Matrix); } //! New.X() = .X() * Scalar;
//! New.Y() = .Y() * Scalar;
//! New.Z() = .Z() * Scalar;
gp_XYZ Multiplied(const Standard_Real Scalar) const; gp_XYZ operator *(const Standard_Real Scalar) const { return Multiplied(Scalar); } //! new.X() = .X() * Other.X();
//! new.Y() = .Y() * Other.Y();
//! new.Z() = .Z() * Other.Z();
gp_XYZ Multiplied(const gp_XYZ& Other) const; //! New = Matrix *
gp_XYZ Multiplied(const gp_Mat& Matrix) const; gp_XYZ operator *(const gp_Mat& Matrix) const { return Multiplied(Matrix); } //! .X() = .X()/ .Modulus()
//! .Y() = .Y()/ .Modulus()
//! .Z() = .Z()/ .Modulus()
//! Raised if .Modulus() <= Resolution from gp
void Normalize() ; //! New.X() = .X()/ .Modulus()
//! New.Y() = .Y()/ .Modulus()
//! New.Z() = .Z()/ .Modulus()
//! Raised if .Modulus() <= Resolution from gp
gp_XYZ Normalized() const; //! .X() = -.X()
//! .Y() = -.Y()
//! .Z() = -.Z()
void Reverse() ; //! New.X() = -.X()
//! New.Y() = -.Y()
//! New.Z() = -.Z()
gp_XYZ Reversed() const; //! .X() = .X() - Other.X()
//! .Y() = .Y() - Other.Y()
//! .Z() = .Z() - Other.Z()
void Subtract(const gp_XYZ& Right) ; void operator -=(const gp_XYZ& Right) { Subtract(Right); } //! new.X() = .X() - Other.X()
//! new.Y() = .Y() - Other.Y()
//! new.Z() = .Z() - Other.Z()
gp_XYZ Subtracted(const gp_XYZ& Right) const; gp_XYZ operator -(const gp_XYZ& Right) const { return Subtracted(Right); } //! is set to the following linear form :
//! A1 * XYZ1 + A2 * XYZ2 + A3 * XYZ3 + XYZ4
void SetLinearForm(const Standard_Real A1,const gp_XYZ& XYZ1,const Standard_Real A2,const gp_XYZ& XYZ2,const Standard_Real A3,const gp_XYZ& XYZ3,const gp_XYZ& XYZ4) ; //! is set to the following linear form :
//! A1 * XYZ1 + A2 * XYZ2 + A3 * XYZ3
void SetLinearForm(const Standard_Real A1,const gp_XYZ& XYZ1,const Standard_Real A2,const gp_XYZ& XYZ2,const Standard_Real A3,const gp_XYZ& XYZ3) ; //! is set to the following linear form :
//! A1 * XYZ1 + A2 * XYZ2 + XYZ3
void SetLinearForm(const Standard_Real A1,const gp_XYZ& XYZ1,const Standard_Real A2,const gp_XYZ& XYZ2,const gp_XYZ& XYZ3) ; //! is set to the following linear form :
//! A1 * XYZ1 + A2 * XYZ2
void SetLinearForm(const Standard_Real A1,const gp_XYZ& XYZ1,const Standard_Real A2,const gp_XYZ& XYZ2) ; //! is set to the following linear form :
//! A1 * XYZ1 + XYZ2
void SetLinearForm(const Standard_Real A1,const gp_XYZ& XYZ1,const gp_XYZ& XYZ2) ; //! is set to the following linear form :
//! XYZ1 + XYZ2
void SetLinearForm(const gp_XYZ& XYZ1,const gp_XYZ& XYZ2) ; Standard_Real _CSFDB_Getgp_XYZx() const { return x; } void _CSFDB_Setgp_XYZx(const Standard_Real p) { x = p; } Standard_Real _CSFDB_Getgp_XYZy() const { return y; } void _CSFDB_Setgp_XYZy(const Standard_Real p) { y = p; } Standard_Real _CSFDB_Getgp_XYZz() const { return z; } void _CSFDB_Setgp_XYZz(const Standard_Real p) { z = p; } protected: private: Standard_Real x; Standard_Real y; Standard_Real z; }; #include // other Inline functions and methods (like "C++: function call" methods) #endif