C# Class SolidworksAddinFramework.MathUtilityExtensions

显示文件 Open project: Weingartner/SolidworksAddinFramework

Public Methods

Method Description
ComposeTransform ( this math, MathVector translate, double scale = 1.0 ) : MathTransform
GetRotationFromAxisAndAngle ( this m, IMathVector axis, double angle ) : MathTransform
GetTranslationFromVector ( this m, IMathVector v ) : MathTransform
IdentityTransform ( this math ) : MathTransform
InterpolatePoints ( this m, IEnumerable pointsEnum, double stepSize ) : List
Mp ( this m, double v ) : MathPoint
Mv ( this m, double v ) : MathVector
Origin ( this m ) : MathPoint
OriginArray ( this m ) : double[]
Point ( this m, double v ) : MathPoint
RotateByAngle ( this m, IMathPoint p, IMathVector axis, double angle ) : IMathPoint
ToHexString ( this d ) : string
ToMatrix4X4 ( this transform ) : Matrix4x4
ToSwMatrix ( this math, Matrix4x4 matrix ) : MathTransform

Transformation matrix data: |a b c.n | |d e f.o | |g h i.p | |j k l.m | The SOLIDWORKS transformation matrix is stored as a homogeneous matrix of 16 elements, ordered as shown.The first 9 elements(a to i) are elements of a 3x3 rotational sub-matrix, the next 3 elements(j, k, l) define a translation vector, and the next 1 element(m) is a scaling factor.The last 3 elements(n, o, p) are unused in this context. The 3x3 rotational sub-matrix represents 3 axis sets: row 1 for x-axis components of rotation row 2 for y-axis components of rotation row 3 for z-axis components of rotation The 3 axes are constrained to be orthogonal and unified so that they produce a pure rotational transformation.Reflections can also be added to these axes by setting the components to negative.The rotation sub-matrix coupled with the lower-left translation vector and the lower-right corner scaling factor creates an affine transformation, which is a transformation that preserves lines and parallelism; i.e., maps parallel lines to parallel lines. If the 3 axis sets of the 3x3 rotational sub-matrix are not orthogonal or unified, then they are automatically corrected according to the following rules: If any axis is 0, or any two axes are parallel, or all axes are coplanar, then an identity matrix replaces the rotational sub-matrix. All axes are corrected to be of unit length. The axes are built to be orthogonal to each other in the prioritized order of Z, X, Y (X is orthogonal to Z, Y is orthogonal to Z and X).

TranslateByVector ( this m, IMathPoint p, IMathVector v ) : IMathPoint
Vector ( this m, double v ) : MathVector
Vector ( this m, double a, double b ) : MathVector
XAxis ( this m ) : MathVector
XAxisArray ( this m ) : double[]
YAxis ( this m ) : MathVector
YAxisArray ( this m ) : double[]
ZAxis ( this m ) : MathVector
ZAxisArray ( this m ) : double[]

Method Details

ComposeTransform() public static method

public static ComposeTransform ( this math, MathVector translate, double scale = 1.0 ) : MathTransform
math this
translate MathVector
scale double
return MathTransform

GetRotationFromAxisAndAngle() public static method

public static GetRotationFromAxisAndAngle ( this m, IMathVector axis, double angle ) : MathTransform
m this
axis IMathVector
angle double
return MathTransform

GetTranslationFromVector() public static method

public static GetTranslationFromVector ( this m, IMathVector v ) : MathTransform
m this
v IMathVector
return MathTransform

IdentityTransform() public static method

public static IdentityTransform ( this math ) : MathTransform
math this
return MathTransform

InterpolatePoints() public static method

public static InterpolatePoints ( this m, IEnumerable pointsEnum, double stepSize ) : List
m this
pointsEnum IEnumerable
stepSize double
return List

Mp() public static method

public static Mp ( this m, double v ) : MathPoint
m this
v double
return MathPoint

Mv() public static method

public static Mv ( this m, double v ) : MathVector
m this
v double
return MathVector

Origin() public static method

public static Origin ( this m ) : MathPoint
m this
return MathPoint

OriginArray() public static method

public static OriginArray ( this m ) : double[]
m this
return double[]

Point() public static method

public static Point ( this m, double v ) : MathPoint
m this
v double
return MathPoint

RotateByAngle() public static method

public static RotateByAngle ( this m, IMathPoint p, IMathVector axis, double angle ) : IMathPoint
m this
p IMathPoint
axis IMathVector
angle double
return IMathPoint

ToHexString() public static method

public static ToHexString ( this d ) : string
d this
return string

ToMatrix4X4() public static method

public static ToMatrix4X4 ( this transform ) : Matrix4x4
transform this
return Matrix4x4

ToSwMatrix() public static method

Transformation matrix data: |a b c.n | |d e f.o | |g h i.p | |j k l.m | The SOLIDWORKS transformation matrix is stored as a homogeneous matrix of 16 elements, ordered as shown.The first 9 elements(a to i) are elements of a 3x3 rotational sub-matrix, the next 3 elements(j, k, l) define a translation vector, and the next 1 element(m) is a scaling factor.The last 3 elements(n, o, p) are unused in this context. The 3x3 rotational sub-matrix represents 3 axis sets: row 1 for x-axis components of rotation row 2 for y-axis components of rotation row 3 for z-axis components of rotation The 3 axes are constrained to be orthogonal and unified so that they produce a pure rotational transformation.Reflections can also be added to these axes by setting the components to negative.The rotation sub-matrix coupled with the lower-left translation vector and the lower-right corner scaling factor creates an affine transformation, which is a transformation that preserves lines and parallelism; i.e., maps parallel lines to parallel lines. If the 3 axis sets of the 3x3 rotational sub-matrix are not orthogonal or unified, then they are automatically corrected according to the following rules: If any axis is 0, or any two axes are parallel, or all axes are coplanar, then an identity matrix replaces the rotational sub-matrix. All axes are corrected to be of unit length. The axes are built to be orthogonal to each other in the prioritized order of Z, X, Y (X is orthogonal to Z, Y is orthogonal to Z and X).
public static ToSwMatrix ( this math, Matrix4x4 matrix ) : MathTransform
math this
matrix Matrix4x4
return MathTransform

TranslateByVector() public static method

public static TranslateByVector ( this m, IMathPoint p, IMathVector v ) : IMathPoint
m this
p IMathPoint
v IMathVector
return IMathPoint

Vector() public static method

public static Vector ( this m, double v ) : MathVector
m this
v double
return MathVector

Vector() public static method

public static Vector ( this m, double a, double b ) : MathVector
m this
a double
b double
return MathVector

XAxis() public static method

public static XAxis ( this m ) : MathVector
m this
return MathVector

XAxisArray() public static method

public static XAxisArray ( this m ) : double[]
m this
return double[]

YAxis() public static method

public static YAxis ( this m ) : MathVector
m this
return MathVector

YAxisArray() public static method

public static YAxisArray ( this m ) : double[]
m this
return double[]

ZAxis() public static method

public static ZAxis ( this m ) : MathVector
m this
return MathVector

ZAxisArray() public static method

public static ZAxisArray ( this m ) : double[]
m this
return double[]