3DCoat Core API
The 3DCoat API documentation.
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Friends | List of all members
cVec3 Class Reference

The 3D-vector, refer it as coat::vec3 in the Core API. More...

#include <cVec3.h>

Public Member Functions

 cVec3 (const float S)
 
 cVec3 (const float X, const float Y, const float Z)
 
 cVec3 (const cVec2 &XY, const float Z)
 
 cVec3 (const dVec3 &v)
 
 cVec3 (const cVec3 &v)
 
void Copy (const float *Src)
 
void SetZero ()
 
void SetOne ()
 
void SetRandRange1 ()
 
void Set (const float S)
 
void Set (const float X, const float Y, const float Z)
 
void Set (const cVec2 &XY, const float Z)
 
float & operator[] (const int Index)
 
float operator[] (const int Index) const
 
const cVec3 operator- () const
 
cVec3operator+= (const cVec3 &)
 
cVec3operator-= (const cVec3 &)
 
cVec3operator*= (const cVec3 &)
 
cVec3operator*= (const float)
 
cVec3operator/= (const cVec3 &)
 
cVec3operator/= (const float)
 
void TransformCoordinate (const cMat4 &)
 
void TransformNormal (const cMat4 &)
 
void TransformNormalTransposed (const cMat4 &)
 
void Transform (const cMat3 &)
 
cVec3operator*= (const cMat3 &)
 
void Rotate (const cQuat &)
 
void operator*= (const cQuat &)
 
void Rotate (const cRotation &)
 
void operator*= (const cRotation &)
 
const cVec3operator= (const cVec4 &)
 
float distance (const cVec3 &u) const
 
float distanceSq (const cVec3 &u) const
 
float dot (const cVec3 &u) const
 
void cross (const cVec3 &u, const cVec3 &v)
 
void Clear (void *=0)
 
void AddWithWeight (cVec3 const &src, float weight)
 
void SetPosition (float aX, float aY, float aZ)
 
const float * GetPosition () const
 
const cVec3 operator+ (const cVec3 &) const
 
const cVec3 operator- (const cVec3 &) const
 
const cVec3 operator* (const cVec3 &) const
 
const cVec3 operator* (const float) const
 
const cVec3 operator/ (const cVec3 &) const
 
const cVec3 operator/ (const float) const
 
const cVec3 operator* (const cMat3 &) const
 
const cVec3 operator* (const cQuat &) const
 
const cVec3 operator* (const cRotation &) const
 
bool operator== (const cVec3 &) const
 
bool operator!= (const cVec3 &) const
 
float Length () const
 
float Length2 () const
 
float LengthSq () const
 
float LengthM () const
 
float Normalize ()
 
float Normalize2 ()
 
float NormalizeSafe (const cVec3 &Fallback=cVec3::AxisZ)
 
bool FixDegenerateNormal ()
 
bool FixDenormals ()
 
bool IsValid () const
 
bool IsNormalized (float Eps=cMath::Epsilon) const
 
bool IsZero (float Eps=cMath::Epsilon) const
 
void Round ()
 
void SetCross (const cVec3 &, const cVec3 &)
 
float Distance (const cVec3 &) const
 
float Distance2 (const cVec3 &) const
 
float Dot (const cVec3 &) const
 
void Truncate (const float MaxLen)
 
float TriProjectionSolidAngle (const cVec3 &a, const cVec3 &b, const cVec3 &c) const
 
int GetDimension () const
 
const float * ToFloatPtr () const
 
float * ToFloatPtr ()
 
const cVec2ToVec2 () const
 
cVec2ToVec2 ()
 
const cStr ToString (const int Prec=2) const
 
const std::string __repr__ () const
 
const cAngles ToAngles () const
 
cVec3 GetOrthonormal () const
 
std::pair< cVec3, cVec3GetOrthonormalPair () const
 
void MakeOrthonormalTo (const cVec3 &vec)
 
void ToPolarXZ (float *Radius, float *Angle) const
 
float ToBaryCentric (const cVec3 &t0, const cVec3 &t1, const cVec3 &t2, float &f, float &g) const
 
const cVec3 ToNormal () const
 
void ToPerps (cVec3 &X, cVec3 &Y) const
 
const cVec3 ToPerp () const
 
