Loading...
Searching...
No Matches
GfVec3i Class Reference

Basic type for a vector of 3 int components. More...

#include <vec3i.h>

Public Types

typedef int ScalarType
 Scalar element type and dimension.
 

Public Member Functions

 GfVec3i ()=default
 Default constructor does no initialization.
 
constexpr GfVec3i (int value)
 Initialize all elements to a single value.
 
constexpr GfVec3i (int s0, int s1, int s2)
 Initialize all elements with explicit arguments.
 
template<class Scl >
constexpr GfVec3i (Scl const *p)
 Construct with pointer to values.
 
GfVec3iSet (int s0, int s1, int s2)
 Set all elements with passed arguments.
 
GfVec3iSet (int const *a)
 Set all elements with a pointer to data.
 
int const * data () const
 Direct data access.
 
int * data ()
 
int const * GetArray () const
 
int const & operator[] (size_t i) const
 Indexing.
 
int & operator[] (size_t i)
 
bool operator== (GfVec3i const &other) const
 Equality comparison.
 
bool operator!= (GfVec3i const &other) const
 
GF_API bool operator== (class GfVec3d const &other) const
 Equality comparison.
 
GF_API bool operator== (class GfVec3f const &other) const
 Equality comparison.
 
GF_API bool operator== (class GfVec3h const &other) const
 Equality comparison.
 
GfVec3i operator- () const
 Create a vec with negated elements.
 
GfVec3ioperator+= (GfVec3i const &other)
 Addition.
 
GfVec3ioperator-= (GfVec3i const &other)
 Subtraction.
 
GfVec3ioperator*= (double s)
 Multiplication by scalar.
 
GfVec3i operator* (double s) const
 
GfVec3ioperator/= (int s)
 Division by scalar.
 
GfVec3i operator/ (int s) const
 
int operator* (GfVec3i const &v) const
 See GfDot().
 
GfVec3i GetProjection (GfVec3i const &v) const
 Returns the projection of this onto v.
 
GfVec3i GetComplement (GfVec3i const &b) const
 Returns the orthogonal complement of this->GetProjection(b).
 
int GetLengthSq () const
 Squared length.
 

Static Public Member Functions

static GfVec3i XAxis ()
 Create a unit vector along the X-axis.
 
static GfVec3i YAxis ()
 Create a unit vector along the Y-axis.
 
static GfVec3i ZAxis ()
 Create a unit vector along the Z-axis.
 
static GfVec3i Axis (size_t i)
 Create a unit vector along the i-th axis, zero-based.
 

Static Public Attributes

static const size_t dimension = 3
 

Friends

size_t hash_value (GfVec3i const &vec)
 Hash.
 
GfVec3i operator+ (GfVec3i const &l, GfVec3i const &r)
 
GfVec3i operator- (GfVec3i const &l, GfVec3i const &r)
 
GfVec3i operator* (double s, GfVec3i const &v)
 

Detailed Description

Basic type for a vector of 3 int components.

Represents a vector of 3 components of type int. It is intended to be fast and simple.

Definition at line 60 of file vec3i.h.

Member Typedef Documentation

◆ ScalarType

typedef int ScalarType

Scalar element type and dimension.

Definition at line 64 of file vec3i.h.

Constructor & Destructor Documentation

◆ GfVec3i() [1/4]

GfVec3i ( )
default

Default constructor does no initialization.

◆ GfVec3i() [2/4]

constexpr GfVec3i ( int  value)
inlineexplicitconstexpr

Initialize all elements to a single value.

Definition at line 71 of file vec3i.h.

◆ GfVec3i() [3/4]

constexpr GfVec3i ( int  s0,
int  s1,
int  s2 
)
inlineconstexpr

Initialize all elements with explicit arguments.

Definition at line 77 of file vec3i.h.

◆ GfVec3i() [4/4]

constexpr GfVec3i ( Scl const *  p)
inlineexplicitconstexpr

Construct with pointer to values.

Definition at line 84 of file vec3i.h.

Member Function Documentation

◆ Axis()

static GfVec3i Axis ( size_t  i)
inlinestatic

Create a unit vector along the i-th axis, zero-based.

Return the zero vector if i is greater than or equal to 3.

Definition at line 110 of file vec3i.h.

◆ data() [1/2]

int * data ( )
inline

Definition at line 132 of file vec3i.h.

◆ data() [2/2]

int const * data ( ) const
inline

Direct data access.

Definition at line 131 of file vec3i.h.

