In einen eigenen Namespace sollte die MathLib so oder so
Zumal kann eine Math Engine auch Professionell sein wenn sie nicht OOP ist. Denn ja...auch heute noch kann man mit C Arbeiten
Im prinzip nach ist es eigentlich egal. Und zum anderen hängt es auch oft davon ab was die Funktion macht. Bei Operatoren wie z.B "+" oder "-" mit einem Faktor (also keinen weiteren Vektor) sollten außerhalb geschrieben werden.
Warum, weil z.B. die Addition vector + faktor, für den Compiler, was anderes ist als faktor + vector.
In Operatorform:
|
C-/C++-Quelltext
|
1
2
|
vector4d operator + (const vector4d v, const float f);
vector4d operator + (const float f, const vector4d v);
|
Inerhalb einer Klasse kann man nur den ersten der beiden Operatoren Definieren. Und es sieht blöd aus wenn der zweiten dann außerhalb der Klasse ist.
Bei Funktion sieht es ähnlich aus. Z.B. zur Normalisierung eines Vektors. Wenn ich den aktuellen Vektor Normalisieren will, sollte diese Funktion inerhalb der Klasse stehen. Wenn ich aber eine Normalisierte Version eines Vektors haben will, sollte die außerhalb stehen. Obwohl das auch wieder der Geschmacktssache und den Designvorstellungen unterliegt.
So in etwa verhält es sich dann mit der gesamten MathLib.