#include <opennurbs_xform.h>
Public Member Functions | |
ON_Xform () | |
Default constructor transformation has diagonal (0,0,0,1) More... | |
ON_Xform (const ON_Xform &)=default | |
ON_Xform (double x) | |
Constructs transformation with diagonal (x,x,x,1) More... | |
ON_Xform (const double[4][4]) | |
ON_Xform (const float[4][4]) | |
ON_Xform (const double *) | |
ON_Xform (const float *) | |
ON_Xform (const ON_Matrix &) | |
ON_Xform (const ON_3dPoint &P, const ON_3dVector &X, const ON_3dVector &Y, const ON_3dVector &Z) | |
~ON_Xform ()=default | |
void | ActOnLeft (double, double, double, double, double[4]) const |
Computes matrix * transpose([x,y,z,w]). More... | |
void | ActOnRight (double, double, double, double, double[4]) const |
Computes [x,y,z,w] * matrix. More... | |
bool | CameraToClip (bool bIsPerspective, double, double, double, double, double, double) |
void | CameraToWorld (const ON_3dPoint &, const ON_3dVector &, const ON_3dVector &, const ON_3dVector &) |
bool | ChangeBasis (const ON_Plane &plane0, const ON_Plane &plane1) |
bool | ChangeBasis (const ON_3dVector &X0, const ON_3dVector &Y0, const ON_3dVector &Z0, const ON_3dVector &X1, const ON_3dVector &Y1, const ON_3dVector &Z1) |
Get a change of basis transformation. More... | |
bool | ChangeBasis (const ON_3dPoint &P0, const ON_3dVector &X0, const ON_3dVector &Y0, const ON_3dVector &Z0, const ON_3dPoint &P1, const ON_3dVector &X1, const ON_3dVector &Y1, const ON_3dVector &Z1) |
int | ClipFlag3d (const double *) const |
Computes 3d point clipping flags and returns an int with bits set to indicate if the point is outside of the clipping box. More... | |
int | ClipFlag3d (int, int, const double *, bool bTestZ=true) const |
int | ClipFlag3dBox (const double *, const double *) const |
int | ClipFlag4d (const double *) const |
int | ClipFlag4d (int, int, const double *, bool bTestZ=true) const |
bool | ClipToCamera (bool bIsPerspective, double, double, double, double, double, double) |
maps -1 <= x,y,z <= 1 box to viewport frustum More... | |
bool | ClipToScreen (double, double, double, double, double, double) |
int | Compare (const ON_Xform &other) const |
Well ordered dictionary compare that is nan aware. More... | |
double | Determinant (double *=nullptr) const |
void | Diagonal (double d) |
double | GetMappingXforms (ON_Xform &P_xform, ON_Xform &N_xform) const |
If a texture mapping is applied to an object, the object is subsequently transformed by T, and the texture mapping needs to be recalculated, then two transforms are required to recalcalculate the texture mapping. More... | |
double | GetSurfaceNormalXform (ON_Xform &N_xform) const |
When transforming 3d point and surface or mesh normals two different transforms must be used. If P_xform transforms the point, then the inverse transpose of P_xform must be used to tranform normal vectors. More... | |
void | Identity () |
standard transformations More... | |
bool | IntervalChange (int dir, ON_Interval old_interval, ON_Interval new_interval) |
Calculates the transformation that linearly maps old_interval to new_interval. More... | |
ON_Xform | Inverse (double *=nullptr) const |
bool | Invert (double *=nullptr) |
bool | IsAffine () const |
A transformation is affine if it is valid and its last row is 0 0 0 1 An affine transformation can be broken into a linear transformation and a translation. More... | |
bool | IsIdentity (double zero_tolerance=0.0) const |
bool | IsNan () const |
Test the entries of the transformation matrix to see if they are valid number. More... | |
bool | IsNotIdentity (double zero_tolerance=0.0) const |
int | IsSimilarity () const |
A similarity transformation can be broken into a sequence of dialations, translations, rotations, and reflections. More... | |
bool | IsTranslation (double zero_tolerance=0.0) const |
bool | IsValid () const |
Test the entries of the transformation matrix to see if they are valid number. More... | |
bool | IsValidAndNotZeroAndNotIdentity (double zero_tolerance=0.0) const |
bool | IsZero () const |
bool | IsZero4x4 () const |
bool | IsZeroTransformation () const |
void | Mirror (ON_3dPoint point_on_mirror_plane, ON_3dVector normal_to_mirror_plane) |
Create mirror transformation matrix. More... | |
bool | operator!= (const ON_Xform &rhs) const |
ON_2dPoint | operator* (const ON_2dPoint &) const |
ON_3dPoint | operator* (const ON_3dPoint &) const |
ON_4dPoint | operator* (const ON_4dPoint &) const |
ON_2dVector | operator* (const ON_2dVector &) const |
ON_3dVector | operator* (const ON_3dVector &) const |
ON_Xform | operator* (const ON_Xform &) const |
ON_Xform | operator+ (const ON_Xform &) const |
ON_Xform | operator- (const ON_Xform &) const |
ON_Xform & | operator= (const ON_Xform &)=default |
ON_Xform & | operator= (const ON_Matrix &) |
xform = scalar results in a diagonal 3x3 with bottom row = 0,0,0,1 More... | |
bool | operator== (const ON_Xform &rhs) const |
double * | operator[] (int) |
const double * | operator[] (int) const |
void | PlanarProjection (const ON_Plane &plane) |
Get transformation that projects to a plane More... | |
int | Rank (double *=nullptr) const |
void | Rotation (double sin_angle, double cos_angle, ON_3dVector rotation_axis, ON_3dPoint rotation_center) |
The Rotation() function is overloaded and provides several ways to compute a rotation transformation. A positive rotation angle indicates a counter-clockwise (right hand rule) rotation about the axis of rotation. More... | |
void | Rotation (double angle_radians, ON_3dVector rotation_axis, ON_3dPoint rotation_center) |
void | Rotation (ON_3dVector start_dir, ON_3dVector end_dir, ON_3dPoint rotation_center) |
Calculate the minimal transformation that rotates start_dir to end_dir while fixing rotation_center. More... | |
void | Rotation (const ON_3dVector &X0, const ON_3dVector &Y0, const ON_3dVector &Z0, const ON_3dVector &X1, const ON_3dVector &Y1, const ON_3dVector &Z1) |
void | Rotation (const ON_3dPoint &P0, const ON_3dVector &X0, const ON_3dVector &Y0, const ON_3dVector &Z0, const ON_3dPoint &P1, const ON_3dVector &X1, const ON_3dVector &Y1, const ON_3dVector &Z1) |
void | Rotation (const ON_Plane &plane0, const ON_Plane &plane1) |
Create rotation transformation that maps plane0 to plane1. More... | |
void | Scale (double x_scale_factor, double y_scale_factor, double z_scale_factor) |
Create non-uniform scale transformation with the origin as a fixed point. More... | |
void | Scale (const ON_3dVector &scale_vector) |
Create non-uniform scale transformation with the origin as the fixed point. More... | |
void | Scale (ON_3dPoint fixed_point, double scale_factor) |
Create uniform scale transformation with a specified fixed point. More... | |
void | Scale (const ON_Plane &plane, double x_scale_factor, double y_scale_factor, double z_scale_factor) |
Create non-uniform scale transformation with a specified fixed point. More... | |
bool | ScreenToClip (double, double, double, double, double, double) |
void | Shear (const ON_Plane &plane, const ON_3dVector &x1, const ON_3dVector &y1, const ON_3dVector &z1) |
void | Translation (const ON_3dVector &delta) |
void | Translation (double dx, double dy, double dz) |
void | Transpose () |
matrix operations More... | |
void | WorldToCamera (const ON_3dPoint &, const ON_3dVector &, const ON_3dVector &, const ON_3dVector &) |
standard viewing transformations More... | |
Static Public Member Functions | |
static const ON_Xform | DiagonalTransformation (double d) |
static const ON_Xform | DiagonalTransformation (double d0, double d1, double d2) |
static const ON_Xform | DiagonalTransformation (const ON_3dVector &diagnoal) |
static const ON_Xform | ScaleTransformation (const ON_3dPoint &fixed_point, double scale_factor) |
static const ON_Xform | ScaleTransformation (const ON_3dPoint &fixed_point, double x_scale_factor, double y_scale_factor, double z_scale_factor) |
static const ON_Xform | ScaleTransformation (const ON_Plane &plane, double x_scale_factor, double y_scale_factor, double z_scale_factor) |
Create non-uniform scale transformation with a specified fixed point. More... | |
static const ON_Xform | ShearTransformation (const ON_Plane &plane, const ON_3dVector &x1, const ON_3dVector &y1, const ON_3dVector &z1) |
Create shear transformation. More... | |
static const ON_Xform | TranslationTransformation (const ON_2dVector &delta) |
Right column is (delta.x, delta.y, 0, 1). More... | |
static const ON_Xform | TranslationTransformation (const ON_3dVector &delta) |
Right column is (delta.x, delta.y, delta.z, 1). More... | |
static const ON_Xform | TranslationTransformation (double dx, double dy, double dz) |
Right column is (dx, dy, dz, 1). More... | |
Public Attributes | |
double | m_xform [4][4] |
Static Public Attributes | |
static const ON_Xform | IdentityTransformation |
ON_Xform IdentityTransformation diagonal = (1,1,1,1) More... | |
static const ON_Xform | Nan |
ON_Xform::Nan - every coefficient is ON_DBL_QNAN. More... | |
static const ON_Xform | Unset |
ON_Xform::Unset - every coefficient is ON_UNSET_VALUE. More... | |
static const ON_Xform | Zero4x4 |
ON_Xform::Zero4x4 - every coefficient is 0.0. More... | |
static const ON_Xform | ZeroTransformation |
ON_Xform ZeroTransformation diagonal = (0,0,0,1) More... | |
ON_Xform::ON_Xform | ( | ) |
Default constructor transformation has diagonal (0,0,0,1)
|
default |
|
default |
|
explicit |
Constructs transformation with diagonal (x,x,x,1)
|
explicit |
|
explicit |
|
explicit |
|
explicit |
|
explicit |
ON_Xform::ON_Xform | ( | const ON_3dPoint & | P, |
const ON_3dVector & | X, | ||
const ON_3dVector & | Y, | ||
const ON_3dVector & | Z | ||
) |
void ON_Xform::ActOnLeft | ( | double | , |
double | , | ||
double | , | ||
double | , | ||
double | [4] | ||
) | const |
Computes matrix * transpose([x,y,z,w]).
x | [in] |
y | [in] |
z | [in] |
z | [in] |
ans | [out] = matrix * transpose([x,y,z,w]) |
void ON_Xform::ActOnRight | ( | double | , |
double | , | ||
double | , | ||
double | , | ||
double | [4] | ||
) | const |
Computes [x,y,z,w] * matrix.
x | [in] |
y | [in] |
z | [in] |
z | [in] |
ans | [out] = [x,y,z,w] * matrix |
bool ON_Xform::CameraToClip | ( | bool | bIsPerspective, |
double | , | ||
double | , | ||
double | , | ||
double | , | ||
double | , | ||
double | |||
) |
void ON_Xform::CameraToWorld | ( | const ON_3dPoint & | , |
const ON_3dVector & | , | ||
const ON_3dVector & | , | ||
const ON_3dVector & | |||
) |
plane0 | inital plane |
plane1 | final plane |
table true success false vectors for initial frame are not a basis
If you have points defined with respect to planes, the version of ChangeBasis() that takes two planes computes the transformation to change coordinates from one plane to another. The predefined world plane ON_world_plane can be used as an argument.
If P = plane0.Evaluate( a0,b0,c0 ) and
(a1,b1,c1) = ChangeBasis(plane0,plane1)*ON_3dPoint(a0,b0,c0),
then P = plane1.Evaluate( a1, b1, c1 )
The version of ChangeBasis() that takes six vectors maps (a0,b0,c0) to (a1,b1,c1) where a0*X0 + b0*Y0 + c0*Z0 = a1*X1 + b1*Y1 + c1*Z1
The version of ChangeBasis() that takes six vectors with center points maps (a0,b0,c0) to (a1,b1,c1) where P0 + a0*X0 + b0*Y0 + c0*Z0 = P1 + a1*X1 + b1*Y1 + c1*Z1
The change of basis transformation is not the same as the rotation transformation that rotates one orthonormal frame to another. See ON_Xform::Rotation().
bool ON_Xform::ChangeBasis | ( | const ON_3dVector & | X0, |
const ON_3dVector & | Y0, | ||
const ON_3dVector & | Z0, | ||
const ON_3dVector & | X1, | ||
const ON_3dVector & | Y1, | ||
const ON_3dVector & | Z1 | ||
) |
Get a change of basis transformation.
X0 | initial basis X (X0,Y0,Z0 can be any 3d basis) |
Y0 | initial basis Y |
Z0 | initial basis Z |
X1 | final basis X (X1,Y1,Z1 can be any 3d basis) |
Y1 | final basis Y |
Z1 | final basis Z |
Change of basis transformations and rotation transformations are often confused. This is a change of basis transformation. If Q = a0*X0 + b0*Y0 + c0*Z0 = a1*X1 + b1*Y1 + c1*Z1 then this transform will map the point (a0,b0,c0) to (a1,b1,c1)
bool ON_Xform::ChangeBasis | ( | const ON_3dPoint & | P0, |
const ON_3dVector & | X0, | ||
const ON_3dVector & | Y0, | ||
const ON_3dVector & | Z0, | ||
const ON_3dPoint & | P1, | ||
const ON_3dVector & | X1, | ||
const ON_3dVector & | Y1, | ||
const ON_3dVector & | Z1 | ||
) |
P0 | initial center |
X0 | initial basis X (X0,Y0,Z0 can be any 3d basis) |
Y0 | initial basis Y |
Z0 | initial basis Z |
P1 | final center |
X1 | final basis X (X1,Y1,Z1 can be any 3d basis) |
Y1 | final basis Y |
Z1 | final basis Z |
Change of basis transformations and rotation transformations are often confused. This is a change of basis transformation. If Q = P0 + a0*X0 + b0*Y0 + c0*Z0 = P1 + a1*X1 + b1*Y1 + c1*Z1 then this transform will map the point (a0,b0,c0) to (a1,b1,c1)
int ON_Xform::ClipFlag3d | ( | const double * | ) | const |
Computes 3d point clipping flags and returns an int with bits set to indicate if the point is outside of the clipping box.
point | [in] 3d clipping coordinate point |
int ON_Xform::ClipFlag3d | ( | int | , |
int | , | ||
const double * | , | ||
bool | bTestZ = true |
||
) | const |
count | [in] number of 3d points |
stride | [in] (>=3) |
points | [in] 3d clipping coordinate points (array of stride*count doubles) |
bTestZ | [in] (default=true) if false, do not test "z" coordinate |
int ON_Xform::ClipFlag3dBox | ( | const double * | , |
const double * | |||
) | const |
boxmin | [in] 3d boxmin corner |
boxmax | [in] 3d boxmax corner |
int ON_Xform::ClipFlag4d | ( | const double * | ) | const |
point | [in] 4d homogeneous clipping coordinate point |
bit point location 1 x/w < -1 2 x/w > +1 4 y/w < -1 8 y/w > +1 16 z/w < -1 32 z/w > +1
int ON_Xform::ClipFlag4d | ( | int | , |
int | , | ||
const double * | , | ||
bool | bTestZ = true |
||
) | const |
count | [in] number of 4d points |
stride | [in] (>=4) |
points | [in] 4d clipping coordinate points (array of stride*count doubles) |
bTestZ | [in] (default=true) if false, do not test "z" coordinate |
bool ON_Xform::ClipToCamera | ( | bool | bIsPerspective, |
double | , | ||
double | , | ||
double | , | ||
double | , | ||
double | , | ||
double | |||
) |
maps -1 <= x,y,z <= 1 box to viewport frustum
bool ON_Xform::ClipToScreen | ( | double | , |
double | , | ||
double | , | ||
double | , | ||
double | , | ||
double | |||
) |
int ON_Xform::Compare | ( | const ON_Xform & | other | ) | const |
Well ordered dictionary compare that is nan aware.
double ON_Xform::Determinant | ( | double * | = nullptr | ) | const |
void ON_Xform::Diagonal | ( | double | d | ) |
|
static |
|
static |
|
static |
If a texture mapping is applied to an object, the object is subsequently transformed by T, and the texture mapping needs to be recalculated, then two transforms are required to recalcalculate the texture mapping.
P_xform | [out] Transform to apply to points before applying the texture mapping transformation. |
N_xform | [out] Transform to apply to surface normals before applying the texture mapping transformation. |
double ON_Xform::GetSurfaceNormalXform | ( | ON_Xform & | N_xform | ) | const |
When transforming 3d point and surface or mesh normals two different transforms must be used. If P_xform transforms the point, then the inverse transpose of P_xform must be used to tranform normal vectors.
N_xform | [out] |
void ON_Xform::Identity | ( | ) |
standard transformations
diagonal is (1,1,1,1)
bool ON_Xform::IntervalChange | ( | int | dir, |
ON_Interval | old_interval, | ||
ON_Interval | new_interval | ||
) |
Calculates the transformation that linearly maps old_interval to new_interval.
dir | [in] 0 = x, 1 = y, 2= z; |
old_interval | [in] |
new_interval | [in] |
ON_Xform ON_Xform::Inverse | ( | double * | = nullptr | ) | const |
bool ON_Xform::Invert | ( | double * | = nullptr | ) |
bool ON_Xform::IsAffine | ( | ) | const |
A transformation is affine if it is valid and its last row is 0 0 0 1 An affine transformation can be broken into a linear transformation and a translation.
bool ON_Xform::IsIdentity | ( | double | zero_tolerance = 0.0 | ) | const |
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
An element of the matrix is "zero" if fabs(x) <= zero_tolerance. An element of the matrix is "one" if fabs(1.0-x) <= zero_tolerance. If the matrix contains a nan, false is returned.
bool ON_Xform::IsNan | ( | ) | const |
Test the entries of the transformation matrix to see if they are valid number.
bool ON_Xform::IsNotIdentity | ( | double | zero_tolerance = 0.0 | ) | const |
An element of the matrix is "zero" if fabs(x) <= zero_tolerance. An element of the matrix is "one" if fabs(1.0-x) <= zero_tolerance. If the matrix contains a nan, false is returned.
int ON_Xform::IsSimilarity | ( | ) | const |
A similarity transformation can be broken into a sequence of dialations, translations, rotations, and reflections.
bool ON_Xform::IsTranslation | ( | double | zero_tolerance = 0.0 | ) | const |
1 0 0 dx 0 1 0 dy 0 0 1 dz 0 0 0 1
The test for zero is fabs(x) <= zero_tolerance. The test for one is fabs(x-1) <= zero_tolerance.
bool ON_Xform::IsValid | ( | ) | const |
Test the entries of the transformation matrix to see if they are valid number.
bool ON_Xform::IsValidAndNotZeroAndNotIdentity | ( | double | zero_tolerance = 0.0 | ) | const |
bool ON_Xform::IsZero | ( | ) | const |
bool ON_Xform::IsZero4x4 | ( | ) | const |
bool ON_Xform::IsZeroTransformation | ( | ) | const |
void ON_Xform::Mirror | ( | ON_3dPoint | point_on_mirror_plane, |
ON_3dVector | normal_to_mirror_plane | ||
) |
Create mirror transformation matrix.
point_on_mirror_plane | [in] point on mirror plane |
normal_to_mirror_plane | [in] normal to mirror plane |
The mirror transform maps a point Q to Q - (2*(Q-P)oN)*N, where P = point_on_mirror_plane and N = normal_to_mirror_plane.
bool ON_Xform::operator!= | ( | const ON_Xform & | rhs | ) | const |
ON_2dPoint ON_Xform::operator* | ( | const ON_2dPoint & | ) | const |
ON_3dPoint ON_Xform::operator* | ( | const ON_3dPoint & | ) | const |
ON_4dPoint ON_Xform::operator* | ( | const ON_4dPoint & | ) | const |
ON_2dVector ON_Xform::operator* | ( | const ON_2dVector & | ) | const |
ON_3dVector ON_Xform::operator* | ( | const ON_3dVector & | ) | const |
xform = scalar results in a diagonal 3x3 with bottom row = 0,0,0,1
bool ON_Xform::operator== | ( | const ON_Xform & | rhs | ) | const |
double* ON_Xform::operator[] | ( | int | ) |
const double* ON_Xform::operator[] | ( | int | ) | const |
void ON_Xform::PlanarProjection | ( | const ON_Plane & | plane | ) |
Get transformation that projects to a plane
plane | [in] plane to project to |
This transformaton maps a 3d point P to the point plane.ClosestPointTo(Q).
int ON_Xform::Rank | ( | double * | = nullptr | ) | const |
void ON_Xform::Rotation | ( | double | sin_angle, |
double | cos_angle, | ||
ON_3dVector | rotation_axis, | ||
ON_3dPoint | rotation_center | ||
) |
The Rotation() function is overloaded and provides several ways to compute a rotation transformation. A positive rotation angle indicates a counter-clockwise (right hand rule) rotation about the axis of rotation.
sin_angle | sin(rotation angle) |
cos_angle | cos(rotation angle) |
rotation_axis | 3d unit axis of rotation |
rotation_center | 3d center of rotation |
In the overloads that take frames, the frames should be right hand orthonormal frames (unit vectors with Z = X x Y). The resulting rotation fixes the origin (0,0,0), maps initial X to final X, initial Y to final Y, and initial Z to final Z.
In the overload that takes frames with center points, if the initial and final center are equal, then that center point is the fixed point of the rotation. If the initial and final point differ, then the resulting transform is the composition of a rotation fixing P0 and translation from P0 to P1. The resulting transformation maps P0 to P1, P0+X0 to P1+X1, ...
The rotation transformations that map frames to frames are not the same as the change of basis transformations for those frames. See ON_Xform::ChangeBasis().
void ON_Xform::Rotation | ( | double | angle_radians, |
ON_3dVector | rotation_axis, | ||
ON_3dPoint | rotation_center | ||
) |
angle | rotation angle in radians |
rotation_axis | 3d unit axis of rotation |
rotation_center | 3d center of rotation |
void ON_Xform::Rotation | ( | ON_3dVector | start_dir, |
ON_3dVector | end_dir, | ||
ON_3dPoint | rotation_center | ||
) |
Calculate the minimal transformation that rotates start_dir to end_dir while fixing rotation_center.
void ON_Xform::Rotation | ( | const ON_3dVector & | X0, |
const ON_3dVector & | Y0, | ||
const ON_3dVector & | Z0, | ||
const ON_3dVector & | X1, | ||
const ON_3dVector & | Y1, | ||
const ON_3dVector & | Z1 | ||
) |
X0 | initial frame X |
Y0 | initial frame Y |
Z0 | initial frame Z |
X1 | final frame X |
Y1 | final frame Y |
Z1 | final frame Z |
void ON_Xform::Rotation | ( | const ON_3dPoint & | P0, |
const ON_3dVector & | X0, | ||
const ON_3dVector & | Y0, | ||
const ON_3dVector & | Z0, | ||
const ON_3dPoint & | P1, | ||
const ON_3dVector & | X1, | ||
const ON_3dVector & | Y1, | ||
const ON_3dVector & | Z1 | ||
) |
P0 | initial frame center |
X0 | initial frame X |
Y0 | initial frame Y |
Z0 | initial frame Z |
P1 | initial frame center |
X1 | final frame X |
Y1 | final frame Y |
Z1 | final frame Z |
Create rotation transformation that maps plane0 to plane1.
plane0 | [in] |
plane1 | [in] |
void ON_Xform::Scale | ( | double | x_scale_factor, |
double | y_scale_factor, | ||
double | z_scale_factor | ||
) |
Create non-uniform scale transformation with the origin as a fixed point.
fixed_point | [in] |
x_scale_factor | [in] |
y_scale_factor | [in] |
z_scale_factor | [in] |
The diagonal is (x_scale_factor, y_scale_factor, z_scale_factor, 1)
void ON_Xform::Scale | ( | const ON_3dVector & | scale_vector | ) |
Create non-uniform scale transformation with the origin as the fixed point.
fixed_point | [in] |
scale_vector | [in] |
The diagonal is (scale_vector.x, scale_vector.y, scale_vector.z, 1)
void ON_Xform::Scale | ( | ON_3dPoint | fixed_point, |
double | scale_factor | ||
) |
Create uniform scale transformation with a specified fixed point.
fixed_point | [in] |
scale_factor | [in] |
void ON_Xform::Scale | ( | const ON_Plane & | plane, |
double | x_scale_factor, | ||
double | y_scale_factor, | ||
double | z_scale_factor | ||
) |
Create non-uniform scale transformation with a specified fixed point.
plane | [in] plane.origin is the fixed point |
x_scale_factor | [in] plane.xaxis scale factor |
y_scale_factor | [in] plane.yaxis scale factor |
z_scale_factor | [in] plane.zaxis scale factor |
|
static |
|
static |
|
static |
Create non-uniform scale transformation with a specified fixed point.
plane | [in] plane.origin is the fixed point |
x_scale_factor | [in] plane.xaxis scale factor |
y_scale_factor | [in] plane.yaxis scale factor |
z_scale_factor | [in] plane.zaxis scale factor |
bool ON_Xform::ScreenToClip | ( | double | , |
double | , | ||
double | , | ||
double | , | ||
double | , | ||
double | |||
) |
void ON_Xform::Shear | ( | const ON_Plane & | plane, |
const ON_3dVector & | x1, | ||
const ON_3dVector & | y1, | ||
const ON_3dVector & | z1 | ||
) |
|
static |
Create shear transformation.
plane | [in] plane.origin is the fixed point |
x1 | [in] plane.xaxis scale factor |
y1 | [in] plane.yaxis scale factor |
z1 | [in] plane.zaxis scale factor |
void ON_Xform::Translation | ( | const ON_3dVector & | delta | ) |
void ON_Xform::Translation | ( | double | dx, |
double | dy, | ||
double | dz | ||
) |
|
static |
Right column is (delta.x, delta.y, 0, 1).
|
static |
Right column is (delta.x, delta.y, delta.z, 1).
|
static |
Right column is (dx, dy, dz, 1).
void ON_Xform::Transpose | ( | ) |
matrix operations
void ON_Xform::WorldToCamera | ( | const ON_3dPoint & | , |
const ON_3dVector & | , | ||
const ON_3dVector & | , | ||
const ON_3dVector & | |||
) |
standard viewing transformations
|
static |
ON_Xform IdentityTransformation diagonal = (1,1,1,1)
double ON_Xform::m_xform[4][4] |
|
static |
ON_Xform::Nan - every coefficient is ON_DBL_QNAN.
|
static |
ON_Xform::Unset - every coefficient is ON_UNSET_VALUE.
|
static |
ON_Xform::Zero4x4 - every coefficient is 0.0.