Quote:Original post by rakoon2Which one is better? I think the 2nd, bcs. a quad is normally used by other higher systems that contain a position.
Hmm. What if it is used by other higher systems that also have a rotation? Or a scale?
I would handle this by doing what you did in the first function, where you just do quad/quad intersection. If the quads are in different coordinate systems you can either add a version of Collides that takes a matrix, which specifies the transform from one system to another, or you can transform the quads yourself.
BTW, the term 'Axis Aligned Bounding Box' is generally used for what you are describing.
Quote:
2.) When should I use static functions? Stroustrup.(spelled wrong) said that you should make as few as possible member functions. ( global in C++, static in C# )
It's less important to adhere to this rule in c# than it was in c++. In c++, every member function would increase the dependence on other classes - you had to have a class defined to use the member function(which meant including the header), but if it was a global function that took the class variable by ref, you only had to pre-declare the class(class blah;).
In c#, the physical organization of your class files isn't as important, due to the 2-pass nature of the compiler. In your specific case, use your instinct - it's more a matter of style.