예제 #1
0
 public static Matrix4x4 AsTextureTransform(this IRealBounds5D bounds)
 {
     return(new Matrix4x4
     {
         M11 = bounds.UBounds.Length,
         M22 = bounds.VBounds.Length,
         M41 = bounds.UBounds.Min,
         M42 = bounds.VBounds.Min
     });
 }
예제 #2
0
 public static SharpDX.Matrix ToMatrix2(this IRealBounds5D bounds)
 {
     return(new SharpDX.Matrix
     {
         M11 = bounds.UBounds.Length,
         M22 = bounds.VBounds.Length,
         M41 = bounds.UBounds.Min,
         M42 = bounds.VBounds.Min,
         M44 = 1
     });
 }
예제 #3
0
        public CompressedVertex(IVertex source, IRealBounds5D bounds)
        {
            this.source = source;
            this.bounds = bounds;

            var transform3D = bounds.AsTransform();
            var transform2D = bounds.AsTextureTransform();

            Position  = source.Position.Select(v => (IXMVector) new TransformedVector3D(v, transform3D, true)).ToArray();
            TexCoords = source.TexCoords.Select(v => (IXMVector) new TransformedVector2D(v, transform2D, true)).ToArray();
        }
예제 #4
0
 public static Matrix4x4 AsTransform(this IRealBounds5D bounds)
 {
     return(new Matrix4x4
     {
         M11 = bounds.XBounds.Length,
         M22 = bounds.YBounds.Length,
         M33 = bounds.ZBounds.Length,
         M41 = bounds.XBounds.Min,
         M42 = bounds.YBounds.Min,
         M43 = bounds.ZBounds.Min
     });
 }
예제 #5
0
 public static SharpDX.Matrix ToMatrix3(this IRealBounds5D bounds)
 {
     return(new SharpDX.Matrix
     {
         M11 = bounds.XBounds.Length,
         M22 = bounds.YBounds.Length,
         M33 = bounds.ZBounds.Length,
         M41 = bounds.XBounds.Min,
         M42 = bounds.YBounds.Min,
         M43 = bounds.ZBounds.Min,
         M44 = 1
     });
 }