std::tuple< float, float, float > __getstate__ ()
 
void __setstate__ (const std::tuple< float, float, float > &state)
 

Static Public Member Functions

static const cVec3 Transform (const cVec3 &, const cMat3 &)
 
static const cVec4 Transform (const cVec3 &, const cMat4 &)
 
static const cVec3 TransformCoordinate (const cVec3 &, const cMat4 &)
 
static const cVec3 TransformNormal (const cVec3 &, const cMat4 &)
 
static void TransformCoordinate (cList< cVec3 > *, const cMat4 &)
 
static void TransformNormal (cList< cVec3 > *, const cMat4 &)
 
static void TransformCoordinate (cVec3 *Array, const int Count, const cMat4 &T)
 
static void TransformNormal (cVec3 *Array, const int Count, const cMat4 &T)
 
static const cVec3 Rotate (const cVec3 &, const cQuat &)
 
static const cVec3 Rotate (const cVec3 &, const cRotation &)
 
static bool Equals (const cVec3 &, const cVec3 &, const float Eps=cMath::Epsilon)
 
static const cVec3 Abs (const cVec3 &)
 
static float Angle (const cVec3 &, const cVec3 &)
 
static float Angle (const cVec3 &p1, const cVec3 &p2, const cVec3 &p3, const cVec3 &normal)
 
static float AreaSigned (const cVec3 &t0, const cVec3 &t1, const cVec3 &t2)
 
static const cVec3 BaryCentric (const cVec3 &t0, const cVec3 &t1, const cVec3 &t2, const float f, const float g)
 
static const cVec3 Clamp (const cVec3 &, const cVec3 &, const cVec3 &)
 
static const cVec3 Cross (const cVec3 &, const cVec3 &)
 
static float Distance (const cVec3 &, const cVec3 &)
 
static float Distance2 (const cVec3 &, const cVec3 &)
 
static float DistanceSq (const cVec3 &, const cVec3 &)
 
static float Dot (const cVec3 &, const cVec3 &)
 
static float Length (const cVec3 &)
 
static float LengthSq (const cVec3 &)
 
static const cVec3 Lerp (const cVec3 &, const cVec3 &, const float)
 
static const cVec3 Lerp05 (const cVec3 &, const cVec3 &)
 
static const cVec3 Max (const cVec3 &, const cVec3 &)
 
static const cVec3 Min (const cVec3 &, const cVec3 &)
 
static const cVec3 Normalize (const cVec3 &)
 
static const cVec3 Normalize2 (const cVec3 &)
 
static const cVec3 Reflect (const cVec3 &RayDir, const cVec3 &Normal)
 
static const cVec3 Refract (const cVec3 &RayDir, const cVec3 &Normal, const float Eta)
 
static const cVec3 Slerp (const cVec3 &n0, const cVec3 &n1, const float s)
 
static const cVec3 Truncate (const cVec3 &u, const float MaxLen)
 
static const cVec3 RandRange1 ()
 
static const cVec3 RandNormal ()
 
static const cVec3 Rand (const cVec3 &Lo, const cVec3 &Hi)
 
static const cVec3 Project (const cVec3 &v1, const cVec3 &v2)
 
static const cVec3 Perpendicular (const cVec3 &v1)
 
static const cVec3 FromPolarXZ (const float Radius, const float Angle)
 
static bool RayTri (const cVec3 &RayOrig, const cVec3 &RayDir, const cVec3 &t0, const cVec3 &t1, const cVec3 &t2, float &u, float &v, float &t, const bool BackFaceCull=false)
 
static bool PointInTriangle (const cVec3 &p, const cVec3 &t0, const cVec3 &t1, const cVec3 &t2)
 

Public Attributes

float x
 
float y
 
float z
 

Static Public Attributes

static const cVec3 Zero
 
static const cVec3 One
 
static const cVec3 Infinity
 
static const cVec3 AxisX
 
static const cVec3 AxisY
 
static const cVec3 AxisZ
 
static const cVec3 AxisNegX
 
static const cVec3 AxisNegY
 
static const cVec3 AxisNegZ
 

Friends

const cVec3 operator* (const float, const cVec3 &)
 

Detailed Description

The 3D-vector, refer it as coat::vec3 in the Core API.


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