VPlane

From Valve Developer Community
< De
Jump to navigation Jump to search
English (en)Deutsch (de)Translate (Translate)

VPlane ist eine C++-Klasse, die eine andlose 2-dimensionale Oberfläche repräsentiert.

Jede VPlane enthält einen normalisierten(en) Vector(en), der die Richtung (m_Normal) bestimmt und einen vec_t(en), der die Distanz zum aktuellen Ursprung(en) (m_Dist) bestimmt.

VPlane mit 2 verschiedenen Offset-Werten
Tip.pngTipp:m_Dist kann auch negativ sein.

Memberfunktionen

vec_t(en) DistTo(Vector(en) point)
Die distanz zwischen dem gegebenen Punkt und seinem nächsten Punkt auf der Ebene. Positiv, wenn auf der Vorderseite, Negativ auf der Rückseite.
SideType GetPointSide(Vector point, vec_t epsilon = 0.01f)
Führt ein DistTo() aus und wertet das Ergebnis aus. der Optionale epsilon-Wert bestimmt eine unsigned(en)-Schwelle, innerhalb derer der zurückgelieferte Wert als SIDE_ON betrachtet wird.
SideType ist eine redifinierter int(en), der definierte (#define) Werte von SIDE_FRONT, SIDE_BACK und SIDE_ON hat.
SideType GetPointSideExact(Vector point)
Wie oben, nur ohne epsilon und der Annahme, dass 0 hinter der Ebene liegt.
VPlane Flip()
Liefert eine neue VPlane, deren m_Dist und m_Normal invertiert sind. Ändert nicht die Werte der gegebenen VPlane (aber this = Flip() würde es).
Vector(en) GetPointOnPlane()
Liefert den Punkt, der am nahesten zum aktuellen Ursprung(en) liegt.
Vector SnapPointToPlane(const Vector &point)
Liefert einen neuen Vektor, der den nahesten Punkt auf der Ebene zum gegebenen vektor darstellt.