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

Function TransformPoint

trinity/Tr2ScalingTool.cpp:15–31  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

13{
14
15Vector3 TransformPoint( const Vector3& localCenter, Tr2SolidSet* solid, Matrix& viewMatrix )
16{
17 XMVECTOR det;
18 Matrix viewInv( XMMatrixInverse( &det, viewMatrix ) );
19
20 Vector3 viewPos = viewInv.GetTranslation();
21 Vector3 lineSetPos = Vector3( solid->m_localTransform._41, solid->m_localTransform._42, solid->m_localTransform._43 );
22 Vector3 normal = Vector3( viewMatrix._13, viewMatrix._23, viewMatrix._33 );
23 Vector3 dir( viewPos - lineSetPos );
24 float scale = fabs( Dot( dir, normal ) * g_primitiveDistanceScaleMultiplier * Tr2Renderer::GetFieldOfView() );
25
26 Matrix scaleMat, finalTransform;
27 scaleMat = ScalingMatrix( scale, scale, scale );
28 finalTransform = scaleMat * solid->m_localTransform;
29
30 return Vector3( XMVector3TransformCoord( localCenter, finalTransform ) );
31}
32
33}
34

Callers 4

MoveMethod · 0.85
IsInsideMethod · 0.85
IsInsideLineSegmentMethod · 0.85
IsInsideTriangleMethod · 0.85

Calls 4

GetFieldOfViewFunction · 0.85
GetTranslationMethod · 0.80
Vector3Class · 0.70
DotFunction · 0.50

Tested by

no test coverage detected