mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 10:54:24 -04:00
changed iteration
This commit is contained in:
parent
96ec4d6ac1
commit
4ae3692c79
@ -55,7 +55,6 @@ precompute_linear_matrices(Physical *physical,
|
|||||||
PhysicalNode *physical_node = physical->get_physical_node();
|
PhysicalNode *physical_node = physical->get_physical_node();
|
||||||
nassertv(physical_node);
|
nassertv(physical_node);
|
||||||
|
|
||||||
int i;
|
|
||||||
// by global forces, we mean forces not contained in the physical
|
// by global forces, we mean forces not contained in the physical
|
||||||
int global_force_vec_size = forces.size();
|
int global_force_vec_size = forces.size();
|
||||||
|
|
||||||
@ -71,18 +70,6 @@ precompute_linear_matrices(Physical *physical,
|
|||||||
NodePath physical_np(physical_node);
|
NodePath physical_np(physical_node);
|
||||||
NodePath global_physical_np = physical_np.get_parent();
|
NodePath global_physical_np = physical_np.get_parent();
|
||||||
|
|
||||||
#if 0
|
|
||||||
|
|
||||||
// tally the global xforms
|
|
||||||
for (i = 0; i < global_force_vec_size; ++i) {
|
|
||||||
force_node = forces[i]->get_force_node();
|
|
||||||
nassertv(force_node != (ForceNode *) NULL);
|
|
||||||
|
|
||||||
NodePath force_np(force_node);
|
|
||||||
//_precomputed_linear_matrices.push_back(global_physical_np.get_mat(force_node));
|
|
||||||
_precomputed_linear_matrices.push_back(force_np.get_mat(global_physical_np));
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
// tally the global xforms
|
// tally the global xforms
|
||||||
for (LinearForceVector::const_iterator fi = forces.begin();
|
for (LinearForceVector::const_iterator fi = forces.begin();
|
||||||
fi != forces.end();
|
fi != forces.end();
|
||||||
@ -95,24 +82,9 @@ precompute_linear_matrices(Physical *physical,
|
|||||||
//_precomputed_linear_matrices.push_back(global_physical_np.get_mat(force_node));
|
//_precomputed_linear_matrices.push_back(global_physical_np.get_mat(force_node));
|
||||||
_precomputed_linear_matrices.push_back(force_np.get_mat(global_physical_np));
|
_precomputed_linear_matrices.push_back(force_np.get_mat(global_physical_np));
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// tally the local xforms
|
||||||
const LinearForceVector &force_vector = physical->get_linear_forces();
|
const LinearForceVector &force_vector = physical->get_linear_forces();
|
||||||
|
|
||||||
#if 0
|
|
||||||
// tally the local xforms
|
|
||||||
for (i = 0; i < local_force_vec_size; ++i) {
|
|
||||||
force_node = force_vector[i]->get_force_node();
|
|
||||||
nassertv(force_node != (ForceNode *) NULL);
|
|
||||||
|
|
||||||
NodePath force_np(force_node);
|
|
||||||
_precomputed_linear_matrices.push_back(physical_np.get_mat(force_node));
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
// tally the local xforms
|
|
||||||
for (LinearForceVector::const_iterator fi = force_vector.begin();
|
for (LinearForceVector::const_iterator fi = force_vector.begin();
|
||||||
fi != force_vector.end();
|
fi != force_vector.end();
|
||||||
++fi) {
|
++fi) {
|
||||||
@ -122,8 +94,6 @@ precompute_linear_matrices(Physical *physical,
|
|||||||
NodePath force_np(force_node);
|
NodePath force_np(force_node);
|
||||||
_precomputed_linear_matrices.push_back(physical_np.get_mat(force_node));
|
_precomputed_linear_matrices.push_back(physical_np.get_mat(force_node));
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
@ -147,7 +117,6 @@ precompute_angular_matrices(Physical *physical,
|
|||||||
|
|
||||||
// by local forces, we mean members of the physical's force set.
|
// by local forces, we mean members of the physical's force set.
|
||||||
int local_force_vec_size = physical->get_angular_forces().size();
|
int local_force_vec_size = physical->get_angular_forces().size();
|
||||||
int i;
|
|
||||||
|
|
||||||
ForceNode *force_node;
|
ForceNode *force_node;
|
||||||
|
|
||||||
@ -156,22 +125,26 @@ precompute_angular_matrices(Physical *physical,
|
|||||||
_precomputed_angular_matrices.reserve(global_force_vec_size + local_force_vec_size);
|
_precomputed_angular_matrices.reserve(global_force_vec_size + local_force_vec_size);
|
||||||
|
|
||||||
NodePath physical_np(physical_node);
|
NodePath physical_np(physical_node);
|
||||||
|
NodePath global_physical_np = physical_np.get_parent();
|
||||||
|
|
||||||
// tally the global xforms
|
// tally the global xforms
|
||||||
for (i = 0; i < global_force_vec_size; ++i) {
|
for (AngularForceVector::const_iterator fi = forces.begin();
|
||||||
force_node = forces[i]->get_force_node();
|
fi != forces.end();
|
||||||
|
++fi) {
|
||||||
|
force_node = (*fi)->get_force_node();
|
||||||
nassertv(force_node != (ForceNode *) NULL);
|
nassertv(force_node != (ForceNode *) NULL);
|
||||||
|
|
||||||
NodePath force_np(force_node);
|
NodePath force_np(force_node);
|
||||||
_precomputed_angular_matrices.push_back(physical_np.get_mat(force_node));
|
//_precomputed_angular_matrices.push_back(physical_np.get_mat(force_node));
|
||||||
|
_precomputed_linear_matrices.push_back(force_np.get_mat(global_physical_np));
|
||||||
}
|
}
|
||||||
|
|
||||||
const AngularForceVector &force_vector =
|
|
||||||
physical->get_angular_forces();
|
|
||||||
|
|
||||||
// tally the local xforms
|
// tally the local xforms
|
||||||
for (i = 0; i < local_force_vec_size; ++i) {
|
const AngularForceVector &force_vector = physical->get_angular_forces();
|
||||||
force_node = force_vector[i]->get_force_node();
|
for (AngularForceVector::const_iterator fi = force_vector.begin();
|
||||||
|
fi != force_vector.end();
|
||||||
|
++fi) {
|
||||||
|
force_node = (*fi)->get_force_node();
|
||||||
nassertv(force_node != (ForceNode *) NULL);
|
nassertv(force_node != (ForceNode *) NULL);
|
||||||
|
|
||||||
NodePath force_np(force_node);
|
NodePath force_np(force_node);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user