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

View File

@ -77,6 +77,15 @@ Vector ExprVector::Eval(void) {
return r; 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 ExprQuaternion::From(Expr *w, Expr *vx, Expr *vy, Expr *vz)
{ {
ExprQuaternion q; 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(Expr *w, Expr *vx, Expr *vy, Expr *vz);
static ExprQuaternion From(Quaternion qn); static ExprQuaternion From(Quaternion qn);
static ExprQuaternion From(hParam w, hParam vx, hParam vy, hParam vz);
ExprVector RotationU(void); ExprVector RotationU(void);
ExprVector RotationV(void); ExprVector RotationV(void);