Mark Sibly 8 роки тому
батько
коміт
a01a9dd4a1

+ 4 - 0
modules/std/geom/affinemat4.monkey2

@@ -115,6 +115,10 @@ Struct AffineMat4<T>
 		Return Self * Scaling( sv )
 	End
 	
+	Method Scale:AffineMat4f( scaling:T )
+		Return Self * Scaling( scaling )
+	End
+	
 	#rem monkeydoc Creates a translation matrix.
 	#end
 	Function Translation:AffineMat4( tv:Vec3<T> )

+ 13 - 10
modules/std/geom/mat3.monkey2

@@ -17,23 +17,26 @@ Struct Mat3<T>
 		i.x=1;j.y=1;k.z=1
 	End
 	
-	Method New( i:Vec3<T>,j:Vec3<T>,k:Vec3<T> )
-		Self.i=i; Self.j=j; Self.k=k
-	End
-	
-	Method New( q:Quat<T> )
-	End
-	
 	Method New( ix:Float,jy:Float,kz:Float )
 		i.x=ix; j.y=jy; k.z=kz
 	End
 	
+	Method New( i:Vec3<T>,j:Vec3<T>,k:Vec3<T> )
+		Self.i=i; Self.j=j; Self.k=k
+	End
+	
 	Method New( ix:T,iy:T,iz:T,jx:T,jy:T,jz:T,kx:T,ky:T,kz:T )
 		i.x=ix; i.y=iy; i.z=iz
 		j.x=jx; j.y=jy; j.z=jz
 		k.x=kx; k.y=ky; k.z=kz
 	End
 	
+	Method New( m:Mat4<T> )
+		i.x=m.i.x ; i.y=m.i.y ; i.z=m.i.z
+		j.x=m.j.x ; j.y=m.j.y ; j.z=m.j.z
+		k.x=m.k.x ; k.y=m.k.y ; k.z=m.k.z
+	End
+	
 	Operator To<C>:Mat3<C>()
 		Return New Mat3<C>( i,j,k )
 	End
@@ -65,9 +68,9 @@ Struct Mat3<T>
 			i.x*m.k.x+j.x*m.k.y+k.x*m.k.z, i.y*m.k.x+j.y*m.k.y+k.y*m.k.z, i.z*m.k.x+j.z*m.k.y+k.z*m.k.z )
 	End
 	
-	Operator*:Mat3( q:Quat<T> )
-		Return Self * New Mat3( q )
-	End
+'	Operator*:Mat3( q:Quat<T> )
+'		Return Self * New Mat3( q )
+'	End
 	
 	Operator*:Vec3<T>( v:Vec3<T> )
 		Return New Vec3<T>( i.x*v.x+j.x*v.y+k.x*v.z,i.y*v.x+j.y*v.y+k.y*v.z,i.z*v.x+j.z*v.y+k.z*v.z )

+ 8 - 0
modules/std/geom/mat4.monkey2

@@ -38,6 +38,14 @@ Struct Mat4<T>
 		i.XYZ=m.m.i ; j.XYZ=m.m.j ; k.XYZ=m.m.k ; t.XYZ=m.t ; t.w=1
 	End
 	
+	Operator To<C>:Mat4<C>()
+		Return New Mat4<C>( i,j,k,t )
+	End
+	
+	Operator To:String()
+		Return "Mat4("+i+","+j+","+k+","+t+")"
+	End
+	
 	Operator*:Mat4( m:Mat4 )
 		Local r:Mat4
 		

+ 7 - 1
modules/std/graphics/color.monkey2

@@ -186,12 +186,18 @@ Namespace std.graphics
 		Self.a=a
 	End
 	
-	#rem monkeydoc Converts the color to printable string.
+	#rem monkeydoc Converts the color to a printable string.
 	#end
 	Operator To:String()
 		Return "Color("+r+","+g+","+b+","+a+")"
 	End
 	
+	#rem monkeydoc Converts the color to float 4 vector.
+	#end
+	Operator To:geom.Vec4f()
+		Return New Vec4f( r,g,b,a )
+	End
+	
 	#rem monkeydoc The Red color component.
 	#end
 	Property R:Float()