/* ====================== UI_PositionEntityOnTag ====================== */ static void UI_PositionEntityOnTag( refEntity_t *entity, const refEntity_t *parent, clipHandle_t parentModel, char *tagName ) { int i; orientation_t lerped; // lerp the tag trap_CM_LerpTag( &lerped, (const refEntity_t *)parent, (const char *)tagName, 0 ); // FIXME: allow origin offsets along tag? VectorCopy( parent->origin, entity->origin ); for ( i = 0 ; i < 3 ; i++ ) { VectorMA( entity->origin, lerped.origin[i], parent->axis[i], entity->origin ); } // cast away const because of compiler problems MatrixMultiply( lerped.axis, ( (refEntity_t*)parent )->axis, entity->axis ); entity->backlerp = parent->backlerp; }
/* ====================== UI_PositionRotatedEntityOnTag ====================== */ static void UI_PositionRotatedEntityOnTag( refEntity_t *entity, const refEntity_t *parent, clipHandle_t parentModel, char *tagName ) { int i; orientation_t lerped; vec3_t tempAxis[3]; // lerp the tag trap_CM_LerpTag( &lerped, parentModel, parent->oldframe, parent->frame, 1.0 - parent->backlerp, tagName ); // FIXME: allow origin offsets along tag? VectorCopy( parent->origin, entity->origin ); for ( i = 0 ; i < 3 ; i++ ) { VectorMA( entity->origin, lerped.origin[i], parent->axis[i], entity->origin ); } // cast away const because of compiler problems MatrixMultiply( entity->axis, lerped.axis, tempAxis ); MatrixMultiply( tempAxis, ((refEntity_t *)parent)->axis, entity->axis ); }
/* * UI_PositionEntityOnTag */ static void UI_PositionEntityOnTag(Refent *entity, const Refent *parent, Cliphandle parentModel, char *tagName) { int i; Orient lerped; /* lerp the tag */ trap_CM_LerpTag(&lerped, parentModel, parent->oldframe, parent->frame, 1.0 - parent->backlerp, tagName); /* FIXME: allow origin offsets along tag? */ copyv3(parent->origin, entity->origin); for(i = 0; i < 3; i++) saddv3(entity->origin, lerped.origin[i], parent->axis[i], entity->origin); /* cast away const because of compiler problems */ MatrixMultiply(lerped.axis, ((Refent*)parent)->axis, entity->axis); entity->backlerp = parent->backlerp; }