Fixed Scene_plane_item::setNormal

This commit is contained in:
Maxime Gimeno 2016-02-12 14:54:23 +01:00
parent 704c436b5c
commit 37b7a4a145
1 changed files with 10 additions and 2 deletions

View File

@ -133,11 +133,19 @@ public Q_SLOTS:
}
void setNormal(float x, float y, float z) {
frame->setOrientation(x, y, z, 0.f);
QVector3D normal(x,y,z);
QVector3D origin(0,0,1);
QQuaternion q(CGAL::sqrt((normal.lengthSquared()) * (origin.lengthSquared())) + QVector3D::dotProduct(origin, normal),QVector3D::crossProduct(origin, normal));
q.normalize();
frame->setOrientation(q.x(), q.y(), q.z(), q.scalar());
}
void setNormal(double x, double y, double z) {
frame->setOrientation((float)x, (float)y, (float)z, 0.f);
QVector3D normal(x,y,z);
QVector3D origin(0,0,1);
QQuaternion q(CGAL::sqrt((normal.lengthSquared()) * (origin.lengthSquared())) + QVector3D::dotProduct(origin, normal),QVector3D::crossProduct(origin, normal));
q.normalize();
frame->setOrientation(q.x(), q.y(), q.z(), q.scalar());
}
void setClonable(bool b = true) {