1 #ifndef COIN_SBVEC4US_H 
    2 #define COIN_SBVEC4US_H 
   27 #include <Inventor/SbBasic.h> 
   28 #include <Inventor/system/inttypes.h> 
   30 #include <Inventor/errors/SoDebugError.h> 
   37 class COIN_DLL_API SbVec4us {
 
   40   SbVec4us(
const unsigned short v[4]) { vec[0] = v[0]; vec[1] = v[1]; vec[2] = v[2]; vec[3] = v[3]; }
 
   41   SbVec4us(
unsigned short x, 
unsigned short y, 
unsigned short z, 
unsigned short w) { vec[0] = x; vec[1] = y; vec[2] = z; vec[3] = w; }
 
   42   explicit SbVec4us(
const SbVec4s & v) { setValue(v); }
 
   43   explicit SbVec4us(
const SbVec4ub & v) { setValue(v); }
 
   44   explicit SbVec4us(
const SbVec4ui32 & v) { setValue(v); }
 
   46   SbVec4us & setValue(
const unsigned short v[4]) { vec[0] = v[0]; vec[1] = v[1]; vec[2] = v[2]; vec[3] = v[3]; 
return *
this; }
 
   47   SbVec4us & setValue(
unsigned short x, 
unsigned short y, 
unsigned short z, 
unsigned short w) { vec[0] = x; vec[1] = y; vec[2] = z; vec[3] = w; 
return *
this; }
 
   48   SbVec4us & setValue(
const SbVec4s & v);
 
   49   SbVec4us & setValue(
const SbVec4ub & v);
 
   52   const unsigned short * getValue(
void)
 const { 
return vec; }
 
   53   void getValue(
unsigned short & x, 
unsigned short & y, 
unsigned short & z, 
unsigned short & w)
 const { x = vec[0]; y = vec[1]; z = vec[2]; w = vec[3]; }
 
   55   unsigned short & operator [] (
int i) { 
return vec[i]; }
 
   56   const unsigned short & operator [] (
int i)
 const { 
return vec[i]; }
 
   58   int32_t dot(
const SbVec4us & v)
 const { 
return vec[0] * v[0] + vec[1] * v[1] + vec[2] * v[2] + vec[3] * v[3]; }
 
   61   SbVec4us & operator *= (
int d) { vec[0] *= d; vec[1] *= d; vec[2] *= d; vec[3] *= d; 
return *
this; }
 
   62   SbVec4us & operator *= (
double d);
 
   63   SbVec4us & operator /= (
int d) { SbDividerChk(
"SbVec4us::operator/=(int)", d); vec[0] /= d; vec[1] /= d; vec[2] /= d; vec[3] /= d; 
return *
this; }
 
   64   SbVec4us & operator /= (
double d) { SbDividerChk(
"SbVec4us::operator/=(double)", d); 
return operator *= (1.0 / d); }
 
   65   SbVec4us & operator += (
const SbVec4us & v) { vec[0] += v[0]; vec[1] += v[1]; vec[2] += v[2]; vec[3] += v[3]; 
return *
this; }
 
   66   SbVec4us & operator -= (
const SbVec4us & v) { vec[0] -= v[0]; vec[1] -= v[1]; vec[2] -= v[2]; vec[3] -= v[3]; 
return *
this; }
 
   67   SbVec4us operator - (
void)
 const { SbVec4us v(*
this); v.negate(); 
return v; }
 
   70   unsigned short vec[4];
 
   74 COIN_DLL_API 
inline SbVec4us 
operator * (
const SbVec4us & v, 
int d) {
 
   75   SbVec4us val(v); val *= d; 
return val;
 
   78 COIN_DLL_API 
inline SbVec4us 
operator * (
const SbVec4us & v, 
double d) {
 
   79   SbVec4us val(v); val *= d; 
return val;
 
   82 COIN_DLL_API 
inline SbVec4us 
operator * (
int d, 
const SbVec4us & v) {
 
   83   SbVec4us val(v); val *= d; 
return val;
 
   86 COIN_DLL_API 
inline SbVec4us 
operator * (
double d, 
const SbVec4us & v) {
 
   87   SbVec4us val(v); val *= d; 
return val;
 
   90 COIN_DLL_API 
inline SbVec4us 
operator / (
const SbVec4us & v, 
int d) {
 
   91   SbDividerChk(
"operator/(SbVec4us,int)", d);
 
   92   SbVec4us val(v); val /= d; 
return val;
 
   95 COIN_DLL_API 
inline SbVec4us 
operator / (
const SbVec4us & v, 
double d) {
 
   96   SbDividerChk(
"operator/(SbVec4us,double)", d);
 
   97   SbVec4us val(v); val /= d; 
return val;
 
  100 COIN_DLL_API 
inline SbVec4us 
operator + (
const SbVec4us & v1, 
const SbVec4us & v2) {
 
  101   SbVec4us v(v1); v += v2; 
return v;
 
  104 COIN_DLL_API 
inline SbVec4us 
operator - (
const SbVec4us & v1, 
const SbVec4us & v2) {
 
  105   SbVec4us v(v1); v -= v2; 
return v;
 
  108 COIN_DLL_API 
inline int operator == (
const SbVec4us & v1, 
const SbVec4us & v2) {
 
  109   return ((v1[0] == v2[0]) && (v1[1] == v2[1]) && (v1[2] == v2[2]) && (v1[3] == v2[3]));
 
  112 COIN_DLL_API 
inline int operator != (
const SbVec4us & v1, 
const SbVec4us & v2) {
 
  116 #endif // !COIN_SBVEC4US_H 
int operator!=(const SbBox2d &b1, const SbBox2d &b2)
Definition: SbBox2d.h:92
int operator==(const SbBox2d &b1, const SbBox2d &b2)
Definition: SbBox2d.h:88
Definition: SbVec4ui32.h:37
SbVec2d operator*(const SbVec2d &v, double d)
Definition: SbVec2d.h:82
SbVec2d operator-(const SbVec2d &v1, const SbVec2d &v2)
Definition: SbVec2d.h:99
SbVec2d operator/(const SbVec2d &v, double d)
Definition: SbVec2d.h:90
SbVec2d operator+(const SbVec2d &v1, const SbVec2d &v2)
Definition: SbVec2d.h:95
Definition: SbVec4ub.h:37