◆ GetArray()

int const * GetArray ( ) const
inline

Definition at line 133 of file vec3i.h.

◆ GetComplement()

GfVec3i GetComplement ( GfVec3i const &  b) const
inline

Returns the orthogonal complement of this->GetProjection(b).

That is:

*this - this->GetProjection(b)
GfVec3i GetProjection(GfVec3i const &v) const
Returns the projection of this onto v.
Definition: vec3i.h:226

Definition at line 235 of file vec3i.h.

◆ GetLengthSq()

int GetLengthSq ( ) const
inline

Squared length.

Definition at line 240 of file vec3i.h.

◆ GetProjection()

GfVec3i GetProjection ( GfVec3i const &  v) const
inline

Returns the projection of this onto v.

That is:

v * (*this * v)

Definition at line 226 of file vec3i.h.

◆ operator!=()

bool operator!= ( GfVec3i const &  other) const
inline

Definition at line 150 of file vec3i.h.

◆ operator*() [1/2]

GfVec3i operator* ( double  s) const
inline

Definition at line 199 of file vec3i.h.

◆ operator*() [2/2]

int operator* ( GfVec3i const &  v) const
inline

See GfDot().

Definition at line 218 of file vec3i.h.

◆ operator*=()

GfVec3i & operator*= ( double  s)
inline

Multiplication by scalar.

Definition at line 193 of file vec3i.h.

◆ operator+=()

GfVec3i & operator+= ( GfVec3i const &  other)
inline

Addition.

Definition at line 171 of file vec3i.h.

◆ operator-()

GfVec3i operator- ( ) const
inline

Create a vec with negated elements.

Definition at line 166 of file vec3i.h.

◆ operator-=()

GfVec3i & operator-= ( GfVec3i const &  other)
inline

Subtraction.

Definition at line 182 of file vec3i.h.

◆ operator/()

GfVec3i operator/ ( int  s) const
inline

Definition at line 213 of file vec3i.h.

◆ operator/=()

GfVec3i & operator/= ( int  s)
inline

Division by scalar.

Definition at line 207 of file vec3i.h.

◆ operator==() [1/4]

GF_API bool operator== ( class GfVec3d const &  other) const

Equality comparison.

◆ operator==() [2/4]

GF_API bool operator== ( class GfVec3f const &  other) const

Equality comparison.

◆ operator==() [3/4]

GF_API bool operator== ( class GfVec3h const &  other) const

Equality comparison.

◆ operator==() [4/4]

bool operator== ( GfVec3i const &  other) const
inline

Equality comparison.

Definition at line 145 of file vec3i.h.

◆ operator[]() [1/2]

int & operator[] ( size_t  i)
inline

Definition at line 137 of file vec3i.h.

◆ operator[]() [2/2]

int const & operator[] ( size_t  i) const
inline

Indexing.

Definition at line 136 of file vec3i.h.

◆ Set() [1/2]

GfVec3i & Set ( int const *  a)
inline

Set all elements with a pointer to data.

Definition at line 126 of file vec3i.h.

◆ Set() [2/2]

GfVec3i & Set ( int  s0,
int  s1,
int  s2 
)
inline

Set all elements with passed arguments.

Definition at line 118 of file vec3i.h.

◆ XAxis()

static GfVec3i XAxis ( )
inlinestatic

Create a unit vector along the X-axis.

Definition at line 90 of file vec3i.h.

◆ YAxis()

static GfVec3i YAxis ( )
inlinestatic

Create a unit vector along the Y-axis.

Definition at line 96 of file vec3i.h.

◆ ZAxis()

static GfVec3i ZAxis ( )
inlinestatic

Create a unit vector along the Z-axis.

Definition at line 102 of file vec3i.h.

Friends And Related Function Documentation

◆ hash_value

size_t hash_value ( GfVec3i const &  vec)
friend

Hash.

Definition at line 140 of file vec3i.h.

◆ operator*

GfVec3i operator* ( double  s,
GfVec3i const &  v 
)
friend

Definition at line 202 of file vec3i.h.

◆ operator+

GfVec3i operator+ ( GfVec3i const &  l,
GfVec3i const &  r 
)
friend

Definition at line 177 of file vec3i.h.

◆ operator-

GfVec3i operator- ( GfVec3i const &  l,
GfVec3i const &  r 
)
friend

Definition at line 188 of file vec3i.h.

Member Data Documentation

◆ dimension

const size_t dimension = 3
static

Definition at line 65 of file vec3i.h.


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