MCPcopy Create free account
hub / github.com/GarageGames/Torque3D / prepRenderImage

Method prepRenderImage

Engine/source/T3D/components/render/meshComponent.cpp:269–310  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

267}
268
269void MeshComponent::prepRenderImage( SceneRenderState *state )
270{
271 if (!mEnabled || !mOwner || !mShapeInstance)
272 return;
273
274 Point3F cameraOffset;
275 mOwner->getRenderTransform().getColumn(3, &cameraOffset);
276 cameraOffset -= state->getDiffuseCameraPosition();
277 F32 dist = cameraOffset.len();
278 if (dist < 0.01f)
279 dist = 0.01f;
280
281 Point3F objScale = getOwner()->getScale();
282 F32 invScale = (1.0f / getMax(getMax(objScale.x, objScale.y), objScale.z));
283
284 mShapeInstance->setDetailFromDistance(state, dist * invScale);
285
286 if (mShapeInstance->getCurrentDetail() < 0)
287 return;
288
289 GFXTransformSaver saver;
290
291 // Set up our TS render state.
292 TSRenderState rdata;
293 rdata.setSceneState(state);
294 rdata.setFadeOverride(1.0f);
295 rdata.setOriginSort(false);
296
297 // We might have some forward lit materials
298 // so pass down a query to gather lights.
299 LightQuery query;
300 query.init(mOwner->getWorldSphere());
301 rdata.setLightQuery(&query);
302
303 MatrixF mat = mOwner->getRenderTransform();
304 Point3F renderPos = mat.getPosition();
305 EulerF renderRot = mat.toEuler();
306 mat.scale(objScale);
307 GFX->setWorldMatrix(mat);
308
309 mShapeInstance->render(rdata);
310}
311
312void MeshComponent::updateShape()
313{

Callers

nothing calls this directly

Calls 15

getMaxFunction · 0.85
getColumnMethod · 0.80
setDetailFromDistanceMethod · 0.80
getCurrentDetailMethod · 0.80
setSceneStateMethod · 0.80
setFadeOverrideMethod · 0.80
setOriginSortMethod · 0.80
setLightQueryMethod · 0.80
toEulerMethod · 0.80
lenMethod · 0.45
getScaleMethod · 0.45

Tested by

no test coverage detected