Code Bucket …

Vector3 Interface (public)

You can visit http://www.the-barn.org/codebucket.php?id=64 to view this snippet directly.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
class Vector3
{
public:
    Vector3();
    Vector3(const Vector3& rhs);
    explicit Vector3(Math::Real x, Math::Real y, Math::Real z);
    explicit Vector3(const Math::Real* v);

    Vector3& operator= (const Vector3& rhs);

    bool operator== (const Vector3& rhs) const;
    bool operator!= (const Vector3& rhs) const;
    bool operator< (const Vector3& rhs) const;
    bool operator> (const Vector3& rhs) const;

    Vector3& operator+= (const Vector3& rhs);
    Vector3& operator-= (const Vector3& rhs);
    Vector3& operator/= (const Math::Real& rhs);
    Vector3& operator*= (const Math::Real& rhs);

    bool Equal(const Vector3& rhs, Math::Real tolerance = Math::Epsilon) const;
    bool NotEqual(const Vector3& rhs, Math::Real tolerance = Math::Epsilon) const;

    bool Less(Math::Real rhs) const;
    bool Greater(Math::Real rhs) const;

    void Normalize();
    void NormalizeSafe();
    void Reflect(const Vector3& normal);

    Math::Real Magnitude() const;
    Math::Real MagnitudeSquared() const;
    Math::Real DotProduct(const Vector3& v) const;
    Vector3 CrossProduct(const Vector3& v) const;

    const Math::Real* Data() const;
    const Math::Real& x() const;
    const Math::Real& y() const;
    const Math::Real& z() const;

    Math::Real* Data();
    Math::Real& x();
    Math::Real& y();
    Math::Real& z();

    static bool Equal(const Vector3& lhs, const Vector3& rhs);
    static bool NotEqual(const Vector3& lhs, const Vector3& rhs);

    static bool Less(const Vector3& lhs, const Vector3& rhs);
    static bool Greater(const Vector3& lhs, const Vector3& rhs);

    static Real DotProduct(const Vector3& lhs, const Vector3& rhs);
    static Real MagnitudeSquared(const Vector3& v);
    static Real Magnitude(const Vector3& v);
    static Real MagnitudeSafe(const Vector3& v);

    static Vector3 CrossProduct(const Vector3& lhs, const Vector3& rhs);
    static Vector3 Reflect(const Vector3& v, const Vector3& normal);
    static Vector3 Normalize(const Vector3& v);
    static Vector3 NormalizeSafe(const Vector3& v);

private:
    friend Vector3 operator+ (const Vector3& lhs, const Vector3& rhs);
    friend Vector3 operator- (const Vector3& lhs, const Vector3& rhs);
    friend Vector3 operator/ (const Vector3& lhs, const Math::Real& rhs);
    friend Vector3 operator* (const Vector3& lhs, const Math::Real& rhs);
    friend Vector3 operator/ (const Math::Real& lhs, const Vector3& rhs);
    friend Vector3 operator* (const Math::Real& lhs, const Vector3& rhs);

    Math::Real m_data[3];
};

Vector3 operator+ (const Vector3& lhs, const Vector3& rhs);
Vector3 operator- (const Vector3& lhs, const Vector3& rhs);
Vector3 operator/ (const Vector3& lhs, const Math::Real& rhs);
Vector3 operator* (const Vector3& lhs, const Math::Real& rhs);
Vector3 operator/ (const Math::Real& lhs, const Vector3& rhs);
Vector3 operator* (const Math::Real& lhs, const Vector3& rhs);
  • Posted on 11.02.2008 at 9:53 PM by kalin
  • Language: C++

Snippets

 
36 Results
Page 1 of 3
TitleLanguagePosted ByPostedExpiresActions
Python first-class classes for KodenPythonstoffle04.07.2010 8:19 AM (64 days 3h 44m ago)-view
mLAN Activation ScriptPlain Textstoffle23.06.2010 6:42 AM (75 days 5h 20m ago)-view
areaC#stoffle27.02.2010 3:51 AM (191 days 9h 12m ago)-view
list extensionsC#stoffle09.02.2010 11:12 PM (208 days 13h 50m ago)-view
possible IComponent intererface version 95C#stoffle09.02.2010 11:04 PM (208 days 13h 59m ago)-view
Render SystemC++spam05.06.2009 12:14 PM (457 days 23h 49m ago)-view
Effect SampleC++spam03.06.2009 2:40 PM (459 days 21h 22m ago)-view
Rho LambdasC++spam03.06.2009 2:38 PM (459 days 21h 25m ago)-view
Example VSM implC++spam02.06.2009 1:21 PM (460 days 22h 42m ago)-view
Vector3 Interface (public)C++kalin11.02.2008 9:53 PM (937 days 15h 10m ago)-view
TimesTablesC++kalin09.02.2008 6:04 PM (939 days 18h 59m ago)-view
Skruje Account Search PagePHPstoffle03.02.2008 5:12 PM (945 days 19h 51m ago)-view
C++ is still bork...C++spam26.01.2008 5:58 PM (953 days 19h 5m ago)-view
C++ is bork #3C++spam26.01.2008 5:47 PM (953 days 19h 16m ago)-view
C++ is bork #2C++spam26.01.2008 5:46 PM (953 days 19h 17m ago)-view
36 Results
Page 1 of 3