c_setminmax (ENTITY*)
Setzt die Koordinaten von Bounding-Box und Kollisions-Ellipsoiden der Entity
auf ihre tatsächlichen Proportionen (eine Bounding-Box um all ihre Frames) und setzt die beiden Entity-Flags FAT und NARROW.
Parameter:
ENTITY* - Entity-Pointer.
Modifiziert:
min_xyz, max_xyz, FAT / NARROW
Bemerkungen:
- Wird ein Modell zum ersten Mal geladen, werden dessen Bounding-Boxwerte per Default auf die Werte der Fat- oder Narrow-Standard-Hülle
gesetzt, abhängig von der Größe der Entity. Verwenden Sie
c_setminmax, um die Bounding-Box-Koordinaten auf die korrekte Größe zu setzen, wenn das Modell
kein Actor ist.
- Die Bounding Box kann zur Laufzeit verändert werden, jedoch darf sie
beim Vergrößern nicht in Hindernisse eindringen.
- c_setminmax verwendet die Vertex-Positionen aller Frames des Modells. Um nur Extensionen eines anderen Frames, n,
zu benutzen, rufen Sie stattdessen c_updatehull(my,n) auf.
Während c_setminmax im Wesentlichen frei ist (es wird
nur sehr wenig Zeit zum Updaten der Hüllengröße gebraucht),
kann c_updatehull einige
Zeit zum Ausführen brauchen, denn dabei müssen die Vertices des
angegebenen Frames neu geladen werden. Daher sollten Sie c_updatehull nicht
bei jedem einzelnen Frame aufrufen, sondern nur bei größeren Animationsänderungen
wie beispielsweise einem stehenden Charakter, der nun kniet.
- Bei bones-animierten Modellen verwendet c_setminmax nur die Original-Vertex-Positionen. Es berechnet die animierten Positionen nicht. Sie können im Modell-Editoren eine vergrößerte Bounding-Box angeben, indem Sie Dummiy-Vertices, nicht mit der Mesh verbunden sind, platzieren.
- Um die Bounding-Box manuell zu setzen, setzen Sie die beiden Flags FAT/NARROW und direkt die Vektoren min_x, max_x. Zum Skalieren der Bounding-Box rufen Sie zuerst c_setminmax auf und wenden dann vec_scale auf die min_x, max_x-Vektoren an.
Geschwindigkeit:
Schnell
Beispiel:
action myaction()
{
vec_scale(my.scale_x,0.5); // scale entity to small size
c_setminmax(me); // set my bounding box to my real size
...
Siehe auch:
min_x, max_x, c_updatehull, FAT, NARROW, collision
► Aktuelle Version Online