use of artisynth.core.mechmodels.Point in project artisynth_core by artisynth.
the class MotionTargetTerm method updateTargetVelocityVec.
private void updateTargetVelocityVec() {
if (myTargetVel == null || myTargetVel.size() != myTargetVelSize)
myTargetVel = new VectorNd(myTargetVelSize);
double[] buf = myTargetVel.getBuffer();
int idx = 0;
for (int i = 0; i < myTargets.size(); i++) {
MotionTargetComponent target = myTargets.get(i);
if (target instanceof Point) {
Vector3d vel = ((Point) target).getVelocity();
buf[idx++] = vel.x;
buf[idx++] = vel.y;
buf[idx++] = vel.z;
} else if (target instanceof Frame) {
Twist vel = ((Frame) target).getVelocity();
buf[idx++] = vel.v.x;
buf[idx++] = vel.v.y;
buf[idx++] = vel.v.z;
buf[idx++] = vel.w.x;
buf[idx++] = vel.w.y;
buf[idx++] = vel.w.z;
}
}
}
use of artisynth.core.mechmodels.Point in project artisynth_core by artisynth.
the class MotionTargetTerm method fixTargetPositions.
private void fixTargetPositions() {
for (MotionTargetComponent comp : myTargets) {
if (comp instanceof Point) {
Point p = (Point) comp;
p.setPosition(p.getTargetPosition());
p.setVelocity(p.getTargetVelocity());
} else if (comp instanceof Frame) {
Frame f = (Frame) comp;
f.setVelocity(f.getTargetVelocity());
f.setPose(f.getTargetPose());
}
}
}
use of artisynth.core.mechmodels.Point in project artisynth_core by artisynth.
the class MotionTargetTerm method updateWeightsVector.
private void updateWeightsVector() {
myTargetWgts = new VectorNd(myTargetVelSize);
int idx = 0;
for (int t = 0; t < mySources.size(); t++) {
MotionTargetComponent target = mySources.get(t);
double w = myTargetWeights.get(t);
if (target instanceof Point) {
for (int i = 0; i < POINT_VEL_SIZE; i++) {
myTargetWgts.set(idx++, w);
}
} else if (target instanceof Frame) {
for (int i = 0; i < FRAME_VEL_SIZE; i++) {
myTargetWgts.set(idx++, w);
}
}
}
}
Aggregations