Index: Include/abgl.ab
===================================================================
--- Include/abgl.ab	(revision 102)
+++ Include/abgl.ab	(revision 117)
@@ -43,4 +43,8 @@
 		This.Y=y
 	End Sub
+	Sub Vector2f(Vec As Vector2d)
+		This.X=Vec.X As GLfloat
+		This.Y=Vec.Y As GLfloat
+	End Sub
 
 Public /* destructor */
@@ -75,6 +79,5 @@
 /*	Function Operator * (SrcVec As Vector2f) As Vector2f
 		Return Dot(This,SrcVec)
-	End Function
-*/
+	End Function*/
 	Function Operator * (Src As GLint) As Vector2f
 		Dim ret As Vector2f(This.X*Src,This.Y*Src)
@@ -102,16 +105,23 @@
 	End Function
 
+	Function Operator == (Vec As Vector2f) As Boolean
+		If This.X=Vec.X and This.Y=Vec.Y Then
+			Return True
+		Else
+			Return False
+		End If
+	End Function
 
 Public /* method */
-	Static Function Add(SrcVec1 As Vector2f, SrcVec2 As Vector2f) As Vector2f
+	Function Add(SrcVec1 As Vector2f, SrcVec2 As Vector2f) As Vector2f
 		Dim ret As Vector2f(SrcVec1.X+SrcVec2.X,SrcVec1.Y+SrcVec2.Y)
 		Return ret
 	End Function
-	Static Function Distance(SrcVec1 As Vector2f, SrcVec2 As Vector2f) As GLfloat
+	Function Distance(SrcVec1 As Vector2f, SrcVec2 As Vector2f) As GLfloat
 		Dim ret As Vector2f
 		ret=SrcVec1-SrcVec2
 		Return ret.Magnitude
 	End Function
-	Static Function Dot(SrcVec1 As Vector2f, SrcVec2 As Vector2f) As GLfloat
+	Function Dot(SrcVec1 As Vector2f, SrcVec2 As Vector2f) As GLfloat
 		Return SrcVec1.X*SrcVec2.X+SrcVec1.Y*SrcVec2.Y
 	End Function
@@ -127,5 +137,5 @@
 		Return ret
 	End Function
-	Static Function Substract(SrcVec1 As Vector2f, SrcVec2 As Vector2f) As Vector2f
+	Function Substract(SrcVec1 As Vector2f, SrcVec2 As Vector2f) As Vector2f
 		Dim ret As Vector2f(SrcVec1.X-SrcVec2.X,SrcVec1.Y-SrcVec2.Y)
 		Return ret
@@ -154,4 +164,8 @@
 		xy.y=y
 	End Sub
+	Sub Vector2d(Vec As Vector2f)
+		This.X=Vec.X As GLdouble
+		This.Y=Vec.Y As GLdouble
+	End Sub
 
 Public /* destructor */
@@ -179,13 +193,12 @@
 	End Sub
 	Function Operator + (SrcVec As Vector2d) As Vector2d
-		Return Add(This,SrcVec2)
+		Return Add(This,SrcVec)
 	End Function
 	Function Operator - (SrcVec As Vector2d) As Vector2d
-		Return Substract(This,SrcVec2)
+		Return Substract(This,SrcVec)
 	End Function
 /*	Function Operator * (SrcVec As Vector2d) As Vector2d
-		Return Dot(This,SrcVec2)
+		Return Dot(This,SrcVec)
 	End Function*/
-
 	Function Operator * (Src As GLint) As Vector2d
 		Dim ret As Vector2d(This.X*Src,SrcVec.Y*Src)
@@ -211,4 +224,12 @@
 		Dim ret As Vector2d(This.X/Src,SrcVec.Y/Src)
 		Return ret
+	End Function
+
+	Function Operator == (Vec As Vector2d) As Boolean
+		If This.X=Vec.X and This.Y=Vec.Y Then
+			Return True
+		Else
+			Return False
+		End If
 	End Function
 
@@ -280,4 +301,9 @@
 		xyz.z=z
 	End Sub
+	Sub Vector3f(Vec As Vector3d)
+		This.X=Vec.X As GLfloat
+		This.Y=Vec.Y As GLfloat
+		This.Z=Vec.Z As GLfloat
+	End Sub
 
 Public /* destructor */
@@ -348,4 +374,11 @@
 	End Function
 
+	Function Operator == (Vec As Vector3f) As Boolean
+		If This.X=Vec.X and This.Y=Vec.Y and This.Z=Vec.Z Then
+			Return True
+		Else
+			Return False
+		End If
+	End Function
 
 Public /* method */
@@ -406,4 +439,9 @@
 		xyz.z=z
 	End Sub
+	Sub Vector3d(Vec As Vector3f)
+		This.X=Vec.X As GLdouble
+		This.Y=Vec.Y As GLdouble
+		This.Z=Vec.Z As GLdouble
+	End Sub
 
 Public /* destructor */
@@ -474,4 +512,12 @@
 		Dim ret As Vector3d(This.X/Src,This.Y/Src,This.Z/Src)
 		Return ret
+	End Function
+
+	Function Operator == (Vec As Vector3d) As Boolean
+		If This.X=Vec.X and This.Y=Vec.Y and This.Z=Vec.Z Then
+			Return True
+		Else
+			Return False
+		End If
 	End Function
 
@@ -541,4 +587,9 @@
 		rgb.g = g
 		rgb.b = b
+	End Sub
+	Sub Color3f(color As Color3d)
+		rgba.r = color.R As GLfloat
+		rgba.g = color.G As GLfloat
+		rgba.b = color.B As GLfloat
 	End Sub
 
@@ -667,4 +718,9 @@
 		rgb.b = b
 	End Sub
+	Sub Color3d(color As Color3f)
+		rgba.r = color.R As GLdouble
+		rgba.g = color.G As GLdouble
+		rgba.b = color.B As GLdouble
+	End Sub
 
 Public /* destructor */
@@ -799,4 +855,10 @@
 		rgba.a = a
 	End Sub
+	Sub Color4f(color As Color4d)
+		rgba.r = color.R As GLfloat
+		rgba.g = color.G As GLfloat
+		rgba.b = color.B As GLfloat
+		rgba.a = color.A As GLfloat
+	End Sub
 
 Public /* destructor */
@@ -875,5 +937,5 @@
 		Return ret
 	End Function
-	Static Function FromARGB(a As GLubyte, r As GLubyte, g As GLubyte, b As GLubyte) As Color4f
+	Static Function FromArgb(a As GLubyte, r As GLubyte, g As GLubyte, b As GLubyte) As Color4f
 		Dim ret As Color4f(r/255,g/255,b/255,a/255)
 		Return ret
@@ -938,4 +1000,10 @@
 		rgba.a = a
 	End Sub
+	Sub Color4d(color As Color4f)
+		rgba.r = color.R As GLdouble
+		rgba.g = color.G As GLdouble
+		rgba.b = color.B As GLdouble
+		rgba.a = color.A As GLdouble
+	End Sub
 
 Public /* destructor */
@@ -1014,5 +1082,5 @@
 		Return ret
 	End Function
-	Static Function FromARGB(a As GLubyte, r As GLubyte, g As GLubyte, b As GLubyte) As Color4d
+	Static Function FromArgb(a As GLubyte, r As GLubyte, g As GLubyte, b As GLubyte) As Color4d
 		Dim ret As Color4d(r/255,g/255,b/255,a/255)
 		Return ret
