Exemple #1
0
/**
 * Create an object.
 **/
object_t *
object_create(object_t *parent)
{
	object_t *ret = xmalloc(sizeof(object_t));
	MATRIX_DECL_IDENT(ident);

	ret->parent = NULL;
	ret->type = OBJ_NODE;
	ret->name = NULL;
	ret->mat = NO_MATERIAL;
	ret->transform_cache = NULL;
	ret->private_transform = NULL;
	ret->meta = NULL;
	ret->meta_destructor = 0;

	ret->draw_distance = 0;
	ret->child_draw_distance = 0;

	ret->trans[0] = ret->trans[1] = ret->trans[2] = 0;
	ret->scale[0] = ret->scale[1] = ret->scale[2] = 1;
	quat_init(&ret->rot, 0, 1, 0, 0);

	ret->children = NULL;
	ret->child_count = 0;

	refcount_init(&ret->refcount);
	refcount_add_destructor(&ret->refcount, object_destructor, ret);

	object_apply_pretransform(ret, ident);

	if (parent)
		object_reparent(ret, parent);

	return ret;
}
Exemple #2
0
void ahrs_init(ahrs_t *ahrs, ahrs_type_t type, real_t beta_start, real_t beta_step, real_t beta_end)
{
   ahrs->type = type;
   ahrs->beta = beta_start;
   ahrs->beta_step = beta_step;
   ahrs->beta_end = beta_end;
   quat_init(&ahrs->quat);
}