Ejemplo n.º 1
0
/**
 * stack_do_constrain:
 *
 * Update stack_position and layer to reflect transiency
 * constraints
 */
static void
stack_do_constrain (MetaStack *stack)
{
  Constraint **constraints;

  /* It'd be nice if this were all faster, probably */

  if (!stack->need_constrain)
    return;

  meta_topic (META_DEBUG_STACK,
              "Reapplying constraints\n");

  constraints = g_new0 (Constraint*,
                        stack->n_positions);

  create_constraints (constraints, stack->sorted);

  graph_constraints (constraints, stack->n_positions);

  apply_constraints (constraints, stack->n_positions);

  free_constraints (constraints, stack->n_positions);
  g_free (constraints);

  stack->need_constrain = FALSE;
}
Ejemplo n.º 2
0
static int pose_constraints_clear_exec(bContext *C, wmOperator *op)
{
	Object *ob= CTX_data_active_object(C);
	Scene *scene= CTX_data_scene(C);
	
	/* free constraints for all selected bones */
	CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pchans)
	{
		free_constraints(&pchan->constraints);
		pchan->constflag &= ~(PCHAN_HAS_IK|PCHAN_HAS_CONST);
	}
Ejemplo n.º 3
0
Archivo: testing.c Proyecto: cran/Rcsdp
SEXP test_constraints(SEXP k_p,
		      SEXP A)
{
  int k;
  struct constraintmatrix *AA;
  SEXP ret;

  k = INTEGER(k_p)[0];
  AA = constraints_R2csdp(A);
  ret = constraints_csdp2R(k,AA);
  free_constraints(k,AA);
  UNPROTECT(1);
  return ret;
}
Ejemplo n.º 4
0
void free_pose_channel(bPoseChannel *pchan)
{
	// XXX this case here will need to be removed when the new motionpaths are ready
	if (pchan->path) {
		MEM_freeN(pchan->path);
		pchan->path= NULL;
	}
	
	if (pchan->mpath) {
		animviz_free_motionpath(pchan->mpath);
		pchan->mpath= NULL;
	}
	
	free_constraints(&pchan->constraints);
	
	if (pchan->prop) {
		IDP_FreeProperty(pchan->prop);
		MEM_freeN(pchan->prop);
	}
}