23 class EvaluationEngine;
42 Optimizer(LogLevel log_level = LogLevel::silent);
52 void add_param_rotation_axis(
int axes, std::shared_ptr<NodeDelegate> nd_);
53 void add_param_rotation(std::shared_ptr<NodeDelegate> nd_);
54 void add_param_translation(std::shared_ptr<NodeDelegate> nd_,
double initial_step);
57 void add_output_translation(
const Plug& plug,
const Imath::V3d& goal);
59 double solve(
double error_threshold = 0.00001,
int max_iterations = 1000);
67 enum class Mode { float_, rotation_axes, rotation, translation };
69 Parameter(std::shared_ptr<NodeDelegate> nd, std::optional<Plug> plug, Mode mode,
int axes,
const Imath::V3d& initial_value,
70 double _initial_step);
73 std::shared_ptr<NodeDelegate> _nd;
74 std::optional<Plug> _plug;
84 enum class Mode { rotation, translation };
85 Objective(
const Plug& _plug,
const Imath::Quatd& goal_rotation,
const Imath::V3d& goal_translation, Mode mode);
95 static double _f(
const std::vector<double> &
x, std::vector<double> &grad,
void* _data);
98 std::vector<double> _x;
99 std::vector<Parameter> _parameters;
100 std::vector<Objective> _objectives;
101 std::shared_ptr<maquina::EvaluationEngine> _ee;
Order
Definition: ImathEuler.h:151
Definition: ImathFrame.h:42
The x component of a vector value.
Axis
Definition: Optimizer.h:44
This version of the SDK is unstable, i-e, it may change with no warning.
Definition: AddCurveAction.h:20
static const double rotation_initial_step
Definition: Optimizer.h:61
Definition: Optimizer.h:32
MAQUINA_EXPORT Value default_value(const maquina::StringView &type_name)
Return the default value of a type.
Definition: ImathQuat.h:71
#define MAQUINA_EXPORT
Definition: Export.h:31
A node plug.
Definition: Plug.h:59
LogLevel
Definition: Optimizer.h:35