More use of ::From functions to simplify code.

[git-p4: depot-paths = "//depot/solvespace/": change = 1764]
This commit is contained in:
Jonathan Westhues 2008-06-01 00:57:16 -08:00
parent 04af0944bc
commit 857395966a
3 changed files with 17 additions and 24 deletions

View File

@ -298,10 +298,7 @@ ExprQuaternion Entity::NormalGetExprs(void) {
ExprQuaternion q;
switch(type) {
case NORMAL_IN_3D:
q.w = Expr::From(param[0]);
q.vx = Expr::From(param[1]);
q.vy = Expr::From(param[2]);
q.vz = Expr::From(param[3]);
q = ExprQuaternion::From(param[0], param[1], param[2], param[3]);
break;
case NORMAL_IN_2D: {
@ -316,11 +313,7 @@ ExprQuaternion Entity::NormalGetExprs(void) {
case NORMAL_N_ROT: {
ExprQuaternion orig = ExprQuaternion::From(numNormal);
q.w = Expr::From(param[0]);
q.vx = Expr::From(param[1]);
q.vy = Expr::From(param[2]);
q.vz = Expr::From(param[3]);
q = ExprQuaternion::From(param[0], param[1], param[2], param[3]);
q = q.Times(orig);
break;
@ -491,26 +484,16 @@ ExprVector Entity::PointGetExprs(void) {
break;
}
case POINT_N_TRANS: {
ExprVector orig = {
Expr::From(numPoint.x),
Expr::From(numPoint.y),
Expr::From(numPoint.z) };
ExprVector trans;
trans.x = Expr::From(param[0]);
trans.y = Expr::From(param[1]);
trans.z = Expr::From(param[2]);
ExprVector orig = ExprVector::From(numPoint);
ExprVector trans = ExprVector::From(param[0], param[1], param[2]);
r = orig.Plus(trans.ScaledBy(Expr::From(timesApplied)));
break;
}
case POINT_N_ROT_TRANS: {
ExprVector orig = ExprVector::From(numPoint);
ExprVector trans =
ExprVector::From(param[0], param[1], param[2]);
ExprQuaternion q = {
Expr::From(param[3]),
Expr::From(param[4]),
Expr::From(param[5]),
Expr::From(param[6]) };
ExprVector trans = ExprVector::From(param[0], param[1], param[2]);
ExprQuaternion q =
ExprQuaternion::From(param[3], param[4], param[5], param[6]);
orig = q.Rotate(orig);
r = orig.Plus(trans);
break;

View File

@ -77,6 +77,15 @@ Vector ExprVector::Eval(void) {
return r;
}
ExprQuaternion ExprQuaternion::From(hParam w, hParam vx, hParam vy, hParam vz) {
ExprQuaternion q;
q.w = Expr::From(w);
q.vx = Expr::From(vx);
q.vy = Expr::From(vy);
q.vz = Expr::From(vz);
return q;
}
ExprQuaternion ExprQuaternion::From(Expr *w, Expr *vx, Expr *vy, Expr *vz)
{
ExprQuaternion q;

1
expr.h
View File

@ -142,6 +142,7 @@ public:
static ExprQuaternion From(Expr *w, Expr *vx, Expr *vy, Expr *vz);
static ExprQuaternion From(Quaternion qn);
static ExprQuaternion From(hParam w, hParam vx, hParam vy, hParam vz);
ExprVector RotationU(void);
ExprVector RotationV(void);