2021-07-24 21:11:47 -07:00

55 lines
1.6 KiB
C++

//====== Copyright © 1996-2008, Valve Corporation, All rights reserved. =======
//
// Purpose:
//
//=============================================================================
#ifndef SFMRIGUTILS_H
#define SFMRIGUTILS_H
#ifdef _WIN32
#pragma once
#endif
#include "movieobjects/dmerigconstraintoperators.h"
#include "movieobjects/dmechannel.h"
#include "dmeutils/dmanimutils.h"
class CDmeAnimationSet;
class CDmeFilmClip;
class CDmeClip;
class CDmeChannelsClip;
class CDmeRigHandle;
class CDmeRig;
class CDmeTransformControl;
class CSFMAnimSetScriptContext;
class CStudioHdr;
void SpewChannel( CDmeChannel *ch );
int FindBoneIndex( CStudioHdr const* pStudioHdr, const char* pName );
class CSFMRigUtils
{
public:
// Create a rig handle with the specified name with the specified position and orientation
static CDmeRigHandle *CreateRigHandle( const char *pchName, const Vector &position, const Quaternion &orientation, CDmeFilmClip *pShot );
// Destroy the specified rig handle and remove it from the animation set.
static void DestroyRigHandle( CDmeRigHandle *pRigHandle, CDmeFilmClip *pShot, CSFMAnimSetScriptContext *pAnimSetContext = NULL );
// Generate logs of all dag nodes controlled by the rig and then destroy all elements of the rig.
static void DetachRig( CDmeRig *pRig, CDmeFilmClip *pShot );
// Detach all rigs and constraints from the animation set
static void DetachAllRigs( CDmeAnimationSet *pAnimSet );
// Determine if the specified animation set has any rig components (rig handles, constraints, display sets)
static bool HasRigComponents( CDmeAnimationSet *pAnimSet );
};
#endif // SFMRIGUTILS_H