38 #include <Inventor/SbBasic.h> 39 #include <Inventor/SbByteBuffer.h> 40 #include <Inventor/SbString.h> 42 #include <Inventor/errors/SoDebugError.h> 54 SbVec3f(
const float v[3]) { vec[0] = v[0]; vec[1] = v[1]; vec[2] = v[2]; }
55 SbVec3f(
float x,
float y,
float z) { vec[0] = x; vec[1] = y; vec[2] = z; }
62 SbVec3f &
setValue(
const float v[3]) { vec[0] = v[0]; vec[1] = v[1]; vec[2] = v[2];
return *
this; }
63 SbVec3f &
setValue(
float x,
float y,
float z) { vec[0] = x; vec[1] = y; vec[2] = z;
return *
this; }
73 const float *
getValue(
void)
const {
return vec; }
74 void getValue(
float & x,
float & y,
float & z)
const { x = vec[0]; y = vec[1]; z = vec[2]; }
76 float & operator [] (
int i) {
return vec[i]; }
77 const float & operator [] (
int i)
const {
return vec[i]; }
79 SbBool equals(
const SbVec3f & v,
float tolerance)
const;
81 float dot(
const SbVec3f & v)
const {
return vec[0] * v[0] + vec[1] * v[1] + vec[2] * v[2]; }
82 SbVec3f getClosestAxis(
void)
const;
83 float length(
void)
const;
84 float sqrLength(
void)
const {
return vec[0] * vec[0] + vec[1] * vec[1] + vec[2] * vec[2]; }
85 float normalize(
void);
86 void negate(
void) { vec[0] = -vec[0]; vec[1] = -vec[1]; vec[2] = -vec[2]; }
88 SbVec3f & operator *= (
float d) { vec[0] *= d; vec[1] *= d; vec[2] *= d;
return *
this; }
89 SbVec3f & operator /= (
float d) { SbDividerChk(
"SbVec3f::operator/=(float)", d);
return operator *= (1.0f / d); }
90 SbVec3f & operator += (
const SbVec3f & v) { vec[0] += v[0]; vec[1] += v[1]; vec[2] += v[2];
return *
this; }
91 SbVec3f & operator -= (
const SbVec3f & v) { vec[0] -= v[0]; vec[1] -= v[1]; vec[2] -= v[2];
return *
this; }
92 SbVec3f operator - (
void)
const {
return SbVec3f(-vec[0], -vec[1], -vec[2]); }
95 SbBool fromString(
const SbString & str);
97 void print(FILE * fp)
const;
105 SbVec3f val(v); val *= d;
return val;
109 SbVec3f val(v); val *= d;
return val;
113 SbDividerChk(
"operator/(SbVec3f,float)", d);
114 SbVec3f val(v); val /= d;
return val;
118 SbVec3f v(v1); v += v2;
return v;
122 SbVec3f v(v1); v -= v2;
return v;
126 return ((v1[0] == v2[0]) && (v1[1] == v2[1]) && (v1[2] == v2[2]));
133 #endif // !COIN_SBVEC3F_H SbVec3f(const SbVec3d &v)
Definition: SbVec3f.h:56
SbVec3f(void)
Definition: SbVec3f.h:53
const float * getValue(void) const
Definition: SbVec3f.h:73
The SbVec3d class is a 3 dimensional vector with double precision floating point coordinates.This vector class provides storage for a 3 dimensional double precision floating point vector aswell as simple floating point arithmetic operations.
Definition: SbVec3d.h:50
SbVec3f(float x, float y, float z)
Definition: SbVec3f.h:55
float sqrLength(void) const
Definition: SbVec3f.h:84
void getValue(float &x, float &y, float &z) const
Definition: SbVec3f.h:74
SbVec3f(const SbVec3i32 &v)
Definition: SbVec3f.h:59
SbVec3f(const float v[3])
Definition: SbVec3f.h:54
The SbVec3s class is a 3 dimensional vector with short integer coordinates.This vector class provides...
Definition: SbVec3s.h:51
SbVec3f(const SbVec3s &v)
Definition: SbVec3f.h:58
The SbVec3f class is a 3 dimensional vector with floating point coordinates.This vector class is used...
Definition: SbVec3f.h:51
float dot(const SbVec3f &v) const
Definition: SbVec3f.h:81
SbVec3f & setValue(const float v[3])
Definition: SbVec3f.h:62
SbVec3f(const SbVec3b &v)
Definition: SbVec3f.h:57
SbVec3f & setValue(float x, float y, float z)
Definition: SbVec3f.h:63
void negate(void)
Definition: SbVec3f.h:86
Definition: SbVec3i32.h:48
The SbPlane class represents a plane in 3D space.SbPlane is used by many other classes in Coin...
Definition: SbPlane.h:43
The SbString class is a string class with convenience functions for string operations.This is the class used for storing and working with character strings. It automatically takes care of supporting all the "bookkeeping" tasks usually associated with working with character strings, like memory allocation and deallocation etc.
Definition: SbString.h:52