Parameterizable four-dimensional point data structure. More...
#include <mitsuba/mitsuba.h>
Public Types | |
typedef T | Scalar |
typedef TVector4< T > | VectorType |
Public Member Functions | |
TPoint4 () | |
Construct a new point without initializing it. More... | |
TPoint4 (T x, T y, T z, T w) | |
Initialize the point with the specified X, Y and Z components. More... | |
template<typename T2 > | |
TPoint4 (const TPoint4< T2 > &p) | |
Initialize the point with the components of another point. More... | |
template<typename T2 > | |
TPoint4 (const TVector4< T2 > &v) | |
Initialize the point with the components of a vector data structure. More... | |
TPoint4 (T val) | |
Initialize all components of the the point with the specified value. More... | |
TPoint4 (Stream *stream) | |
Unserialize a point from a binary data stream. More... | |
TPoint4 | operator+ (const TVector4< T > &v) const |
Add a vector to a point and return the result. More... | |
TPoint4 | operator+ (const TPoint4 &p) const |
Add two points and return the result (e.g. to compute a weighted position) More... | |
TPoint4 & | operator+= (const TVector4< T > &v) |
Add a vector to this one (e.g. to compute a weighted position) More... | |
TPoint4 & | operator+= (const TPoint4 &p) |
Add a point to this one (e.g. to compute a weighted position) More... | |
TPoint4 | operator- (const TVector4< T > &v) const |
Subtract a vector from this point. More... | |
TVector4< T > | operator- (const TPoint4 &p) const |
Subtract two points from each other and return the difference as a vector. More... | |
TPoint4 & | operator-= (const TVector4< T > &v) |
Subtract a vector from this point. More... | |
TPoint4 | operator* (T f) const |
Scale the point's coordinates by the given scalar and return the result. More... | |
TPoint4 & | operator*= (T f) |
Scale the point's coordinates by the given scalar. More... | |
TPoint4 | operator- () const |
Return a version of the point, which has been flipped along the origin. More... | |
TPoint4 | operator/ (T f) const |
Divide the point's coordinates by the given scalar and return the result. More... | |
TPoint4 & | operator/= (T f) |
Divide the point's coordinates by the given scalar. More... | |
T & | operator[] (int i) |
Index into the point's components. More... | |
T | operator[] (int i) const |
Index into the point's components (const version) More... | |
bool | isZero () const |
Return whether or not this point is identically zero. More... | |
bool | operator== (const TPoint4 &v) const |
Equality test. More... | |
bool | operator!= (const TPoint4 &v) const |
Inequality test. More... | |
void | serialize (Stream *stream) const |
Serialize this point to a binary data stream. More... | |
std::string | toString () const |
Return a readable string representation of this point. More... | |
Public Attributes | |
T | x |
T | y |
T | z |
T | w |
Static Public Attributes | |
static const int | dim = 4 |
Number of dimensions. More... | |
Parameterizable four-dimensional point data structure.
typedef T mitsuba::TPoint4< T >::Scalar |
typedef TVector4<T> mitsuba::TPoint4< T >::VectorType |
|
inline |
Construct a new point without initializing it.
This construtor is useful when the point will either not be used at all (it might be part of a larger data structure) or initialized at a later point in time. Always make sure that one of the two is the case! Otherwise your program will do computations involving uninitialized memory, which will probably lead to a difficult-to-find bug.
|
inline |
Initialize the point with the specified X, Y and Z components.
|
inlineexplicit |
Initialize the point with the components of another point.
|
inlineexplicit |
Initialize the point with the components of a vector data structure.
|
inlineexplicit |
Initialize all components of the the point with the specified value.
|
inlineexplicit |
Unserialize a point from a binary data stream.
|
inline |
Return whether or not this point is identically zero.
|
inline |
Inequality test.
|
inline |
Scale the point's coordinates by the given scalar and return the result.
|
inline |
Scale the point's coordinates by the given scalar.
|
inline |
Add a vector to a point and return the result.
|
inline |
Add two points and return the result (e.g. to compute a weighted position)
|
inline |
Add a vector to this one (e.g. to compute a weighted position)
|
inline |
Add a point to this one (e.g. to compute a weighted position)
|
inline |
Subtract a vector from this point.
|
inline |
Subtract two points from each other and return the difference as a vector.
|
inline |
Return a version of the point, which has been flipped along the origin.
|
inline |
Subtract a vector from this point.
|
inline |
Divide the point's coordinates by the given scalar and return the result.
|
inline |
Divide the point's coordinates by the given scalar.
|
inline |
Equality test.
|
inline |
Index into the point's components.
|
inline |
Index into the point's components (const version)
|
inline |
Serialize this point to a binary data stream.
|
inline |
Return a readable string representation of this point.
|
static |
Number of dimensions.
T mitsuba::TPoint4< T >::w |
T mitsuba::TPoint4< T >::x |
T mitsuba::TPoint4< T >::y |
T mitsuba::TPoint4< T >::z |