IfcCartesianTransformationOperator3D
Definition from ISO/CD 10303-42:1992: A Cartesian transformation
operator 3d defines a geometric transformation in three-dimensional space
composed of translation, rotation, mirroring and uniform scaling. The list of
normalised vectors u defines the columns of an orthogonal matrix T.
These vectors are computed from the direction attributes axis1, axis2 and axis3
by the base axis function. If |T|= -1, the transformation includes
mirroring.
NOTE: Corresponding STEP
entity : cartesian_transformation_operator_3d, please refer to ISO/IS
10303-42:1994, p. 33 for the final definition of the formal standard.
HISTORY: New entity in IFC
Release 2x.
EXPRESS specification:
|
ENTITY IfcCartesianTransformationOperator3D
|
|
|
U
|
:
|
LIST [3:3] OF IfcDirection := IfcBaseAxis(3,SELF\IfcCartesianTransformationOperator.Axis1,
SELF\IfcCartesianTransformationOperator.Axis2,Axis3);
|
|
|
WR1
|
:
|
SELF\IfcCartesianTransformationOperator.Dim = 3;
|
WR2
|
:
|
NOT(EXISTS(SELF\IfcCartesianTransformationOperator.Axis1)) OR
(SELF\IfcCartesianTransformationOperator.Axis1.Dim = 3);
|
WR3
|
:
|
NOT(EXISTS(SELF\IfcCartesianTransformationOperator.Axis2)) OR
(SELF\IfcCartesianTransformationOperator.Axis2.Dim = 3);
|
WR4
|
:
|
NOT(EXISTS(Axis3)) OR (Axis3.Dim = 3);
|
|
|
|
Attribute definitions:
Axis3
|
:
|
The exact direction of U[3], the derived Z axis direction.
|
U
|
:
|
The list of mutually orthogonal, normalised vectors defining the transformation matrix T. They are derived
from the explicit attributes Axis3, Axis1, and Axis2 in that order.
|
Formal Propositions:
WR1
|
:
|
The coordinate space dimensionality of this entity shall be 3.
|
WR2
|
:
|
The inherited Axis1 should have (if given) the dimensionality of 3.
|
WR3
|
:
|
The inherited Axis2 should have (if given) the dimensionality of 3.
|
WR4
|
:
|
The Axis3 should have (if given) the dimensionality of 3.
|
Inheritance graph
|
ENTITY IfcCartesianTransformationOperator3D;
|
|
|
Scl
|
:
|
REAL := NVL(Scale, 1.0);
|
|
|
U
|
:
|
LIST [3:3] OF IfcDirection := IfcBaseAxis(3,SELF\IfcCartesianTransformationOperator.Axis1,
SELF\IfcCartesianTransformationOperator.Axis2,Axis3);
|
|
|
|