# Vec Klassenreferenz

3D-Vektor (Linkshaendiges Koordinatensystem) Mehr ...

`#include <Vec.h>`

Klassendiagramm für Vec:

Aufstellung aller Elemente

## Öffentliche Methoden
| Vec ()
| Konstruktor.
virtual | ~Vec ()
| Destruktor.
| Vec (Vec &v)
| Konstruktor.
| Vec (int x, int y, int z)
| Konstruktor.
| Vec (float x, float y, float z)
| Konstruktor.
void | clear (void)
| Setzt den Vektor auf 0,0,0.
void | set (float x, float y, float z)
| Setter-Methode.
void | set (Vec &v)
| Setter-Methode.
void | add (Vec &v)
| Vektoraddition.
void | sub (Vec &v)
| Vektorsubtraktion.
void | sub (Vec &v1, Vec &v2)
| Vektorsubtraktion: v = v1 - v2.
void | mul (Vec &v)
| Vektormultiplikation.
void | div (float v)
| Vektordivision mit einem Skalar.
void | mul (float d)
| Skalarmultiplikation (velaengert oder verkuerzt den Vektor).
float | length (void)
| Ermittelt die Laenge (Betrag) des Vektors.
float | dot (Vec &v)
| Dotprodukt.
void | cross (Vec &v1, Vec &v2)
| Kreuzprodukt v = v1 x v2.
bool | getZ (Vec &a, Vec &b, float z)
| Berechnet den Punkt zwischen den Vektoren an z.
float | angle (Vec &v)
| Winkel zwischen zwei Vektoren.
int | winkel (void)
| Winkel.
void | transform (Matrix &mat)
| Fuehre die in der Matrix abgelegten Rechenoperationen auf diesen Vektor aus. Achtung: erst Rotation dann Transformation !!!!!!!!
void | normalize (void)
| Normalisieren (Betrag=1).
void | negative (void)
| Negiert den Vektor (Richtungsumkehr).
void | rotateX (int w)
| Rotation um die X-Achse (Richtung der Horizontalen) Der Winkel wird in Grad angegeben, weil die trigonometrischen Funktionen ueber Tabellen implementiert sind (Performanz!) Fuer w > 0: Neigung nach unten.
void | rotateY (int w)
| Rotation um die Y-Achse (Hoehenachse), Fuer w > 0: Bei der Draufsicht (auf den 3D-Raum) wird im Uhrzeigersinn gedreht.
void | rotateZ (int w)
| Rotation um die Z-Achse (zeigt in den Raum hinein) Fuer w>0: Bei der Ansicht von vorne (in den 3D-Raum hinein), wird gegen den Uhrzeigersinn gedreht.
int | getWinkelY (void)
| Gibt den Winkel zurueck.
char * | dump (void)
| Obligatorische Dump-Methode fuer Debugzwecke.
## Öffentliche Attribute
float | m_x
float | m_y
float | m_z

## Ausführliche Beschreibung

3D-Vektor (Linkshaendiges Koordinatensystem)

Kamerasicht: x zeigt nach RECHTS y zeigt nach OBEN z zeigt vom Betrachter weg (in die TIEFE)

Draufsicht auf die Map: x zeigt nach RECHTS (OSTEN) y zeigt in die HOEHE (NORDEN) z zeigt zum Betrachter (nach OBEN)

## Beschreibung der Konstruktoren und Destruktoren

Vec::Vec | ( |  | ) |

Konstruktor.

Vec::~Vec | ( |  | ) | `[virtual]`

Destruktor.

Vec::Vec | ( | Vec & | v | ) |

Konstruktor.

Parameter:

  | v | Vektor

Vec::Vec | ( | int | x,
|  | int | y,
|  | int | z |
| ) |  |  |

Konstruktor.

Parameter:

  | x | X-Koordinate
  | y | Y-Koordinate
  | z | Z-Koordinate

Vec::Vec | ( | float | x,
|  | float | y,
|  | float | z |
| ) |  |  |

Konstruktor.

Parameter:

  | x | X-Koordinate
  | y | Y-Koordinate
  | z | Z-Koordinate

## Dokumentation der Elementfunktionen

void Vec::clear | ( | void |  | ) |

Setzt den Vektor auf 0,0,0.

void Vec::set | ( | float | x,
|  | float | y,
|  | float | z |
| ) |  |  |

