diff options
author | Sergej Reich <sergej.reich@googlemail.com> | 2013-02-24 03:04:07 +0400 |
---|---|---|
committer | Sergej Reich <sergej.reich@googlemail.com> | 2013-02-24 03:04:07 +0400 |
commit | c82213359aa8bc2a762dc0a76c813d46c159a291 (patch) | |
tree | 312fc8aa5a246025d8d6d519b83c266d3a2b861a /intern/rigidbody/RBI_api.h | |
parent | 47bd908e014412b4339ca4bca0a3556d9bd7fcd2 (diff) |
rigidbody: Add motor constraint
It's implemented as a separate constraint instead of adding properties
to the existing constraints.
Motors only apply linear and angular impulses and don't limit the
movement of rigid bodies, so it's best to use them in conjunction with
other constraints to limit the degrees of freedom.
Thanks to Markus Kasten (markus111) for the initial patch.
Diffstat (limited to 'intern/rigidbody/RBI_api.h')
-rw-r--r-- | intern/rigidbody/RBI_api.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/intern/rigidbody/RBI_api.h b/intern/rigidbody/RBI_api.h index 9dde2cc3049..e7c88d96873 100644 --- a/intern/rigidbody/RBI_api.h +++ b/intern/rigidbody/RBI_api.h @@ -257,6 +257,7 @@ extern rbConstraint *RB_constraint_new_slider(float pivot[3], float orn[4], rbRi extern rbConstraint *RB_constraint_new_piston(float pivot[3], float orn[4], rbRigidBody *rb1, rbRigidBody *rb2); extern rbConstraint *RB_constraint_new_6dof(float pivot[3], float orn[4], rbRigidBody *rb1, rbRigidBody *rb2); extern rbConstraint *RB_constraint_new_6dof_spring(float pivot[3], float orn[4], rbRigidBody *rb1, rbRigidBody *rb2); +extern rbConstraint *RB_constraint_new_motor(float pivot[3], float orn[4], rbRigidBody *rb1, rbRigidBody *rb2); /* ............ */ @@ -292,6 +293,11 @@ extern void RB_constraint_set_damping_6dof_spring(rbConstraint *con, int axis, f extern void RB_constraint_set_spring_6dof_spring(rbConstraint *con, int axis, int enable); extern void RB_constraint_set_equilibrium_6dof_spring(rbConstraint *con); +/* motors */ +extern void RB_constraint_set_enable_motor(rbConstraint *con, int enable_lin, int enable_ang); +extern void RB_constraint_set_max_impulse_motor(rbConstraint *con, float max_impulse_lin, float max_impulse_ang); +extern void RB_constraint_set_target_velocity_motor(rbConstraint *con, float velocity_lin, float velocity_ang); + /* Set number of constraint solver iterations made per step, this overrided world setting * To use default set it to -1 */ extern void RB_constraint_set_solver_iterations(rbConstraint *con, int num_solver_iterations); |