Class Ifc4::IfcCartesianTransformationOperator¶
Defined in File Ifc4.h
Nested Relationships¶
This class is a nested type of Struct Ifc4.
Inheritance Relationships¶
Base Type¶
public Ifc4::IfcGeometricRepresentationItem
(Class Ifc4::IfcGeometricRepresentationItem)
Derived Types¶
public Ifc4::IfcCartesianTransformationOperator2D
(Class Ifc4::IfcCartesianTransformationOperator2D)public Ifc4::IfcCartesianTransformationOperator3D
(Class Ifc4::IfcCartesianTransformationOperator3D)
Class Documentation¶
-
class
Ifc4
::
IfcCartesianTransformationOperator
: public Ifc4::IfcGeometricRepresentationItem¶ Definition from ISO/CD 10303-42:1992: A Cartesian transformation operator defines a geometric transformation composed of translation, rotation, mirroring and uniform scaling. The list of normalized vectors u defines the columns of an orthogonal matrix T. These vectors are computed, by the base axis function, from the direction attributes axis1, axis2 and, in Cartesian transformation operator 3d, axis3. If |T|= -1, the transformation includes mirroring. The local origin point A, the scale value S and the matrix T together define a transformation.
The transformation for a point with position vector P is defined by
P -> A + STP
The transformation for a direction d is defined by
d -> Td
The transformation for a vector with orientation d and magnitude k is defined by
d -> Td, and
k -> Sk
For those entities whose attributes include an axis2 placement, the transformation is applied, after the derivation, to the derived attributes p defining the placement coordinate directions. For a transformed surface, the direction of the surface normal at any point is obtained by transforming the normal, at the corresponding point, to the original surface. For geometric entities with attributes (such as the radius of a circle) which have the dimensionality of length, the values will be multiplied by S.
For curves on surface the p curve.reference to curve will be unaffected by any transformation. The Cartesian transformation operator shall only be applied to geometry defined in a consistent system of units with the same units on each axis. With all optional attributes omitted, the transformation defaults to the identity transformation. The Cartesian transformation operator shall only be instantiated as one of its subtypes.
NOTE: Corresponding ISO 10303 entity: cartesian_transformation_operator, please refer to ISO/IS 10303-42:1994, p. 32 for the final definition of the formal standard.
HISTORY: New entity in IFC Release 2x.
Subclassed by Ifc4::IfcCartesianTransformationOperator2D, Ifc4::IfcCartesianTransformationOperator3D
Public Types
-
typedef IfcTemplatedEntityList<IfcCartesianTransformationOperator>
list
¶
Public Functions
-
bool
hasAxis1
() const¶ Whether the optional attribute Axis1 is defined for this IfcCartesianTransformationOperator.
-
::Ifc4::IfcDirection *
Axis1
() const¶ The direction used to determine U[1], the derived X axis direction.
-
void
setAxis1
(::Ifc4::IfcDirection *v)¶
-
bool
hasAxis2
() const¶ Whether the optional attribute Axis2 is defined for this IfcCartesianTransformationOperator.
-
::Ifc4::IfcDirection *
Axis2
() const¶ The direction used to determine U[2], the derived Y axis direction.
-
void
setAxis2
(::Ifc4::IfcDirection *v)¶
-
::Ifc4::IfcCartesianPoint *
LocalOrigin
() const¶ The required translation, specified as a cartesian point. The actual translation included in the transformation is from the geometric origin to the local origin.
-
void
setLocalOrigin
(::Ifc4::IfcCartesianPoint *v)¶
-
bool
hasScale
() const¶ Whether the optional attribute Scale is defined for this IfcCartesianTransformationOperator.
-
double
Scale
() const¶ The scaling value specified for the transformation.
-
void
setScale
(double v)¶
-
IfcCartesianTransformationOperator
(IfcEntityInstanceData *e)¶
-
IfcCartesianTransformationOperator
(::Ifc4::IfcDirection *v1_Axis1, ::Ifc4::IfcDirection *v2_Axis2, ::Ifc4::IfcCartesianPoint *v3_LocalOrigin, boost::optional<double> v4_Scale)¶
-
typedef IfcTemplatedEntityList<IfcCartesianTransformationOperator>