Merge branch 'blue-bis' of https://github.com/samcake/hifi into blue

This commit is contained in:
samcake 2017-09-22 11:02:57 -07:00
commit 4ce774ab8e
4 changed files with 19 additions and 21 deletions

View file

@ -84,12 +84,7 @@ void Circle3DOverlay::render(RenderArgs* args) {
batch.setPipeline(args->_shapePipeline->pipeline);
}
// FIXME: THe line width of _lineWidth is not supported anymore, we ll need a workaround
// FIXME Start using the _renderTransform instead of calling for Transform from here, do the custom things needed in evalRenderTransform()
auto transform = getTransform();
transform.postScale(glm::vec3(getDimensions(), 1.0f));
batch.setModelTransform(transform);
batch.setModelTransform(getRenderTransform());
// for our overlay, is solid means we draw a ring between the inner and outer radius of the circle, otherwise
// we just draw a line...
@ -438,7 +433,3 @@ bool Circle3DOverlay::findRayIntersection(const glm::vec3& origin, const glm::ve
Circle3DOverlay* Circle3DOverlay::createClone() const {
return new Circle3DOverlay(this);
}
Transform Circle3DOverlay::evalRenderTransform() {
return getTransform();
}

View file

@ -88,8 +88,6 @@ protected:
int _minorTicksVerticesID { 0 };
bool _dirty { true };
Transform evalRenderTransform() override;
};

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