System.Math.Vectors.TMatrix3D

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

TMatrix3D = record

C++

struct DECLSPEC_DRECORD TMatrix3D
{
private:
    float __fastcall DetInternal(const float a1, const float a2, const float a3, const float b1, const float b2, const float b3, const float c1, const float c2, const float c3);
    TMatrix3D __fastcall Scale(const float AFactor);
public:
    __fastcall TMatrix3D(const float AM11, const float AM12, const float AM13, const float AM14, const float AM21, const float AM22, const float AM23, const float AM24, const float AM31, const float AM32, const float AM33, const float AM34, const float AM41, const float AM42, const float AM43, const float AM44)/* overload */;
#ifndef _WIN64
    __fastcall TMatrix3D(const System::DynamicArray<float> AArray)/* overload */;
#else /* _WIN64 */
    __fastcall TMatrix3D(const System::TArray__1<float> AArray)/* overload */;
#endif /* _WIN64 */
    static TMatrix3D __fastcall CreateScaling(const TPoint3D &AScale);
    static TMatrix3D __fastcall CreateTranslation(const TPoint3D &ATranslation);
    static TMatrix3D __fastcall CreateRotationX(const float AAngle);
    static TMatrix3D __fastcall CreateRotationY(const float AAngle);
    static TMatrix3D __fastcall CreateRotationZ(const float AAngle);
    static TMatrix3D __fastcall CreateRotation(const TPoint3D &AAxis, const float AAngle);
    static TMatrix3D __fastcall CreateRotationYawPitchRoll(const float AYaw, const float APitch, const float ARoll);
    static TMatrix3D __fastcall CreateRotationHeadingPitchBank(const float AHeading, const float APitch, const float ABank);
    static TMatrix3D __fastcall CreateLookAtRH(const TPoint3D &ASource, const TPoint3D &ATarget, const TPoint3D &ACeiling);
    static TMatrix3D __fastcall CreateLookAtLH(const TPoint3D &ASource, const TPoint3D &ATarget, const TPoint3D &ACeiling);
    static TMatrix3D __fastcall CreateLookAtDirRH(const TPoint3D &ASource, const TPoint3D &ADirection, const TPoint3D &ACeiling);
    static TMatrix3D __fastcall CreateLookAtDirLH(const TPoint3D &ASource, const TPoint3D &ADirection, const TPoint3D &ACeiling);
    static TMatrix3D __fastcall CreateOrthoLH(const float AWidth, const float AHeight, const float AZNear, const float AZFar);
    static TMatrix3D __fastcall CreateOrthoRH(const float AWidth, const float AHeight, const float AZNear, const float AZFar);
    static TMatrix3D __fastcall CreateOrthoOffCenterLH(const float ALeft, const float ATop, const float ARight, const float ABottom, const float AZNear, const float AZFar);
    static TMatrix3D __fastcall CreateOrthoOffCenterRH(const float ALeft, const float ATop, const float ARight, const float ABottom, const float AZNear, const float AZFar);
    static TMatrix3D __fastcall CreatePerspectiveFovLH(const float AFOV, const float AAspect, const float AZNear, const float AZFar, const bool AHorizontalFOV = false);
    static TMatrix3D __fastcall CreatePerspectiveFovRH(const float AFOV, const float AAspect, const float AZNear, const float AZFar, const bool AHorizontalFOV = false);
    static TMatrix3D __fastcall _op_Multiply(const TMatrix3D &APoint1, const TMatrix3D &APoint2);
    static TPoint3D __fastcall _op_Multiply(const TPoint3D &APoint, const TMatrix3D &AMatrix);
    static TVector3D __fastcall _op_Multiply(const TVector3D &AVector, const TMatrix3D &AMatrix);
    TMatrix3D __fastcall Transpose();
    float __fastcall Determinant();
    TMatrix3D __fastcall Adjoint();
    TMatrix3D __fastcall Inverse();
    TMatrix __fastcall ToMatrix();
    TPoint3D __fastcall EyePosition();
    TMatrix3D() {}
    friend TMatrix3D operator *(const TMatrix3D &APoint1, const TMatrix3D &APoint2) { return TMatrix3D::_op_Multiply(APoint1, APoint2); }
    friend TPoint3D operator *(const TPoint3D &APoint, const TMatrix3D &AMatrix) { return TMatrix3D::_op_Multiply(APoint, AMatrix); }
    friend TVector3D operator *(const TVector3D &AVector, const TMatrix3D &AMatrix) { return TMatrix3D::_op_Multiply(AVector, AMatrix); }
public:
    union
    {
        struct
        {
            float m11;
            float m12;
            float m13;
            float m14;
            float m21;
            float m22;
            float m23;
            float m24;
            float m31;
            float m32;
            float m33;
            float m34;
            float m41;
            float m42;
            float m43;
            float m44;
        };
        struct
        {
            System::Math::Vectors::TMatrix3DTypeBase M;
        };
    };
};

Propriétés

Type Visibilité  Source Unité  Parent
record
struct
public
System.Math.Vectors.pas
System.Math.Vectors.hpp
System.Math.Vectors System.Math.Vectors

Description

Représente un type de matrice 4 par 4.

TMatrix3D est un type de matrice 4 par 4 utilisé dans les translations de points et les rotations d'objets 3D.