Namespace std.geom #rem monkeydoc @hidden #end Alias Linef:Line #rem monkeydoc @hidden #end Struct Line Field o:Vec3 Field d:Vec3 Method New() End Method New( o:Vec3,d:Vec3 ) Self.o=o;Self.d=d End Operator To:String() Return "Line("+o+","+d+")" End Operator-:Line() Return New Line( o,-d ) End Operator+:Line( v:Vec3 ) Return New Line( o+v,d ) End Operator-:Line( v:Vec3 ) Return New Line( o-v,d ) End Operator*:Vec3( time:Double ) Return o+d*time End Method TNearest:Float( p:Vec3 ) Return ( d.Dot( p-o )/d.Dot( d ) ) End Method Nearest:Vec3( p:Vec3 ) Return o+d*( d.Dot( p-o )/d.Dot( d ) ) End End