MCPcopy Create free account
hub / github.com/arrayfire/forge / computeTransformMat

Method computeTransformMat

src/backend/opengl/plot_impl.cpp:66–88  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

64}
65
66glm::mat4 plot_impl::computeTransformMat(const glm::mat4 pView, const glm::mat4 pOrient)
67{
68 static const glm::mat4 MODEL = glm::rotate(glm::mat4(1.0f), -glm::radians(90.f), glm::vec3(0,1,0)) *
69 glm::rotate(glm::mat4(1.0f), -glm::radians(90.f), glm::vec3(1,0,0));
70
71 float xRange = mRange[1] - mRange[0];
72 float yRange = mRange[3] - mRange[2];
73 float zRange = mRange[5] - mRange[4];
74
75 float xDataScale = std::abs(xRange) < 1.0e-3 ? 1.0f : 2/(xRange);
76 float yDataScale = std::abs(yRange) < 1.0e-3 ? 1.0f : 2/(yRange);
77 float zDataScale = std::abs(zRange) < 1.0e-3 ? 1.0f : 2/(zRange);
78
79 float xDataOffset = (-mRange[0] * xDataScale);
80 float yDataOffset = (-mRange[2] * yDataScale);
81 float zDataOffset = (-mRange[4] * zDataScale);
82
83 glm::vec3 scaleVector(xDataScale, yDataScale, zDataScale);
84
85 glm::vec3 shiftVector = glm::vec3(-1 + xDataOffset, -1 + yDataOffset, -1 + zDataOffset);
86
87 return pView * pOrient * MODEL * glm::scale(glm::translate(IDENTITY, shiftVector), scaleVector);
88}
89
90void plot_impl::bindDimSpecificUniforms()
91{

Callers 1

renderMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected