SUAPI-CppWrapper
C++WrapperforSketchUpCAPI
Public Member Functions | Static Public Member Functions | Friends
CW::Transformation Class Reference

Public Member Functions

 Transformation ()
 
 Transformation (SUTransformation transformation)
 
 Transformation (const Axes &axes, const Vector3D &translation, double scalar=1.0)
 
 Transformation (const Point3D &origin, const Vector3D &x_axis, const Vector3D &y_axis, const Vector3D &z_axis, double scalar=1.0)
 
 Transformation (double scalar)
 
 Transformation (double x_scale, double y_scale, double z_scale)
 
 Transformation (const Vector3D &translation)
 
 Transformation (const Point3D &translation, double scalar)
 
 Transformation (const Point3D &translation, const Vector3D &normal)
 
 Transformation (const Point3D &point, const Vector3D &vector, double angle)
 
 Transformation (const Transformation &transform1, const Transformation &transform2, double weight)
 
double operator[] (size_t i) const
 
double & operator[] (size_t i)
 
SUTransformation ref () const
 
 operator SUTransformation () const
 
 operator const SUTransformation * () const
 
bool is_identity () const
 
Transformation inverse () const
 
Vector3D x_axis () const
 
Vector3D y_axis () const
 
Vector3D z_axis () const
 
double z_rotation () const
 
Transformationnormalize ()
 
Point3D origin () const
 
Vector3D translation () const
 
Transformation operator* (Transformation transform)
 
bool equal (const Transformation transform, const double epsilon=EPSILON) const
 
bool operator== (const Transformation transform) const
 

Static Public Member Functions

static Transformation transformation_rotate_about_line (const double angle, const Line3D line)
 

Friends

Vector3D operator* (const Transformation &lhs, const Vector3D &rhs)
 
Vector3D operator* (const Vector3D &lhs, const Transformation &rhs)
 
Point3D operator* (const Transformation &lhs, const Point3D &rhs)
 
Point3D operator* (const Point3D &lhs, const Transformation &rhs)
 
Plane3D operator* (const Plane3D &lhs, const Transformation &rhs)
 
Plane3D operator* (const Transformation &lhs, const Plane3D &rhs)
 
Face operator* (const Face &lhs, const Transformation &rhs)
 

Detailed Description

Definition at line 43 of file Transformation.hpp.

Constructor & Destructor Documentation

CW::Transformation::Transformation ( )

Construct a Transformation with a simple scale of 1 (no change).

Since
SketchUp 2018, API v6.0

Definition at line 49 of file Transformation.cpp.

CW::Transformation::Transformation ( SUTransformation  transformation)

Construct a Transformation from native SUTransformation object.

Definition at line 54 of file Transformation.cpp.

CW::Transformation::Transformation ( const Axes axes,
const Vector3D translation,
double  scalar = 1.0 
)

Construct a Transformation by setting axes and translation.

Since
SketchUp 2018, API v6.0

Definition at line 58 of file Transformation.cpp.

CW::Transformation::Transformation ( const Point3D origin,
const Vector3D x_axis,
const Vector3D y_axis,
const Vector3D z_axis,
double  scalar = 1.0 
)

Construct a Transformation by setting axes and translation.

Since
SketchUp 2018, API v6.0

Definition at line 62 of file Transformation.cpp.

CW::Transformation::Transformation ( double  scalar)
explicit

Construct a scale Transformation.

Since
SketchUp 2018, API v6.0

Definition at line 73 of file Transformation.cpp.

CW::Transformation::Transformation ( double  x_scale,
double  y_scale,
double  z_scale 
)

Construct a non-uniform scale Transformation.

Since
SketchUp 2018, API v6.0

Definition at line 81 of file Transformation.cpp.

CW::Transformation::Transformation ( const Vector3D translation)
explicit

Construct a translation Transformation.

Since
SketchUp 2018, API v6.0

Definition at line 89 of file Transformation.cpp.

CW::Transformation::Transformation ( const Point3D translation,
double  scalar 
)

Construct a Transformation from a point representing the translation, and a scale.

Since
SketchUp 2018, API v6.0

Definition at line 97 of file Transformation.cpp.

CW::Transformation::Transformation ( const Point3D translation,
const Vector3D normal 
)

Construct a Transformation from a point representing the origin (translation), and vector representing the Z-Axis. The other two axes in the transformed space are computed using the "Arbitrary axis algorithm".

Since
SketchUp 2017, API v5.0

Definition at line 105 of file Transformation.cpp.

CW::Transformation::Transformation ( const Point3D point,
const Vector3D vector,
double  angle 
)

Construct a Transformation given an origin, vector of rotation, and angle.

