[964] | 1 | /*
|
---|
| 2 | Copyright (C) 2005-2006 Feeling Software Inc.
|
---|
| 3 | MIT License: http://www.opensource.org/licenses/mit-license.php
|
---|
| 4 | */
|
---|
| 5 |
|
---|
| 6 | /**
|
---|
| 7 | @file FMVector4.h
|
---|
| 8 | This file contains the class for 4 dimensional vectors.
|
---|
| 9 | */
|
---|
| 10 |
|
---|
| 11 | #ifndef _FM_VECTOR4_H_
|
---|
| 12 | #define _FM_VECTOR4_H_
|
---|
| 13 |
|
---|
| 14 | /**
|
---|
| 15 | A 4 dimensional vector.
|
---|
| 16 | Not used within FCollada.
|
---|
| 17 |
|
---|
| 18 | @ingroup FMath
|
---|
| 19 | */
|
---|
| 20 | class FCOLLADA_EXPORT FMVector4
|
---|
| 21 | {
|
---|
| 22 | public:
|
---|
| 23 | float x; /**< The first coordinate. */
|
---|
| 24 | float y; /**< The second coordinate. */
|
---|
| 25 | float z; /**< The third coordinate. */
|
---|
| 26 | float w; /**< The forth coordinate. */
|
---|
| 27 |
|
---|
| 28 | /**
|
---|
| 29 | * Creates an empty FMVector4.
|
---|
| 30 | */
|
---|
| 31 | #ifndef _DEBUG
|
---|
| 32 | FMVector4() {}
|
---|
| 33 | #else
|
---|
| 34 | FMVector4() { x = 123456789.0f; y = 123456789.0f; z = 123456789.0f; w = 123456789.0f; }
|
---|
| 35 | #endif
|
---|
| 36 |
|
---|
| 37 | /**
|
---|
| 38 | * Creates the FMVector4 with the coordinates given.
|
---|
| 39 | *
|
---|
| 40 | * The first three coordinates are taken from the FMVector3, where the
|
---|
| 41 | * first one is the x value, the second is that y, and the third is the z.
|
---|
| 42 | * The forth value is the \c float specified.
|
---|
| 43 | *
|
---|
| 44 | *
|
---|
| 45 | * @param v The FMVector3 representing the first three coordinates.
|
---|
| 46 | * @param _w The final coordinate.
|
---|
| 47 | */
|
---|
| 48 | FMVector4(FMVector3 v, float _w) { x = v.x; y = v.y; z = v.z; w = _w; }
|
---|
| 49 |
|
---|
| 50 | /**
|
---|
| 51 | * Creates the FMVector4 with the coordinates given.
|
---|
| 52 | *
|
---|
| 53 | * @param _x The first coordinate.
|
---|
| 54 | * @param _y The second coordinate.
|
---|
| 55 | * @param _z The third coordinate.
|
---|
| 56 | * @param _w The forth coordinate.
|
---|
| 57 | */
|
---|
| 58 | FMVector4(float _x, float _y, float _z, float _w) { x = _x; y = _y; z = _z; w = _w; }
|
---|
| 59 |
|
---|
| 60 | public:
|
---|
| 61 | /**
|
---|
| 62 | * Get this FMVector4 as an array of \c floats.
|
---|
| 63 | *
|
---|
| 64 | * @return The \c float array.
|
---|
| 65 | */
|
---|
| 66 | inline operator float*() { return &x; }
|
---|
| 67 |
|
---|
| 68 | /**
|
---|
| 69 | * Get this FMVector4 as an array of \c floats.
|
---|
| 70 | *
|
---|
| 71 | * @return The \c float array.
|
---|
| 72 | */
|
---|
| 73 | inline operator const float*() const { return &x; }
|
---|
| 74 |
|
---|
| 75 | public:
|
---|
| 76 | static const FMVector4 Zero; /**< The FMVector4 representing zero */
|
---|
| 77 | };
|
---|
| 78 |
|
---|
| 79 | #endif // _FM_VECTOR4_H_
|
---|