Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Diff of /branches/pure-cfg/src/lib/diderot.c
ViewVC logotype

Diff of /branches/pure-cfg/src/lib/diderot.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 439, Tue Oct 19 22:38:54 2010 UTC revision 443, Thu Oct 21 00:05:15 2010 UTC
# Line 65  Line 65 
65                                   m[12], m[13], m[14]));                                   m[12], m[13], m[14]));
66    
67  }  }
68    
69    /*! \brief compute the inverse of \arg m, storing the result in \arg i.
70     *  \param m the matrix to invert
71     *  \param i the inverted matrix
72     */
73  void InvertM4x4 (Matrix4x4_t i, Matrix4x4_t m)  void InvertM4x4 (Matrix4x4_t i, Matrix4x4_t m)
74  {  {
75          Diderot_real_t scale = 1.0 / DetM4x4(m);          Diderot_real_t scale = 1.0 / DetM4x4(m);
# Line 129  Line 134 
134                           m[ 4],m[ 5],m[ 6],                           m[ 4],m[ 5],m[ 6],
135                           m[12],m[13],m[14]) * scale;                           m[12],m[13],m[14]) * scale;
136    
137            i[15] =  DetM3x3(m[ 0],m[ 1],m[ 2],
138                             m[ 4],m[ 5],m[ 6],
139                             m[ 8],m[ 9],m[10]) * scale;
140    
141    }
142    
143    /*! \brief compute the inverse transpose of \arg m, storing the result in \arg i.
144     *  \param m the matrix to invert
145     *  \param i the inverted matrix
146     */
147    void InvertTransposeM4x4 (Matrix4x4_t i, Matrix4x4_t m)
148    {
149            Diderot_real_t scale = 1.0 / DetM4x4(m);
150    
151            i[0] = DetM3x3(m[5],m[ 6],m[ 7],
152                           m[ 9],m[10],m[11],
153                           m[13],m[14],m[15]) * scale;
154    
155            i[ 4] = -DetM3x3(m[ 1],m[ 2],m[ 3],
156                             m[ 9],m[10],m[11],
157                             m[13],m[14],m[15]) * scale;
158    
159            i[ 8] =  DetM3x3(m[ 1],m[ 2],m[ 3],
160                             m[ 5],m[ 6],m[ 7],
161                             m[13],m[14],m[15]) * scale;
162    
163            i[12] = -DetM3x3(m[ 1],m[ 2],m[ 3],
164                             m[ 5],m[ 6],m[ 7],
165                             m[ 9],m[10],m[11]) * scale;
166    
167            i[ 1] = -DetM3x3(m[ 4],m[ 6],m[ 7],
168                             m[ 8],m[10],m[11],
169                             m[12],m[14],m[15]) * scale;
170    
171            i[ 5] =  DetM3x3(m[ 0],m[ 2],m[ 3],
172                             m[ 8],m[10],m[11],
173                             m[12],m[14],m[15]) * scale;
174    
175            i[ 9] = -DetM3x3(m[ 0],m[ 2],m[ 3],
176                             m[ 4],m[ 6],m[ 7],
177                             m[12],m[14],m[15]) * scale;
178    
179            i[ 7] =  DetM3x3(m[ 0],m[ 2],m[ 3],
180                             m[ 4],m[ 6],m[ 7],
181                             m[ 8],m[10],m[11]) * scale;
182    
183            i[ 2] =  DetM3x3(m[ 4],m[ 5],m[ 7],
184                             m[ 8],m[ 9],m[11],
185                             m[12],m[13],m[15]) * scale;
186    
187            i[ 6] = -DetM3x3(m[ 0],m[ 1],m[ 3],
188                             m[ 8],m[ 9],m[11],
189                             m[12],m[13],m[15]) * scale;
190    
191            i[10] =  DetM3x3(m[ 0],m[ 1],m[ 3],
192                             m[ 4],m[ 5],m[ 7],
193                             m[12],m[13],m[15]) * scale;
194    
195            i[14] = -DetM3x3(m[ 0],m[ 1],m[ 3],
196                             m[ 4],m[ 5],m[ 7],
197                             m[ 8],m[ 9],m[11]) * scale;
198    
199            i[ 3] = -DetM3x3(m[ 4],m[ 5],m[ 6],
200                             m[ 8],m[ 9],m[10],
201                             m[12],m[13],m[14]) * scale;
202    
203            i[ 7] =  DetM3x3(m[ 0],m[ 1],m[ 2],
204                             m[ 8],m[ 9],m[10],
205                             m[12],m[13],m[14]) * scale;
206    
207            i[11] = -DetM3x3(m[ 0],m[ 1],m[ 2],
208                             m[ 4],m[ 5],m[ 6],
209                             m[12],m[13],m[14]) * scale;
210    
211          i[15] =  DetM3x3(m[ 0],m[ 1],m[ 2],          i[15] =  DetM3x3(m[ 0],m[ 1],m[ 2],
212                           m[ 4],m[ 5],m[ 6],                           m[ 4],m[ 5],m[ 6],
213                           m[ 8],m[ 9],m[10]) * scale;                           m[ 8],m[ 9],m[10]) * scale;

Legend:
Removed from v.439  
changed lines
  Added in v.443

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0