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

Method computeModelMatrix

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

Source from the content-addressed store, hash-verified

64}
65
66glm::mat4 vector_field_impl::computeModelMatrix(const glm::mat4& pOrient)
67{
68 float xRange = mRange[1] - mRange[0];
69 float yRange = mRange[3] - mRange[2];
70 float zRange = mRange[5] - mRange[4];
71
72 float xDataScale = std::abs(xRange) < 1.0e-3 ? 0.0f : 4/(xRange);
73 float yDataScale = std::abs(yRange) < 1.0e-3 ? 0.0f : 4/(yRange);
74 float zDataScale = std::abs(zRange) < 1.0e-3 ? 0.0f : 4/(zRange);
75
76 float xDataOffset = (-mRange[0] * xDataScale);
77 float yDataOffset = (-mRange[2] * yDataScale);
78 float zDataOffset = (-mRange[4] * zDataScale);
79
80 glm::vec3 scaleVector(xDataScale, -1.0f * yDataScale, zDataScale);
81
82 glm::vec3 shiftVector(-(mRange[0]+mRange[1])/2.0f,
83 -(mRange[2]+mRange[3])/2.0f,
84 -(mRange[4]+mRange[5])/2.0f);
85 shiftVector += glm::vec3(xDataOffset, yDataOffset, zDataOffset);
86
87 return glm::translate(glm::scale(pOrient, scaleVector), shiftVector);
88}
89
90vector_field_impl::vector_field_impl(const uint pNumPoints, const forge::dtype pDataType, const int pD)
91 : mDimension(pD), mNumPoints(pNumPoints), mDataType(pDataType),

Callers 1

renderMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected