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

Method interpolateTick

Engine/source/T3D/camera.cpp:822–894  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

820//----------------------------------------------------------------------------
821
822void Camera::interpolateTick(F32 dt)
823{
824 Parent::interpolateTick(dt);
825
826 if ( isMounted() )
827 return;
828
829 Point3F rot = mDelta.rot + mDelta.rotVec * dt;
830
831 if((mMode == OrbitObjectMode || mMode == OrbitPointMode) && !mNewtonMode)
832 {
833 if(mMode == OrbitObjectMode && bool(mOrbitObject))
834 {
835 // If this is a shapebase, use its render eye transform
836 // to avoid jittering.
837 GameBase *castObj = mOrbitObject;
838 ShapeBase* shape = dynamic_cast<ShapeBase*>(castObj);
839 if( shape != NULL )
840 {
841 MatrixF ret;
842 shape->getRenderEyeTransform( &ret );
843 mPosition = ret.getPosition();
844 }
845 else
846 {
847 // Hopefully this is a static object that doesn't move,
848 // because the worldbox doesn't get updated between ticks.
849 mOrbitObject->getWorldBox().getCenter(&mPosition);
850 }
851 }
852 _setRenderPosition( mPosition + mOffset, rot );
853 _validateEyePoint( 1.0f, &mRenderObjToWorld );
854 }
855 else if(mMode == EditOrbitMode && mValidEditOrbitPoint)
856 {
857 mPosition = mEditOrbitPoint;
858 _setRenderPosition(mPosition, rot);
859 _calcEditOrbitPoint(&mRenderObjToWorld, rot);
860 }
861 else if(mMode == TrackObjectMode && bool(mOrbitObject) && !mNewtonRotation)
862 {
863 // orient the camera to face the object
864 Point3F objPos;
865 // If this is a shapebase, use its render eye transform
866 // to avoid jittering.
867 ShapeBase *shape = dynamic_cast<ShapeBase*>((GameBase*)mOrbitObject);
868 if( shape != NULL )
869 {
870 MatrixF ret;
871 shape->getRenderEyeTransform( &ret );
872 objPos = ret.getPosition();
873 }
874 else
875 {
876 mOrbitObject->getWorldBox().getCenter(&objPos);
877 }
878 Point3F pos = mDelta.pos + mDelta.posVec * dt;
879 Point3F vec = objPos - pos;

Callers

nothing calls this directly

Calls 6

getAnglesFromVectorFunction · 0.85
getRenderEyeTransformMethod · 0.45
getPositionMethod · 0.45
getCenterMethod · 0.45
getWorldBoxMethod · 0.45
normalizeSafeMethod · 0.45

Tested by

no test coverage detected