REmoving the extra variables in Linear3D and just use the _renderTRansform

This commit is contained in:
samcake 2017-09-22 10:39:51 -07:00
parent 2d369a4586
commit 219d63784b
2 changed files with 18 additions and 9 deletions

View file

@ -133,8 +133,9 @@ void Line3DOverlay::render(RenderArgs* args) {
auto batch = args->_batch;
if (batch) {
batch->setModelTransform(Transform());
glm::vec3 start = _renderStart;
glm::vec3 end = _renderEnd;
auto& renderTransform = getRenderTransform();
glm::vec3 start = renderTransform.getTranslation();
glm::vec3 end = renderTransform.transform(vec3(0.0, 0.0, -1.0));
auto geometryCache = DependencyManager::get<GeometryCache>();
if (getIsDashedLine()) {
@ -269,7 +270,19 @@ Line3DOverlay* Line3DOverlay::createClone() const {
}
Transform Line3DOverlay::evalRenderTransform() {
_renderStart = getStart();
_renderEnd = getEnd();
return Parent::evalRenderTransform();
// Capture start and endin the renderTransform:
// start is the origin
// end is at the tip of the front axis aka -Z
Transform transform;
transform.setTranslation( getStart());
auto endPos = getEnd();
auto vec = endPos - transform.getTranslation();
auto scale = glm::length(vec);
auto dir = vec / scale;
auto orientation = glm::rotation(glm::vec3(0,0,-1), dir);
transform.setRotation(orientation);
transform.setScale(scale);
return transform;
}

View file

@ -73,10 +73,6 @@ private:
float _glow { 0.0 };
float _glowWidth { 0.0 };
int _geometryCacheID;
// Similar to the _renderTransform, we capture the start and end pos for render loop in game loop
glm::vec3 _renderStart;
glm::vec3 _renderEnd;
};
#endif // hifi_Line3DOverlay_h