The Transform3D module

PR 29795 Added new functionality to parametrics to aid in creating mirrors and other copies of materials .... in the Transform3D module added a new function MirrorTransform and operators for scaling a Transform3D by a real number and adding two Transform3D objects. (v7.3)

PR 31422 In parametrics implemented __eq__ and __ne__ for Uuid, Point3D, and Transform3D such that the following holds.
x = Transform3D.Transform3D()
y = Transform3D.Transform3D()
assert x == y
assert not x <> y
(v2015)

To access Transform3D documentation, you can Run the following parametric, or use the built-in Python functions dir() and help() , or you can simply read on. Below the script is output from running the script, printed and formatted for your reference.

# A script that outputs help on Transform3D.
import Transform3D
for a in dir(Transform3D):
    if a[0] != '_':
        print(help(getattr(Transform3D, a)))

Output that is generated when you Run the above parametric:

*** Help on Transform3D Functions ***

GetX(...)

GetX( m ) == m.GetBasisVectorX()

C++ signature:

GetX(Xform) -> Point3D

GetXY(...)

C++ signature:

GetXY(Xform) -> boost::python::tuple

GetXYZ(...)

C++ signature:

GetXYZ(Xform) -> boost::python::tuple

GetXYZT(...)

C++ signature:

GetXYZT(Xform) -> boost::python::tuple

GetXZ(...)

C++ signature:

GetXZ(Xform) -> boost::python::tuple

GetY(...)

GetY( m ) == m.GetBasisVectorY()

C++ signature:

GetY(Xform) -> Point3D

GetYZ(...)

C++ signature:

GetYZ(Xform) -> boost::python::tuple

GetZ(...)

GetZ( m ) == m.GetBasisVectorZ()

C++ signature:

GetZ(Xform) -> Point3D

MaterialIndexTransform(...)

Same as MaterialIndexTransform( int, int ), except with an inch scaling factor

C++ signature:

MaterialIndexTransform(int, int) -> Xform

See Transform3D( int, int )

C++ signature:

MaterialIndexTransform(int, int, double) -> Xform

MemberIndexTransform(...)

Same as MemberIndexTransform( int ), except with an inch scaling factor.

C++ signature:

MemberIndexTransform(int) -> Xform

See Transform3D( int )

C++ signature:

MemberIndexTransform(int, double) -> Xform

MemberTransform(...)

Returns a Transform3D corresponding to a member with the specified x-axis.

C++ signature:

MemberTransform(Point3D) -> Xform

Returns a Transform3D corresponding to a member with the specified rotation about the specified x-axis.

C++ signature:

MemberTransform(Point3D, double) -> Xform

Returns a Transform3D corresponding to a member with the specified left end and rotation about the x-axis.

C++ signature:

MemberTransform(Point3D, double, Point3D) -> Xform

Returns a Transform3D corresponding to a member with the specified left and right ends.

C++ signature:

MemberTransform(Point3D, Point3D) -> Xform

Returns a Transform3D corresponding to a member with the specified left and right ends and rotation.

C++ signature:

MemberTransform(Point3D, Point3D, double) -> Xform


*** Help on class Transform3D in module Transform3D ***

class Transform3D(Boost.Python.instance)

| Method resolution order:

| Transform3D

| Boost.Python.instance

| __builtin__.object

|

| Methods defined here:

| Clean(...)

| Validate the matrix and round numbers and set numbers close to zero to zero and numbers close to one to one.

| C++ signature:

| Clean(Xform {lvalue}) -> int

|

| Determinate(...)

| Return the matrix determinate.

| C++ signature:

| Determinate(Xform {lvalue}) -> double

|

| EpsilonEquals(...)

| Return True iff each element of one matrix is within the specified absolute tolerance of the corresponding element in the other matrix.

| C++ signature:

| EpsilonEquals(Xform {lvalue}, Xform, double) -> bool

|

| GetAxisAngle(...)

| Return a tuple ( axis, angle ) that represents the orientation of an orthogonal transformation matrix as a rotation about axis by angle radians.

| C++ signature:

| GetAxisAngle(Xform) -> boost::python::tuple

|

| GetBasisVectorX(...)

| Returns a copy of the x-axis of the matrix.

| C++ signature:

| GetBasisVectorX(Xform {lvalue}) -> Point3D

|

| GetBasisVectorY(...)

