Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

12.04.2003, 20:28

Operatoren für Bounding Box und Planes

Ich schreibe mir grad ein paar Klassen und Funktionen für die Kollisionsabfrage. Bis jetzt gibt es eine Klasse für eine Axis Aligned Bounding Box und eine Ebene. Eine Oriented Bounding Box soll noch folgen.

Meine Frage ist nun, was kann man hier für Operatoren einsetzen ??? , und wie würdet ihr die Klassen benennen ???
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

12.04.2003, 20:30

Operatoren: Ich würde sagen, garkeine, oder?
Namen: "AABox" oder "FixedBox" bzw. "OBox" oder "FreeBox"? "Free" dafür, dass man sie frei drehen kann.

3

12.04.2003, 20:52

Bis jetzt hab ich nur den Zuweisungsoperator Implementiert. Speziell für die Ebenen könnte man vieleicht noch die Operatoren < > <= >= in bezug auf Vektoren einbinden.
Dann könnte man sowas machen

Quellcode

1
2
3
4
5
6
7
vector3 v;
plane p;
...
if(v <= p) // Vektor ist vor der Ebene oder genau drauf
{
....
}

Ich weis nur nicht ob das für die User so einleuchtend ist ???

Für eine ViewFrustum Klasse hab ich z.B. denn []-Operator Implementiert. Der den Zugriff auf die 6 Ebenen ermöglicht.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

12.04.2003, 21:03

OK, das mit dem "<" und ">" ist vielleicht ganz praktisch! Muss man eigentlich "<=" auch definieren oder macht der Compiler daraus automatisch "< || =="?
Das mit [] ist auch eine gute Sache, denke ich.
Aber viel mehr wirst Du wohl nicht brauchen. Man kann ja schlecht zwei Boxen addieren oder sowas.

5

12.04.2003, 21:10

Zwei Boxen mit einander zu Addieren währe eigentlich nicht schlecht ;D Währe nur die Frage wie ???

Mit den Ebenen könnte man das auch machen, z.B.
[code]plane p1, p2, p3;
p3 = p2 - p1;[code]
Das würde dann eine Plane erstellen die genau in der Mitte liegt. Nur ich glaub das würde man wohl nie brauchen ;D
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

6

12.04.2003, 21:14

Zwei Boxen zu addieren hieße dann eine Box zu erzeugen, die genau so groß ist, dass sie beide beinhalten kann? Naja, das könnte man vielleicht noch brauchen, ist aber sicher nicht das, was man sich unter einem typischen "+"-Operator vorstellt ;)

Maverick

Frischling

Beiträge: 14

Wohnort: Paderborn

Beruf: IT Fachinformatiker ANW

  • Private Nachricht senden

7

18.04.2003, 19:00

Ich würde lieber eindeutige Methoden Namen bevorzugen anstand der Kryptischen Operatoren, grade dort wo es nicht eindeutig ist. Speed mäßig macht es ja keinen unterschied ob ich jetzt eine Assig Methode habe, oder den „=“ operator überlade.

mfg

Maverick

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

8

18.04.2003, 19:05

Naja, bei "=" geht es ja noch. Aber manche nehmen z.B. bei Vektoren (wo es ja Punkt- und Kreuzprodukt gibt) einmal "*" und einmal "^" oder so. Das finde ich auch doof.

9

18.04.2003, 19:12

Der Stern ist für das Punktprodukt ja noch sehr gut erkennbar. Aber stimmt viele Operatoren sehen etwas Kryptisch aus, und erfüllen nicht wircklich den Zweck für den sieh eigentlich stehen.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Werbeanzeige