System.Math.Vectors.TPoint3D

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

  TPoint3D = record
    type
      TPoint3DArray = array [0..2] of Single;
    class function Create(const AX, AY, AZ: Single): TPoint3D; overload; static; inline;
    class function Create(const P: TVector3DType): TPoint3D; overload; static; inline;
    class function Create(const APoint: TPointF; const AZ: Single = 0.0): TPoint3D; overload; static; inline;
    class operator Add(const APoint1, APoint2: TPoint3D): TPoint3D;
    class operator Subtract(const APoint1, APoint2: TPoint3D): TPoint3D;
    class operator Equal(const APoint1, APoint2: TPoint3D): Boolean; inline;
    class operator NotEqual(const APoint1, APoint2: TPoint3D): Boolean; inline;
    class operator Negative(const APoint: TPoint3D): TPoint3D;
    class operator Multiply(const APoint1, APoint2: TPoint3D): TPoint3D;
    class operator Multiply(const APoint: TPoint3D; const AFactor: Single): TPoint3D; inline;
    class operator Multiply(const AFactor: Single; const APoint: TPoint3D): TPoint3D; inline;
    class operator Divide(const APoint: TPoint3D; const AFactor: Single): TPoint3D;
    class function Zero: TPoint3D; inline; static;
    procedure Offset(const ADelta: TPoint3D); overload; inline;
    procedure Offset(const ADeltaX, ADeltaY, ADeltaZ: Single); overload; inline;
    function CrossProduct(const APoint: TPoint3D): TPoint3D;
    function DotProduct(const APoint: TPoint3D): Single; inline;
    function EqualsTo(const APoint: TPoint3D; const Epsilon: Single = 0): Boolean; inline;
    function Length: Single; inline;
    function Normalize: TPoint3D;
    function Distance(const APoint: TPoint3D): Single;
    function Rotate(const AAxis: TPoint3D; const AAngle: Single): TPoint3D; inline;
    function Reflect(const APoint: TPoint3D): TPoint3D; inline;
    function MidPoint(const APoint: TPoint3D): TPoint3D; inline;
    function AngleCosine(const APoint: TPoint3D): Single;
    case Integer of
      0: (V: TPoint3DArray;);
      1: (X: Single;
          Y: Single;
          Z: Single;);
  end;

C++

struct DECLSPEC_DRECORD TPoint3D
{
public:
    typedef System::StaticArray<float, 3> TPoint3DArray;
public:
    static TPoint3D __fastcall Create(const float AX, const float AY, const float AZ)/* overload */;
    static TPoint3D __fastcall Create(const TVector3DType &P)/* overload */;
    static TPoint3D __fastcall Create(const System::Types::TPointF &APoint, const float AZ = 0.000000E+00f)/* overload */;
    static TPoint3D __fastcall _op_Addition(const TPoint3D &APoint1, const TPoint3D &APoint2);
    TPoint3D __fastcall operator+(const TPoint3D& __rhs) { return TPoint3D::_op_Addition(*this, __rhs); };
    static TPoint3D __fastcall _op_Subtraction(const TPoint3D &APoint1, const TPoint3D &APoint2);
    TPoint3D __fastcall operator-(const TPoint3D& __rhs) { return TPoint3D::_op_Subtraction(*this, __rhs); };
    static bool __fastcall _op_Equality(const TPoint3D &APoint1, const TPoint3D &APoint2);
    bool __fastcall operator==(const TPoint3D& __rhs) { return TPoint3D::_op_Equality(*this, __rhs); };
    static bool __fastcall _op_Inequality(const TPoint3D &APoint1, const TPoint3D &APoint2);
    bool __fastcall operator!=(const TPoint3D& __rhs) { return TPoint3D::_op_Inequality(*this, __rhs); };
    static TPoint3D __fastcall _op_UnaryNegation(const TPoint3D &APoint);
    TPoint3D __fastcall operator-() { return TPoint3D::_op_UnaryNegation(*this); };
    static TPoint3D __fastcall _op_Multiply(const TPoint3D &APoint1, const TPoint3D &APoint2);
    TPoint3D __fastcall operator*(const TPoint3D& __rhs) { return TPoint3D::_op_Multiply(*this, __rhs); };
    static TPoint3D __fastcall _op_Multiply(const TPoint3D &APoint, const float AFactor);
    TPoint3D __fastcall operator*(const float& __rhs) { return TPoint3D::_op_Multiply(*this, __rhs); };
    static TPoint3D __fastcall _op_Multiply(const float AFactor, const TPoint3D &APoint);
    static TPoint3D __fastcall _op_Division(const TPoint3D &APoint, const float AFactor);
    TPoint3D __fastcall operator/(const float& __rhs) { return TPoint3D::_op_Division(*this, __rhs); };
    static TPoint3D __fastcall Zero();
    void __fastcall Offset(const TPoint3D &ADelta)/* overload */;
    void __fastcall Offset(const float ADeltaX, const float ADeltaY, const float ADeltaZ)/* overload */;
    TPoint3D __fastcall CrossProduct(const TPoint3D &APoint);
    float __fastcall DotProduct(const TPoint3D &APoint);
    bool __fastcall EqualsTo(const TPoint3D &APoint, const float Epsilon = 0.000000E+00f);
    float __fastcall Length();
    TPoint3D __fastcall Normalize();
    float __fastcall Distance(const TPoint3D &APoint);
    TPoint3D __fastcall Rotate(const TPoint3D &AAxis, const float AAngle);
    TPoint3D __fastcall Reflect(const TPoint3D &APoint);
    TPoint3D __fastcall MidPoint(const TPoint3D &APoint);
    float __fastcall AngleCosine(const TPoint3D &APoint);
public:
    union
    {
        struct
        {
            float X;
            float Y;
            float Z;
        };
        struct
        {
            TPoint3DArray V;
        };
    };
};

プロパティ

種類 可視性 ソース ユニット
record
struct
public
System.Math.Vectors.pas
System.Math.Vectors.hpp
System.Math.Vectors System.Math.Vectors

説明

3D 空間内の 1 つの点を表します。


TPoint3D は、3D 空間内の 1 つの点を X 軸、Y 軸、Z 軸を使って表します。