18 auto tmp_ids = args[
"surface_selection"].get<std::vector<int>>();
19 ids_ = std::set(tmp_ids.begin(), tmp_ids.end());
23 virtual std::string
name()
const override {
return "target"; }
25 void set_reference(
const std::shared_ptr<const State> &target_state,
const std::set<int> &reference_cached_body_ids);
51 auto tmp_ids = args[
"surface_selection"].get<std::vector<int>>();
52 ids_ = std::set(tmp_ids.begin(), tmp_ids.end());
55 virtual std::string
name()
const override {
return "sdf-target"; }
58 void set_bspline_target(
const Eigen::MatrixXd &control_points,
const Eigen::VectorXd &knots,
const double delta);
59 void set_bspline_target(
const Eigen::MatrixXd &control_points,
const Eigen::VectorXd &knots_u,
const Eigen::VectorXd &knots_v,
const double delta);
84 auto tmp_ids = args[
"surface_selection"].get<std::vector<int>>();
85 ids_ = std::set(tmp_ids.begin(), tmp_ids.end());
88 virtual std::string
name()
const override {
return "mesh-target"; }
102 igl::AABB<Eigen::MatrixXd, 3>
tree_;
114 std::string
name()
const override {
return "node-target"; }
156 return 1. /
x.array().inverse().sum();
160 return x.array().pow(-2.0) * pow(
eval1(
x), 2);
165 assert(
x.size() ==
dim+1);
167 for (
int d = 0; d <
dim; d++)
173 Eigen::VectorXd g = Eigen::VectorXd::Zero(
dim + 1);
174 for (
int d = 0; d <
dim; d++)
177 g(d) += tmp /
x(
dim);
187 std::vector<std::unique_ptr<StaticForm>>
objs;
main class that contains the polyfem solver and all its state
A collection of VariableToSimulation.