Setter-Methode.

Parameter:

  | x | X-Koordinate
  | y | Y-Koordinate
  | z | Z-Koordinate

void Vec::set | ( | Vec & | v | ) |

Setter-Methode.

Parameter:

  | v | Vektor

Erneute Implementation in Vertex.

void Vec::add | ( | Vec & | v | ) |

Vektoraddition.

Parameter:

  | v | Vektor

void Vec::sub | ( | Vec & | v | ) |

Vektorsubtraktion.

Parameter:

  | v | Vektor

void Vec::sub | ( | Vec & | v1,
|  | Vec & | v2 |
| ) |  |  |

Vektorsubtraktion: v = v1 - v2.

Parameter:

  | v1 | Vektor
  | v2 | Vektor

void Vec::mul | ( | Vec & | v | ) |

Vektormultiplikation.

Parameter:

  | v | Vektor

void Vec::div | ( | float | v | ) |

Vektordivision mit einem Skalar.

Parameter:

  | v | float-Wert

void Vec::mul | ( | float | d | ) |

Skalarmultiplikation (velaengert oder verkuerzt den Vektor).

Parameter:

  | d | float Wert

float Vec::length | ( | void |  | ) |

Ermittelt die Laenge (Betrag) des Vektors.

Rückgabe:
  Laenge, bzw. Distanz zum Ursprung

float Vec::dot | ( | Vec & | v | ) |

Dotprodukt.

Parameter:

  | v | Vektor

void Vec::cross | ( | Vec & | v1,
|  | Vec & | v2 |
| ) |  |  |

Kreuzprodukt v = v1 x v2.

Parameter:

  | v1 | Vektor #1
  | v2 | Vektor #2

bool Vec::getZ | ( | Vec & | a,
|  | Vec & | b,
|  | float | z |
| ) |  |  |

Berechnet den Punkt zwischen den Vektoren an z.

Parameter:

  | a | Startpunkt, bzw. Startvektor
  | b | Startpunkt, bzw. Startvektor
  | z | Startpunkt, bzw. Startvektor

Rückgabe:
  true-->Es gibt einen Scnittpunkt mit z false-->Er gibt keinen Schnittpunkt mit z

float Vec::angle | ( | Vec & | v | ) |

Winkel zwischen zwei Vektoren.

Parameter:

  | v | Vektor

Rückgabe:
  Winkel

int Vec::winkel | ( | void |  | ) |

Winkel.

Rückgabe:
  Winkel

void Vec::transform | ( | Matrix & | mat | ) |

Fuehre die in der Matrix abgelegten Rechenoperationen auf diesen Vektor aus. Achtung: erst Rotation dann Transformation !!!!!!!!

Parameter:

  | mat | Matrix

void Vec::normalize | ( | void |  | ) |

Normalisieren (Betrag=1).

void Vec::negative | ( | void |  | ) |

Negiert den Vektor (Richtungsumkehr).

void Vec::rotateX | ( | int | w | ) |

Rotation um die X-Achse (Richtung der Horizontalen) Der Winkel wird in Grad angegeben, weil die trigonometrischen Funktionen ueber Tabellen implementiert sind (Performanz!) Fuer w > 0: Neigung nach unten.

Parameter:

  | w | Winkel

void Vec::rotateY | ( | int | w | ) |

Rotation um die Y-Achse (Hoehenachse), Fuer w > 0: Bei der Draufsicht (auf den 3D-Raum) wird im Uhrzeigersinn gedreht.

Parameter:

  | w | Winkel

void Vec::rotateZ | ( | int | w | ) |

Rotation um die Z-Achse (zeigt in den Raum hinein) Fuer w>0: Bei der Ansicht von vorne (in den 3D-Raum hinein), wird gegen den Uhrzeigersinn gedreht.

Parameter:

  | w | Winkel

int Vec::getWinkelY | ( | void |  | ) |

Gibt den Winkel zurueck.

Rückgabe:
  Winkel

char * Vec::dump | ( | void |  | ) |

Obligatorische Dump-Methode fuer Debugzwecke.

Rückgabe:
  String

## Dokumentation der Datenelemente

float Vec::m_x

float Vec::m_y

float Vec::m_z

Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:

- D:/Project/engine3d/cplusplus/src/math3d/Vec.h
- D:/Project/engine3d/cplusplus/src/math3d/Vec.cpp