MCPcopy Create free account
hub / github.com/carbonengine/trinity / RenderDynamicBounds

Method RenderDynamicBounds

trinity/Tr2GrannyAnimation.cpp:1115–1242  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1113}
1114
1115void Tr2GrannyAnimation::RenderDynamicBounds( const Matrix& modelTransform )
1116{
1117 if( IsUsingCMF() )
1118 {
1119 Vector3 transformed[8];
1120 if( m_boneBounds.empty() && !InitializeBoundingInfo() )
1121 {
1122 return;
1123 }
1124
1125 Vector4 boundingSphere;
1126 bool initialized = false;
1127
1128 Vector3 aabbMin, aabbMax;
1129 BoundingBoxInitialize( aabbMin, aabbMax );
1130
1131 for( const auto& bb : m_boneBounds )
1132 {
1133 Matrix mat = m_worldTransforms[bb.m_boneIndex] * modelTransform;
1134
1135 for( unsigned point = 0; point < 8; point++ )
1136 {
1137 transformed[point] = TransformCoord( bb.m_corners[point], mat );
1138 BoundingBoxUpdate( aabbMin, aabbMax, transformed[point] );
1139 if( !initialized )
1140 {
1141 boundingSphere.x = transformed[point].x;
1142 boundingSphere.y = transformed[point].y;
1143 boundingSphere.z = transformed[point].z;
1144 boundingSphere.w = 0;
1145 initialized = true;
1146 }
1147 else
1148 {
1149 BoundingSphereUpdate( transformed[point], boundingSphere );
1150 }
1151 }
1152
1153 Tr2Renderer::DrawLine( transformed[0], 0xff7f0000, transformed[2], 0xff7f0000 );
1154 Tr2Renderer::DrawLine( transformed[0], 0xff7f0000, transformed[5], 0xff7f0000 );
1155 Tr2Renderer::DrawLine( transformed[5], 0xff7f0000, transformed[6], 0xff7f0000 );
1156 Tr2Renderer::DrawLine( transformed[2], 0xff7f0000, transformed[6], 0xff7f0000 );
1157
1158 Tr2Renderer::DrawLine( transformed[1], 0xff7f0000, transformed[7], 0xff7f0000 );
1159 Tr2Renderer::DrawLine( transformed[1], 0xff7f0000, transformed[4], 0xff7f0000 );
1160 Tr2Renderer::DrawLine( transformed[3], 0xff7f0000, transformed[4], 0xff7f0000 );
1161 Tr2Renderer::DrawLine( transformed[3], 0xff7f0000, transformed[7], 0xff7f0000 );
1162
1163 Tr2Renderer::DrawLine( transformed[1], 0xff7f0000, transformed[6], 0xff7f0000 );
1164 Tr2Renderer::DrawLine( transformed[0], 0xff7f0000, transformed[3], 0xff7f0000 );
1165 Tr2Renderer::DrawLine( transformed[7], 0xff7f0000, transformed[5], 0xff7f0000 );
1166 Tr2Renderer::DrawLine( transformed[4], 0xff7f0000, transformed[2], 0xff7f0000 );
1167 }
1168
1169 Tr2Renderer::DrawSphere( boundingSphere, 8, 0xffff0000 );
1170 Tr2Renderer::DrawBox( aabbMin, aabbMax, 0xffff0000 );
1171
1172 return;

Callers

nothing calls this directly

Calls 5

IsUsingCMFFunction · 0.85
BoundingBoxInitializeFunction · 0.85
BoundingBoxUpdateFunction · 0.85
BoundingSphereUpdateFunction · 0.85
emptyMethod · 0.80

Tested by

no test coverage detected