Since
SketchUp 2018, API v6.0
Parameters
point- The point specifying the translation component of the transformation.
vector- The vector about which rotation will occur.
angle- The rotation in radians for the transformation.

Definition at line 113 of file Transformation.cpp.

CW::Transformation::Transformation ( const Transformation transform1,
const Transformation transform2,
double  weight 
)

Construct a Transformation object from an interpolation between two transformations. The weight determines the amount of interpolation. A weight of 0.0 would return a transformation of t1, while a weight of 1.0 would return a transformation of t2.

Since
SketchUp 2018, API v6.0
Parameters
transform1- The first transformation object.
transform2- The second transformation object.
weight- The weight determines the amount of interpolation from t1 to t2.

Definition at line 121 of file Transformation.cpp.

Member Function Documentation

bool CW::Transformation::equal ( const Transformation  transform,
const double  epsilon = EPSILON 
) const

Compare equality of tranformation objects.

Definition at line 369 of file Transformation.cpp.

Transformation CW::Transformation::inverse ( ) const

Return the inverse Transformation object (see inverse Transformation matrices)

Since
SketchUp 2018, API v6.0

Definition at line 199 of file Transformation.cpp.

bool CW::Transformation::is_identity ( ) const

Returns true if this Transformation is identity (no change).

Definition at line 191 of file Transformation.cpp.

Transformation & CW::Transformation::normalize ( )

Normalise the transformation, so that the bottom row of the 4x4 matrix reads (0,0,0,1)

Definition at line 239 of file Transformation.cpp.

Transformation CW::Transformation::operator* ( Transformation  transform)

Mulitplication of Transformation matrices.

Since
SketchUp 2018, API v6.0

Definition at line 269 of file Transformation.cpp.

Point3D CW::Transformation::origin ( ) const

Retrieves the origin of a rigid transformation.

Since
SketchUp 2018, API v6.0

Definition at line 253 of file Transformation.cpp.

Transformation CW::Transformation::transformation_rotate_about_line ( const double  angle,
const Line3D  line 
)
static

Returns a Transformation object that represents rotation of the given angle in radians about a line. The rotation direction follows the right hand rule along the direction vector of the line.

Publc Static Methods

Definition at line 391 of file Transformation.cpp.

Vector3D CW::Transformation::translation ( ) const

Retrieves the translation part of the transformation

Definition at line 261 of file Transformation.cpp.

Vector3D CW::Transformation::x_axis ( ) const

Returns the X-axis of the rigid transformation.

Since
SketchUp 2018, API v6.0

Definition at line 207 of file Transformation.cpp.

Vector3D CW::Transformation::y_axis ( ) const

Returns the Y-axis of the rigid transformation.

Since
SketchUp 2018, API v6.0

Definition at line 215 of file Transformation.cpp.

Vector3D CW::Transformation::z_axis ( ) const

Returns the Z-axis of the rigid transformation.

Since
SketchUp 2018, API v6.0

Definition at line 223 of file Transformation.cpp.

double CW::Transformation::z_rotation ( ) const

Returns the rotation about the Z-axis in radians.

Since
SketchUp 2018, API v6.0

Definition at line 231 of file Transformation.cpp.

Friends And Related Function Documentation

Vector3D operator* ( const Transformation lhs,
const Vector3D rhs 
)
friend

Return transformed vectors.

Since
SketchUp 2018, API v6.0

Friend Functions of class Transformation

Definition at line 280 of file Transformation.cpp.

Vector3D operator* ( const Vector3D lhs,
const Transformation rhs 
)
friend

You can't technically multiply a 4x1 matrix by a 4x4 matrix (only the other way around), so return it flipped

Definition at line 290 of file Transformation.cpp.

Point3D operator* ( const Transformation lhs,
const Point3D rhs 
)
friend

Return transformed point.

Since
SketchUp 2018, API v6.0

Friend Functions of class Transformation

Definition at line 298 of file Transformation.cpp.

Point3D operator* ( const Point3D lhs,
const Transformation rhs 
)
friend

You can't technically multiply a 4x1 matrix by a 4x4 matrix (only the other way around), so return it flipped

Definition at line 309 of file Transformation.cpp.

Plane3D operator* ( const Plane3D lhs,
const Transformation rhs 
)
friend

Return transformed plane.

Since
SketchUp 2018, API v6.0

Definition at line 329 of file Transformation.cpp.

Plane3D operator* ( const Transformation lhs,
const Plane3D rhs 
)
friend

Friend Functions of class Transformation

Definition at line 318 of file Transformation.cpp.

Face operator* ( const Face lhs,
const Transformation rhs 
)
friend

Return transformed face.

Friend Functions of class Transformation

Definition at line 336 of file Transformation.cpp.


The documentation for this class was generated from the following files: