10 #ifndef IMPKINEMATICS_DIRECTIONAL_DO_FS_H
11 #define IMPKINEMATICS_DIRECTIONAL_DO_FS_H
15 IMPKINEMATICS_BEGIN_NAMESPACE
29 current_delta_.resize(dofs_.size());
37 for (
unsigned int i = 0; i < dofs_.size(); i++) {
39 dofs_[i]->get_number_of_steps(endpoint1_[i], endpoint2_[i]);
40 if (dof_step_number > step_number_) step_number_ = dof_step_number;
43 for (
unsigned int i = 0; i < dofs_.size(); i++) {
44 current_delta_[i] = (endpoint2_[i] - endpoint1_[i]) / step_number_;
47 current_step_number_ = 0;
48 delta_ = 1.0 / step_number_;
55 for (
unsigned int i = 0; i < ret.size(); i++) {
56 ret[i] += current_step_number_ * current_delta_[i];
61 double get_value()
const {
return value_; }
64 void operator++(
int) {
65 current_step_number_++;
68 void operator--(
int) {
69 current_step_number_--;
88 int current_step_number_;
99 IMPKINEMATICS_END_NAMESPACE
#define IMP_OBJECT_METHODS(Name)
Define the basic things needed by any Object.
Common base class for heavy weight IMP objects.
A class that holds DOF values for DOFs.
#define IMP_OBJECTS(Name, PluralName)
Define the types for storing lists of object pointers.
Object(std::string name)
Construct an object with the given name.