| Returns a copy of the y-axis of the matrix.

| C++ signature:

| GetBasisVectorY(Xform {lvalue}) -> Point3D

|

| GetBasisVectorZ(...)

| Returns a copy of the z-axis of the matrix.

| C++ signature:

| GetBasisVectorZ(Xform {lvalue}) -> Point3D

|

| GetBasisVectors(...)

| Returns a copy of the three orthogonal vectors of the matrix

| C++ signature:

| GetBasisVectors(Xform {lvalue}, Point3D*, Point3D*, Point3D*, Point3D*) -> void*

|

| GetTranslation(...)

| Returns a copy of the translation portion of the matrix.

| C++ signature:

| GetTranslation(Xform {lvalue}) -> Point3D

|

| Inverse(...)

| Returns the inverse of the matrix.

| C++ signature:

| Inverse(Xform {lvalue}) -> Xform

|

| Invert(...)

| Inverts this matrix.

| C++ signature:

| Invert(Xform {lvalue}) -> Xform

|

| Multiply(...)

| Set this matrix to the result of this * the specified matrix.

| C++ signature:

| Multiply(Xform {lvalue}, Xform) -> Xform

|

| MultiplyInverse(...)

| Set this matrix to the result of this * the inverse of this.

| C++ signature:

| MultiplyInverse(Xform {lvalue}, Xform) -> Xform

|

| Rotate(...)

| Set this matrix to the result of the specified rotation matrix * this.

| C++ signature:

| Rotate(Xform {lvalue}, Point3D, double) -> Xform

|

| Set this matrix to the result of the specified rotation matrix * this.

| C++ signature:

| Rotate(Xform {lvalue}, Point3D, Point3D, double) -> Xform

|

| RotatePost(...)

| Set this matrix to the result of this * the specifed rotation matrix.

| C++ signature:

| RotatePost(Xform {lvalue}, Point3D, double) -> Xform

|

| Set this matrix to the result of this * the specifed rotation matrix.

| C++ signature:

| RotatePost(Xform {lvalue}, Point3D, Point3D, double) -> Xform

|

| RotateX(...)

| Set this matrix to the result of the specified rotation matrix * this.

| C++ signature:

| RotateX(Xform {lvalue}, double) -> Xform

|

| RotateXPost(...)

| Set this matrix to the result of this * the specifed rotation matrix.

| C++ signature:

| RotateXPost(Xform {lvalue}, double) -> Xform

|

| RotateY(...)

| Set this matrix to the result of the specified rotation matrix * this.

| C++ signature:

| RotateY(Xform {lvalue}, double) -> Xform

|

| RotateYPost(...)

| Set this matrix to the result of this * the specifed rotation matrix.

| C++ signature:

| RotateYPost(Xform {lvalue}, double) -> Xform

|

| RotateZ(...)

| Set this matrix to the result of the specified rotation matrix * this.

| C++ signature:

| RotateZ(Xform {lvalue}, double) -> Xform

|

| RotateZPost(...)

| Set this matrix to the result of this * the specifed rotation matrix.

| C++ signature:

| RotateZPost(Xform {lvalue}, double) -> Xform

|

| Set(...)

| Set the values of this matrix to the values of specified matrix.

| C++ signature:

| Set(Xform {lvalue}, Xform) -> Xform

|

| SetBasisVectors(...)

| Set the x-axis, y-axis, z-axis, and translation to the specified parameters.

| C++ signature:

| SetBasisVectors(Xform {lvalue}, Point3D, Point3D, Point3D, Point3D) -> Xform

|

| SetIdentity(...)

| Set this matrix to the identity matrix.

| C++ signature:

| SetIdentity(Xform {lvalue}) -> Xform

|

| SetRotation(...)

| Set the rotation components of the matrix to the specified rotation about an arbitrary axis.

| C++ signature:

| SetRotation(Xform {lvalue}, Point3D, double) -> Xform

|

| SetRotationBasisVectors(...)

| Set the x-axis, y-axis, and z-axis according to the nine specified numbers.

| C++ signature:

| SetRotationBasisVectors(Xform {lvalue}, double, double, double, double, double, double, double, double, double) -> Xform

|

| Set the x-axis, y-axis, and z-axis according to the three specified vectors.

| C++ signature:

| SetRotationBasisVectors(Xform {lvalue}, Point3D, Point3D, Point3D) -> Xform

