Esempio n. 1
0
        /// <summary>
        /// Transforms point p (p.w is presumed 1.0) by matrix m.
        /// Projective transform is performed. Perspective Division is performed.
        /// </summary>
        public static __vmsub1type__ TransformPosProj(__nmtype__ m, __vmsub1type__ p)
        {
            __ftype__ s = (/*# mfields.Take(msub1).ForEach((fr, r) => { */ m.M__msub1____r__ * p.__fr__ /*#}, add);*/ + m.M__msub1____msub1__);

            s = 1 / s;
            return((TransformPos(m, p)) * s);
        }
Esempio n. 2
0
 /// <summary>
 /// Transforms point p (p.w is presumed 1.0) by this matrix.
 /// Projective transform is performed.
 /// </summary>
 public __vmsub1type__ TransformPosProj(__vmsub1type__ p)
 {
     return(TransformDir(p));
 }
Esempio n. 3
0
 //# } else { // n != m
 /// <summary>
 /// Transforms point p (p.w is presumed 1.0) by matrix m.
 /// Projective transform is performed.
 /// </summary>
 public static __vmsub1type__ TransformPosProj(__nmtype__ m, __vmsub1type__ p)
 {
     return(TransformDir(m, p));
 }
Esempio n. 4
0
 /// <summary>
 /// Transforms point p (p.w is presumed 1.0) by this matrix.
 /// Projective transform is performed.
 /// </summary>
 public __vmtype__ TransformPosProjFull(__vmsub1type__ p)
 {
     return(TransformPosProjFull(this, p));
 }
Esempio n. 5
0
 /// <summary>
 /// Transforms point p (p.w is presumed 1.0) by matrix m.
 /// Projective transform is performed.
 /// </summary>
 public static __vmtype__ TransformPosProjFull(__nmtype__ m, __vmsub1type__ p)
 {
     return(new __vmtype__(                                                                                                  /*# m.ForEach(s => { */
                (/*# mfields.Take(msub1).ForEach((fr, r) => { */ m.M__s____r__ * p.__fr__ /*#}, add);*/ + m.M__s____msub1__) /*#}, comma);*/
                ));
 }
Esempio n. 6
0
 /// <summary>
 /// Transforms point p (p.w is presumed 1.0) by transposed version of this matrix.
 /// No projective transform is performed.
 /// </summary>
 public __vmsub1type__ TransposedTransformPos(__vmsub1type__ p)
 {
     return(new __vmsub1type__(                                                                                          /*# msub1.ForEach(s => { */
                /*# mfields.Take(msub1).ForEach((fr, r) => { */ M__r____s__ * p.__fr__ /*# }, add); */ + M__msub1____s__ /*# }, comma); */
                ));
 }
Esempio n. 7
0
 //# if (n == m) {
 /// <summary>
 /// Transforms direction vector v (v.w is presumed 0.0) by transposed version of matrix m.
 /// </summary>
 public static __vmsub1type__ TransposedTransformDir(__nmtype__ m, __vmsub1type__ v)
 {
     return(new __vmsub1type__(                                                          /*# msub1.ForEach(s => { */
                /*# mfields.Take(msub1).ForEach((fr, r) => { */ m.M__r____s__ * v.__fr__ /*# }, add); }, comma); */
                ));
 }