Need Opinion on this please

BlitzMax Forums/BlitzMax Programming/Need Opinion on this please

Chroma(Posted 2006) [#1]
I've been looking at way to make my vector lib more versatile. Take a look at this vector method and give me your opinion on any speed issues it might create. It basically lets you write vector addition in 2 different ways. If no v2 vector is specified then it ignores it etc.

' Purpose: Add Vectors
' Returns: Self
' Example 1: v1=v1+v2 would be written v1.Add( v2 )
' Example 2: v1=v2+v3 would be written v1.Add( v2, v3)
Method Add( v1:TVector3, v2:TVector3 )
   If v2 
      self.x = v1.x + v2.x
      self.y = v1.y + v2.y
      self.z = v1.z + v2.z
   else
      self.x :+ v1.x
      self.y :+ v1.y
      self.z :+ v1.z
   endif
End Function



Dreamora(Posted 2006) [#2]
Write 2 different methods for that.
As vector math is speed critical, any unneeded IF shouldn't be present.


Chroma(Posted 2006) [#3]
True. If you were calling Add a few hundred times a cycle I guess that IF would add up pretty fast.


H&K(Posted 2006) [#4]
Method Add( v1:TVector3, v2:TVector3 = NULL)


Defoc8(Posted 2006) [#5]
Another solution is to write your maths code in C++..

class vec3{
public:
float x,y,z;
void Add(vec3 *v1,vec3 *v2){x=v1->x+v2->x; y=v1->y+v2->y; z=v1->z+v2->z;}
void Add(vec3 *v1){x+=v1->x; y+=v1->y; z+=v1->z;}
};


ignoring any typos, it shouldnt be too hard to get
something like this work.. might even be jst as well
locating an existing maths lib/physics lib..etc