|
ShapeOp
0.1.0
|
#include "Common.h"Go to the source code of this file.
Typedefs | |
| typedef struct ShapeOpSolver | ShapeOpSolver |
| C structure that containts the C++ ShapeOp::Solver. | |
| typedef enum shapeop_err | shapeop_err |
| ShapeOp Success and Error type. This list might be extended. To simply test for errors, use =! SO_SUCCESS. | |
Enumerations | |
| enum | shapeop_err { SO_SUCCESS = 0, SO_INVALID_CONSTRAINT_TYPE = 1, SO_INVALID_ARGUMENT_LENGTH = 2, SO_UNMATCHING_CONSTRAINT_ID = 3 } |
| ShapeOp Success and Error type. This list might be extended. To simply test for errors, use =! SO_SUCCESS. More... | |
Functions | |
| SHAPEOP_API ShapeOpSolver * | shapeop_create () |
| Create the ShapeOp solver. For more details see ShapeOp::Solver. | |
| SHAPEOP_API void | shapeop_delete (ShapeOpSolver *op) |
| Delete the ShapeOp solver. For more details see ShapeOp::Solver. | |
| SHAPEOP_API int | shapeop_init (ShapeOpSolver *op) |
| Initialize the ShapeOp solver for static geometry processing. For more details see ShapeOp::Solver. More... | |
| SHAPEOP_API int | shapeop_initDynamic (ShapeOpSolver *op, ShapeOpScalar masses, ShapeOpScalar damping, ShapeOpScalar timestep) |
| Initialize the ShapeOp solver for dynamic geometry processing. For more details see ShapeOp::Solver. More... | |
| SHAPEOP_API int | shapeop_solve (ShapeOpSolver *op, unsigned int iteration) |
| Run the optimization. For more details see ShapeOp::Solver. More... | |
| SHAPEOP_API void | shapeop_setPoints (ShapeOpSolver *op, ShapeOpScalar *points, int nb_points) |
| Set the vertices to the ShapeOp solver. For more details see ShapeOp::Solver. | |
| SHAPEOP_API void | shapeop_getPoints (ShapeOpSolver *op, ShapeOpScalar *points, int nb_points) |
| Get the vertices back from the ShapeOp solver. For more details see ShapeOp::Solver. | |
| SHAPEOP_API void | shapeop_setTimeStep (ShapeOpSolver *op, ShapeOpScalar timestep) |
| Set the timestep of the ShapeOp solver. For more details see ShapeOp::Solver. | |
| SHAPEOP_API void | shapeop_setDamping (ShapeOpSolver *op, ShapeOpScalar damping) |
| Set the damping of the ShapeOp solver. For more details see ShapeOp::Solver. | |
| SHAPEOP_API int | shapeop_addConstraint (ShapeOpSolver *op, const char *constraintType, int *ids, int nb_ids, ShapeOpScalar weight) |
| Add a constraint to the ShapeOp solver. More... | |
| SHAPEOP_API shapeop_err | shapeop_editConstraint (ShapeOpSolver *op, const char *constraintType, int constraint_id, const ShapeOpScalar *scalars, int nb_scl) |
| Add a constraint to the ShapeOp solver. More... | |
| SHAPEOP_API int | shapeop_addGravityForce (ShapeOpSolver *op, ShapeOpScalar *force) |
| Add a gravity force to the ShapeOp solver. For more details see ShapeOp::GravityForce. More... | |
| SHAPEOP_API int | shapeop_addVertexForce (ShapeOpSolver *op, ShapeOpScalar *force, int id) |
| Add a vertex force to the ShapeOp solver. For more details see ShapeOp::VertexForce. | |
| SHAPEOP_API void | shapeop_editVertexForce (ShapeOpSolver *op, int force_id, ShapeOpScalar *force, int id) |
| Edit a vertex force previously added to the ShapeOp solver. For more details see ShapeOp::VertexForce. | |
This file implements a C API for the ShapeOp C++ library.
To use the library you need to:
1) Create the solver with shapeop_create
2) Set the vertices with shapeop_setPoints
3) Setup the constraints and forces with shapeop_addConstraint and shapeop_editConstraint
4) Initalize the solver with shapeop_init or shapeop_initDynamic
5) Optimize with shapeop_solve
6) Get back the vertices with shapeop_getPoints
7) Delete the solver with shapeop_delete
| enum shapeop_err |
ShapeOp Success and Error type. This list might be extended. To simply test for errors, use =! SO_SUCCESS.
| Enumerator | |
|---|---|
| SO_INVALID_CONSTRAINT_TYPE |
ShapeOp Success type indicating that no error happened. |
| SO_INVALID_ARGUMENT_LENGTH |
ShapeOp Error type indicating an invalid constraint type provided. |
| SO_UNMATCHING_CONSTRAINT_ID |
ShapeOp Error type indicating an invalid length of an array argument. |
| SHAPEOP_API int shapeop_addConstraint | ( | ShapeOpSolver * | op, |
| const char * | constraintType, | ||
| int * | ids, | ||
| int | nb_ids, | ||
| ShapeOpScalar | weight | ||
| ) |
Add a constraint to the ShapeOp solver.
| op | The ShapeOp Solver object |
| constraintType | A c-style string containing one of the following constraint types listed in the documentation of ShapeOp::Constraint::shapeConstraintFactory:
|
| ids | The array of indices of the points subject to the constraint. See documentation of the corresponding constraint in Constraint.h |
| nb_ids | The length or number of indices in ids. |
| weight | The weight of the constraint to be added relative to the other constraints in the ShapeOpSolver. |
| SHAPEOP_API int shapeop_addGravityForce | ( | ShapeOpSolver * | op, |
| ShapeOpScalar * | force | ||
| ) |
Add a gravity force to the ShapeOp solver. For more details see ShapeOp::GravityForce.
| op | The ShapeOp Solver object |
| force | A c-style array of 3 ShapeOpScalar's specifying the force vector in each dimension |
| SHAPEOP_API shapeop_err shapeop_editConstraint | ( | ShapeOpSolver * | op, |
| const char * | constraintType, | ||
| int | constraint_id, | ||
| const ShapeOpScalar * | scalars, | ||
| int | nb_scl | ||
| ) |
Add a constraint to the ShapeOp solver.
| op | The ShapeOp Solver object |
| constraintType | A c-style string containing one of the following constraint types
|
| constraint_id | The id of the constraint, which is returned in shapeop_addConstraint. |
| scalars | A c-style array of ShapeOpScalar's. See documentation of the corresponding constraint in Constraint.h |
| nb_scl | The length of the array scalars. |
| SHAPEOP_API int shapeop_init | ( | ShapeOpSolver * | op | ) |
Initialize the ShapeOp solver for static geometry processing. For more details see ShapeOp::Solver.
| SHAPEOP_API int shapeop_initDynamic | ( | ShapeOpSolver * | op, |
| ShapeOpScalar | masses, | ||
| ShapeOpScalar | damping, | ||
| ShapeOpScalar | timestep | ||
| ) |
Initialize the ShapeOp solver for dynamic geometry processing. For more details see ShapeOp::Solver.
| SHAPEOP_API int shapeop_solve | ( | ShapeOpSolver * | op, |
| unsigned int | iteration | ||
| ) |
Run the optimization. For more details see ShapeOp::Solver.
1.8.9.1