next up previous contents
Next: Metode Up: A.8 vec3 Previous: A.8 vec3 Vsebina: contents

Definicija

class vec3
{
protected:

double n[3];

public:

//Konstruktorji

vec3 ();
vec3 (const double x, const double y, const double z);
vec3 (const double d);
vec3 (const vec3 & v); //kopija
vec3 (const vec2 & v); //konverzija v2 v v3
vec3 (const vec2 & v, double d); //konverzija v2 v v3
vec3 (const vec4 & v); //konverzija v4 v v3
vec3 (const vec4 & v, int dropAxis); //konverzija v4 v v3

// Prireditveni operatorji

vec3 & operator = (const vec3 & v); //prireditev vektorja vec3
vec3 & operator += (const vec3 & v); //pristevanje vektorja vec3
vec3 & operator -= (const vec3 & v); //zmanjsanje za vec3
vec3 & operator *= (const double d); //mnozenje s konstanto
vec3 & operator /= (const double d); //deljenje s konstanto
double &operator[] (int i); //indeks

// Posebne funkcije

double length (); //dolzina vec3
double length2 (); //kvadrat dolzine vec3
vec3 & normalize (); //normala vec3
vec3 & apply (V_FCT_PTR fct); //apliciraj funkcijo na komponente

// Prijatelji

friend vec3 operator - (const vec3 & v); //-v1
friend vec3 operator + (const vec3 & a, const vec3 & b); //v1 + v2
friend vec3 operator - (const vec3 & a, const vec3 & b); //v1 - v2
friend vec3 operator * (const vec3 & a, const double d); //v1 * 3.0
friend vec3 operator * (const double d, const vec3 & a); //3.0 * v1
friend vec3 operator * (const mat4 & a, const vec3 & v); //M.v
friend vec3 operator * (const vec3 & v, mat4 & a); //v.M
friend double operator *(const vec3 & a, const vec3 & b); //skalarni
friend vec3 operator / (const vec3 & a, const double d); //v1 / 3.0
friend vec3 operator ^& (const vec3 a, const vec3 & b); //vekt. produkt
friend int operator == (const vec3 & a, const vec3 & b); //v1 == v2 ?
friend int operator != (const vec3 & a, const vec3 & b); //v1 != v2 ?
friend ostream & operator << (ostream & s, vec3 & v); //izpis
friend istream & operator >> (istream & s, vec3 & v); //branje
friend void swap ( vec3 & a, vec3 & b); //zamenjaj v1 & v2
friend vec3 min (const vec3 & a, const vec3 & b); //min (v1, v2)
friend vec3 max (const vec3 & a, const vec3 & b); //max (v1, v2)
friend vec3 prod (const vec3 & a, const vec3 & b); //mnozi po koord.

//potrebne deklaracije prijateljev

friend class vec2;
friend class vec4;
friend class mat3;
friend vec2 & v);
//linearna transformacija
friend mat3 & b);
//mnozenje z matriko
};



Copyright © 1995 Leon Kos, Univerza v Ljubljani