|

| SetRotationX(...)

| Set the rotation components of the matrix to the specified rotation about the x-axis.

| C++ signature:

| SetRotationX(Xform {lvalue}, double) -> Xform

|

| SetRotationXYZ(...)

| Set the roation components of the matrix to the rotation specified by rotating about x, then y, then z.

| C++ signature:

| SetRotationXYZ(Xform {lvalue}, double, double, double) -> Xform

|

| SetRotationY(...)

| Set the rotation components of the matrix to the specified rotation about the y-axis.

| C++ signature:

| SetRotationY(Xform {lvalue}, double) -> Xform

|

| SetRotationY_LH(...)

| Set the rotation components of the matrix to the specified left-handed rotation about the y-axis.

| C++ signature:

| SetRotationY_LH(Xform {lvalue}, double) -> Xform

|

| SetRotationZ(...)

| Set the rotation components of the matrix to the specified rotation about the x-axis.

| C++ signature:

| SetRotationZ(Xform {lvalue}, double) -> Xform

|

| SetTranslation(...)

| Set the translation of this matrix according to the three specified numbers.

| C++ signature:

| SetTranslation(Xform {lvalue}, double, double, double) -> Xform

|

| Set the translation of this matrix according to the specified point.

| C++ signature:

| SetTranslation(Xform {lvalue}, Point3D) -> Xform

|

| TransformPoint(...)

| Returns the specified point transformed by this matrix.

| C++ signature:

| TransformPoint(Xform {lvalue}, Point3D*) -> void*

|

| TransformVector(...)

| Returns the specified vector transformed by this matrix.

| C++ signature:

| TransformVector(Xform {lvalue}, Point3D*) -> void*

|

| Translate(...)

| Set this matrix to the specified translation * this matrix.

| C++ signature:

| Translate(Xform {lvalue}, Point3D) -> Xform

|

| TranslatePost(...)

| Set this matrix to this matrix * the specified translation.

| C++ signature:

| TranslatePost(Xform {lvalue}, Point3D) -> Xform

|

| TranslateToGlobal(...)

| Returns the specified vector transformed by this matrix. In other words, given local coordinates this will return global coordinates.

| C++ signature:

| TranslateToGlobal(Xform, Point3D) -> Point3D

|

| TranslateToLocal(...)

| Returns the specified vector transformed by the inverse of this matrix. In other words, given global coordinates this will return local coordinates.

| C++ signature:

| TranslateToLocal(Xform, Point3D) -> Point3D

|

| __getinitargs__(...)

| C++ signature:

| __getinitargs__(Xform) -> boost::python::tuple

|

| __imul__(...)

| C++ signature:

| __imul__(boost::python::back_reference<Xform&>, Xform) -> _object*

|

| __init__(...)

| C++ signature:

| __init__(_object*) -> void*

| C++ signature:

| __init__(_object*, Xform) -> void*

| C++ signature:

| __init__(_object*, Point3D, Point3D, Point3D) -> void*

| C++ signature:

| __init__(_object*, Point3D, Point3D, Point3D, Point3D) -> void*

| C++ signature:

| __init__(_object*, Point3D) -> void*

| Construct a Transform3D for the given member index.

| C++ signature:

| __init__(boost::python::api::object, int) -> void*

| Construct a Transform3D from the given member index and material index.

| C++ signature:

| __init__(boost::python::api::object, int, int) -> void*

|

| __mul__(...)

| C++ signature:

| __mul__(Xform {lvalue}, Xform) -> _object*

|

| __reduce__ = <unnamed Boost.Python function>(...)

|

| __repr__(...)

| C++ signature:

| __repr__(Xform) -> std::string

|

| __str__(...)

| C++ signature:

| __str__(Xform {lvalue}) -> std::string

|

| ----------------------------------------------------------------------

| Data and other attributes defined here:

| __instance_size__ = 104

|

| __safe_for_unpickling__ = True

|

| ----------------------------------------------------------------------

| Data and other attributes inherited from Boost.Python.instance:

| __dict__ = <dictproxy object>

|

| __new__ = <built-in method __new__ of Boost.Python.class object>

| T.__new__(S, ...) -> a new object with type S, a subtype of T

|

| __weakref__ = <member '__weakref__' of 'Boost.Python.instance' objects...