MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / setTransformAndEye

Method setTransformAndEye

Engine/source/terrain/terrCellMaterial.cpp:178–220  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

176}
177
178void TerrainCellMaterial::setTransformAndEye( const MatrixF &modelXfm,
179 const MatrixF &viewXfm,
180 const MatrixF &projectXfm,
181 F32 farPlane )
182{
183 PROFILE_SCOPE( TerrainCellMaterial_SetTransformAndEye );
184
185 MatrixF modelViewProj = projectXfm * viewXfm * modelXfm;
186
187 MatrixF invViewXfm( viewXfm );
188 invViewXfm.inverse();
189 Point3F eyePos = invViewXfm.getPosition();
190
191 MatrixF invModelXfm( modelXfm );
192 invModelXfm.inverse();
193
194 Point3F objEyePos = eyePos;
195 invModelXfm.mulP( objEyePos );
196
197 VectorF vEye = invViewXfm.getForwardVector();
198 vEye.normalize( 1.0f / farPlane );
199
200 mConsts->setSafe(mModelViewProjConst, modelViewProj);
201
202 if (mViewToObjConst->isValid() || mWorldViewOnlyConst->isValid())
203 {
204 MatrixF worldViewOnly = viewXfm * modelXfm;
205
206 mConsts->setSafe(mWorldViewOnlyConst, worldViewOnly);
207
208 if (mViewToObjConst->isValid())
209 {
210 worldViewOnly.affineInverse();
211 mConsts->set(mViewToObjConst, worldViewOnly);
212 }
213 }
214
215 mConsts->setSafe(mEyePosWorldConst, eyePos);
216 mConsts->setSafe(mEyePosConst, objEyePos);
217 mConsts->setSafe(mObjTransConst, modelXfm);
218 mConsts->setSafe(mWorldToObjConst, invModelXfm);
219 mConsts->setSafe(mVEyeConst, vEye);
220}
221
222TerrainCellMaterial* TerrainCellMaterial::getDeferredMat()
223{

Callers 2

renderMethod · 0.80
renderMethod · 0.80

Calls 8

mulPMethod · 0.80
inverseMethod · 0.45
getPositionMethod · 0.45
getForwardVectorMethod · 0.45
normalizeMethod · 0.45
setSafeMethod · 0.45
isValidMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected