

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 6.00.0366 */
/* at Wed May 20 19:21:01 2009
 */
/* Compiler settings for ..\..\builds\Release_Win32\_Physics.idl:
    Oicf, W1, Zp8, env=Win32 (32b run)
    protocol : dce , ms_ext, c_ext, robust
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING(  )

#pragma warning( disable: 4049 )  /* more than 64k source lines */


/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/

#ifndef ___Physics_h__
#define ___Physics_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

#ifndef __IRsList_FWD_DEFINED__
#define __IRsList_FWD_DEFINED__
typedef interface IRsList IRsList;
#endif 	/* __IRsList_FWD_DEFINED__ */


#ifndef __IRdPhysObjAttrDisp_FWD_DEFINED__
#define __IRdPhysObjAttrDisp_FWD_DEFINED__
typedef interface IRdPhysObjAttrDisp IRdPhysObjAttrDisp;
#endif 	/* __IRdPhysObjAttrDisp_FWD_DEFINED__ */


#ifndef __IRdPhysObjAttr_FWD_DEFINED__
#define __IRdPhysObjAttr_FWD_DEFINED__
typedef interface IRdPhysObjAttr IRdPhysObjAttr;
#endif 	/* __IRdPhysObjAttr_FWD_DEFINED__ */


#ifndef __IRdPhysEnvAttrDisp_FWD_DEFINED__
#define __IRdPhysEnvAttrDisp_FWD_DEFINED__
typedef interface IRdPhysEnvAttrDisp IRdPhysEnvAttrDisp;
#endif 	/* __IRdPhysEnvAttrDisp_FWD_DEFINED__ */


#ifndef __IRdPhysEnvAttr_FWD_DEFINED__
#define __IRdPhysEnvAttr_FWD_DEFINED__
typedef interface IRdPhysEnvAttr IRdPhysEnvAttr;
#endif 	/* __IRdPhysEnvAttr_FWD_DEFINED__ */


#ifndef __IRdPhysConstraint_FWD_DEFINED__
#define __IRdPhysConstraint_FWD_DEFINED__
typedef interface IRdPhysConstraint IRdPhysConstraint;
#endif 	/* __IRdPhysConstraint_FWD_DEFINED__ */


#ifndef __IRdCollInfoDisp_FWD_DEFINED__
#define __IRdCollInfoDisp_FWD_DEFINED__
typedef interface IRdCollInfoDisp IRdCollInfoDisp;
#endif 	/* __IRdCollInfoDisp_FWD_DEFINED__ */


#ifndef __IRdCollInfo_FWD_DEFINED__
#define __IRdCollInfo_FWD_DEFINED__
typedef interface IRdCollInfo IRdCollInfo;
#endif 	/* __IRdCollInfo_FWD_DEFINED__ */


#ifndef __IRdPhysImpulseDisp_FWD_DEFINED__
#define __IRdPhysImpulseDisp_FWD_DEFINED__
typedef interface IRdPhysImpulseDisp IRdPhysImpulseDisp;
#endif 	/* __IRdPhysImpulseDisp_FWD_DEFINED__ */


#ifndef __IRdPhysImpulse_FWD_DEFINED__
#define __IRdPhysImpulse_FWD_DEFINED__
typedef interface IRdPhysImpulse IRdPhysImpulse;
#endif 	/* __IRdPhysImpulse_FWD_DEFINED__ */


#ifndef __IRdPhysCloth_FWD_DEFINED__
#define __IRdPhysCloth_FWD_DEFINED__
typedef interface IRdPhysCloth IRdPhysCloth;
#endif 	/* __IRdPhysCloth_FWD_DEFINED__ */


#ifndef __IRfPhysHelperDisp_FWD_DEFINED__
#define __IRfPhysHelperDisp_FWD_DEFINED__
typedef interface IRfPhysHelperDisp IRfPhysHelperDisp;
#endif 	/* __IRfPhysHelperDisp_FWD_DEFINED__ */


#ifndef __IRfPhysHelper_FWD_DEFINED__
#define __IRfPhysHelper_FWD_DEFINED__
typedef interface IRfPhysHelper IRfPhysHelper;
#endif 	/* __IRfPhysHelper_FWD_DEFINED__ */


#ifndef __IRsPhysEvent_FWD_DEFINED__
#define __IRsPhysEvent_FWD_DEFINED__
typedef interface IRsPhysEvent IRsPhysEvent;
#endif 	/* __IRsPhysEvent_FWD_DEFINED__ */


#ifndef __IRsPhysSimEvents_FWD_DEFINED__
#define __IRsPhysSimEvents_FWD_DEFINED__
typedef interface IRsPhysSimEvents IRsPhysSimEvents;
#endif 	/* __IRsPhysSimEvents_FWD_DEFINED__ */


#ifndef __IRnPhysEngine_FWD_DEFINED__
#define __IRnPhysEngine_FWD_DEFINED__
typedef interface IRnPhysEngine IRnPhysEngine;
#endif 	/* __IRnPhysEngine_FWD_DEFINED__ */


#ifndef __IRnPhysTime_FWD_DEFINED__
#define __IRnPhysTime_FWD_DEFINED__
typedef interface IRnPhysTime IRnPhysTime;
#endif 	/* __IRnPhysTime_FWD_DEFINED__ */


#ifndef __IRnPhysActiveObj_FWD_DEFINED__
#define __IRnPhysActiveObj_FWD_DEFINED__
typedef interface IRnPhysActiveObj IRnPhysActiveObj;
#endif 	/* __IRnPhysActiveObj_FWD_DEFINED__ */


#ifndef __IRnPhysSkeleton_FWD_DEFINED__
#define __IRnPhysSkeleton_FWD_DEFINED__
typedef interface IRnPhysSkeleton IRnPhysSkeleton;
#endif 	/* __IRnPhysSkeleton_FWD_DEFINED__ */


#ifndef __IRsPhysObjEvent_FWD_DEFINED__
#define __IRsPhysObjEvent_FWD_DEFINED__
typedef interface IRsPhysObjEvent IRsPhysObjEvent;
#endif 	/* __IRsPhysObjEvent_FWD_DEFINED__ */


#ifndef __IRnPhysSpaceObj_FWD_DEFINED__
#define __IRnPhysSpaceObj_FWD_DEFINED__
typedef interface IRnPhysSpaceObj IRnPhysSpaceObj;
#endif 	/* __IRnPhysSpaceObj_FWD_DEFINED__ */


#ifndef __IRnPhysLocalEnv_FWD_DEFINED__
#define __IRnPhysLocalEnv_FWD_DEFINED__
typedef interface IRnPhysLocalEnv IRnPhysLocalEnv;
#endif 	/* __IRnPhysLocalEnv_FWD_DEFINED__ */


#ifndef __IRnJoint_FWD_DEFINED__
#define __IRnJoint_FWD_DEFINED__
typedef interface IRnJoint IRnJoint;
#endif 	/* __IRnJoint_FWD_DEFINED__ */


#ifndef __IRnPhysGroupObj_FWD_DEFINED__
#define __IRnPhysGroupObj_FWD_DEFINED__
typedef interface IRnPhysGroupObj IRnPhysGroupObj;
#endif 	/* __IRnPhysGroupObj_FWD_DEFINED__ */


#ifndef __IRsCollisionFilter_FWD_DEFINED__
#define __IRsCollisionFilter_FWD_DEFINED__
typedef interface IRsCollisionFilter IRsCollisionFilter;
#endif 	/* __IRsCollisionFilter_FWD_DEFINED__ */


#ifndef __IRfCollisionSet_FWD_DEFINED__
#define __IRfCollisionSet_FWD_DEFINED__
typedef interface IRfCollisionSet IRfCollisionSet;
#endif 	/* __IRfCollisionSet_FWD_DEFINED__ */


#ifndef __IRfIkSolver2_FWD_DEFINED__
#define __IRfIkSolver2_FWD_DEFINED__
typedef interface IRfIkSolver2 IRfIkSolver2;
#endif 	/* __IRfIkSolver2_FWD_DEFINED__ */


#ifndef __IRpPhysics_FWD_DEFINED__
#define __IRpPhysics_FWD_DEFINED__
typedef interface IRpPhysics IRpPhysics;
#endif 	/* __IRpPhysics_FWD_DEFINED__ */


#ifndef __IRsPhysicsNodeFactory_FWD_DEFINED__
#define __IRsPhysicsNodeFactory_FWD_DEFINED__
typedef interface IRsPhysicsNodeFactory IRsPhysicsNodeFactory;
#endif 	/* __IRsPhysicsNodeFactory_FWD_DEFINED__ */


#ifndef __IRsPhysicsCmdFactory_FWD_DEFINED__
#define __IRsPhysicsCmdFactory_FWD_DEFINED__
typedef interface IRsPhysicsCmdFactory IRsPhysicsCmdFactory;
#endif 	/* __IRsPhysicsCmdFactory_FWD_DEFINED__ */


#ifndef __IRsPhysicsDataObjFactory_FWD_DEFINED__
#define __IRsPhysicsDataObjFactory_FWD_DEFINED__
typedef interface IRsPhysicsDataObjFactory IRsPhysicsDataObjFactory;
#endif 	/* __IRsPhysicsDataObjFactory_FWD_DEFINED__ */


#ifndef __IRsFileTypeRsPhysMat_FWD_DEFINED__
#define __IRsFileTypeRsPhysMat_FWD_DEFINED__
typedef interface IRsFileTypeRsPhysMat IRsFileTypeRsPhysMat;
#endif 	/* __IRsFileTypeRsPhysMat_FWD_DEFINED__ */


#ifndef __IRsFileTypeRsPhysEnv_FWD_DEFINED__
#define __IRsFileTypeRsPhysEnv_FWD_DEFINED__
typedef interface IRsFileTypeRsPhysEnv IRsFileTypeRsPhysEnv;
#endif 	/* __IRsFileTypeRsPhysEnv_FWD_DEFINED__ */


#ifndef __IRiPhysicsCommand_FWD_DEFINED__
#define __IRiPhysicsCommand_FWD_DEFINED__
typedef interface IRiPhysicsCommand IRiPhysicsCommand;
#endif 	/* __IRiPhysicsCommand_FWD_DEFINED__ */


#ifndef __IRcPhysSim_FWD_DEFINED__
#define __IRcPhysSim_FWD_DEFINED__
typedef interface IRcPhysSim IRcPhysSim;
#endif 	/* __IRcPhysSim_FWD_DEFINED__ */


#ifndef __IRcPhysNextStep_FWD_DEFINED__
#define __IRcPhysNextStep_FWD_DEFINED__
typedef interface IRcPhysNextStep IRcPhysNextStep;
#endif 	/* __IRcPhysNextStep_FWD_DEFINED__ */


#ifndef __IRcPhysAttr_FWD_DEFINED__
#define __IRcPhysAttr_FWD_DEFINED__
typedef interface IRcPhysAttr IRcPhysAttr;
#endif 	/* __IRcPhysAttr_FWD_DEFINED__ */


#ifndef __IRcPhysStopSim_FWD_DEFINED__
#define __IRcPhysStopSim_FWD_DEFINED__
typedef interface IRcPhysStopSim IRcPhysStopSim;
#endif 	/* __IRcPhysStopSim_FWD_DEFINED__ */


#ifndef __IRcPhysEnvAttr_FWD_DEFINED__
#define __IRcPhysEnvAttr_FWD_DEFINED__
typedef interface IRcPhysEnvAttr IRcPhysEnvAttr;
#endif 	/* __IRcPhysEnvAttr_FWD_DEFINED__ */


#ifndef __IRcPhysRegisterObj_FWD_DEFINED__
#define __IRcPhysRegisterObj_FWD_DEFINED__
typedef interface IRcPhysRegisterObj IRcPhysRegisterObj;
#endif 	/* __IRcPhysRegisterObj_FWD_DEFINED__ */


#ifndef __IRcPhysUnRegisterObj_FWD_DEFINED__
#define __IRcPhysUnRegisterObj_FWD_DEFINED__
typedef interface IRcPhysUnRegisterObj IRcPhysUnRegisterObj;
#endif 	/* __IRcPhysUnRegisterObj_FWD_DEFINED__ */


#ifndef __IRcPhysStartSim_FWD_DEFINED__
#define __IRcPhysStartSim_FWD_DEFINED__
typedef interface IRcPhysStartSim IRcPhysStartSim;
#endif 	/* __IRcPhysStartSim_FWD_DEFINED__ */


#ifndef __IRcSimpleCollision_FWD_DEFINED__
#define __IRcSimpleCollision_FWD_DEFINED__
typedef interface IRcSimpleCollision IRcSimpleCollision;
#endif 	/* __IRcSimpleCollision_FWD_DEFINED__ */


#ifndef __IRcInitCollision_FWD_DEFINED__
#define __IRcInitCollision_FWD_DEFINED__
typedef interface IRcInitCollision IRcInitCollision;
#endif 	/* __IRcInitCollision_FWD_DEFINED__ */


#ifndef __IRcRemovePhysAttr_FWD_DEFINED__
#define __IRcRemovePhysAttr_FWD_DEFINED__
typedef interface IRcRemovePhysAttr IRcRemovePhysAttr;
#endif 	/* __IRcRemovePhysAttr_FWD_DEFINED__ */


#ifndef __IRcPhysCreateEngine_FWD_DEFINED__
#define __IRcPhysCreateEngine_FWD_DEFINED__
typedef interface IRcPhysCreateEngine IRcPhysCreateEngine;
#endif 	/* __IRcPhysCreateEngine_FWD_DEFINED__ */


#ifndef __IRcPhysAddAttrAt3D_FWD_DEFINED__
#define __IRcPhysAddAttrAt3D_FWD_DEFINED__
typedef interface IRcPhysAddAttrAt3D IRcPhysAddAttrAt3D;
#endif 	/* __IRcPhysAddAttrAt3D_FWD_DEFINED__ */


#ifndef __IRcPhysAddEnvAttrAt3D_FWD_DEFINED__
#define __IRcPhysAddEnvAttrAt3D_FWD_DEFINED__
typedef interface IRcPhysAddEnvAttrAt3D IRcPhysAddEnvAttrAt3D;
#endif 	/* __IRcPhysAddEnvAttrAt3D_FWD_DEFINED__ */


#ifndef __IRcPhysCreateToolbar_FWD_DEFINED__
#define __IRcPhysCreateToolbar_FWD_DEFINED__
typedef interface IRcPhysCreateToolbar IRcPhysCreateToolbar;
#endif 	/* __IRcPhysCreateToolbar_FWD_DEFINED__ */


#ifndef __IRcRemoveEnvAttr_FWD_DEFINED__
#define __IRcRemoveEnvAttr_FWD_DEFINED__
typedef interface IRcRemoveEnvAttr IRcRemoveEnvAttr;
#endif 	/* __IRcRemoveEnvAttr_FWD_DEFINED__ */


#ifndef __IRcPhysAddWind_FWD_DEFINED__
#define __IRcPhysAddWind_FWD_DEFINED__
typedef interface IRcPhysAddWind IRcPhysAddWind;
#endif 	/* __IRcPhysAddWind_FWD_DEFINED__ */


#ifndef __IRcPhysCollision_FWD_DEFINED__
#define __IRcPhysCollision_FWD_DEFINED__
typedef interface IRcPhysCollision IRcPhysCollision;
#endif 	/* __IRcPhysCollision_FWD_DEFINED__ */


#ifndef __IRcActivatePhysWidget_FWD_DEFINED__
#define __IRcActivatePhysWidget_FWD_DEFINED__
typedef interface IRcActivatePhysWidget IRcActivatePhysWidget;
#endif 	/* __IRcActivatePhysWidget_FWD_DEFINED__ */


#ifndef __IRcPhysAddImpulse_FWD_DEFINED__
#define __IRcPhysAddImpulse_FWD_DEFINED__
typedef interface IRcPhysAddImpulse IRcPhysAddImpulse;
#endif 	/* __IRcPhysAddImpulse_FWD_DEFINED__ */


#ifndef __IRcPhysAddConstraint_FWD_DEFINED__
#define __IRcPhysAddConstraint_FWD_DEFINED__
typedef interface IRcPhysAddConstraint IRcPhysAddConstraint;
#endif 	/* __IRcPhysAddConstraint_FWD_DEFINED__ */


#ifndef __IRcPhysRegister_FWD_DEFINED__
#define __IRcPhysRegister_FWD_DEFINED__
typedef interface IRcPhysRegister IRcPhysRegister;
#endif 	/* __IRcPhysRegister_FWD_DEFINED__ */


#ifndef __IRcPhysSetSpeed_FWD_DEFINED__
#define __IRcPhysSetSpeed_FWD_DEFINED__
typedef interface IRcPhysSetSpeed IRcPhysSetSpeed;
#endif 	/* __IRcPhysSetSpeed_FWD_DEFINED__ */


#ifndef __IRaPhysEvents_FWD_DEFINED__
#define __IRaPhysEvents_FWD_DEFINED__
typedef interface IRaPhysEvents IRaPhysEvents;
#endif 	/* __IRaPhysEvents_FWD_DEFINED__ */


#ifndef __IRcPhysUpdate_FWD_DEFINED__
#define __IRcPhysUpdate_FWD_DEFINED__
typedef interface IRcPhysUpdate IRcPhysUpdate;
#endif 	/* __IRcPhysUpdate_FWD_DEFINED__ */


#ifndef __IRcPhysCloth_FWD_DEFINED__
#define __IRcPhysCloth_FWD_DEFINED__
typedef interface IRcPhysCloth IRcPhysCloth;
#endif 	/* __IRcPhysCloth_FWD_DEFINED__ */


#ifndef __IRcResetCloth_FWD_DEFINED__
#define __IRcResetCloth_FWD_DEFINED__
typedef interface IRcResetCloth IRcResetCloth;
#endif 	/* __IRcResetCloth_FWD_DEFINED__ */


#ifndef __IRcUpdateInitState_FWD_DEFINED__
#define __IRcUpdateInitState_FWD_DEFINED__
typedef interface IRcUpdateInitState IRcUpdateInitState;
#endif 	/* __IRcUpdateInitState_FWD_DEFINED__ */


#ifndef __IRdPhysNtData_FWD_DEFINED__
#define __IRdPhysNtData_FWD_DEFINED__
typedef interface IRdPhysNtData IRdPhysNtData;
#endif 	/* __IRdPhysNtData_FWD_DEFINED__ */


#ifndef __IRsPhysUpdateAgent_FWD_DEFINED__
#define __IRsPhysUpdateAgent_FWD_DEFINED__
typedef interface IRsPhysUpdateAgent IRsPhysUpdateAgent;
#endif 	/* __IRsPhysUpdateAgent_FWD_DEFINED__ */


#ifndef __IRnCollisionMng_FWD_DEFINED__
#define __IRnCollisionMng_FWD_DEFINED__
typedef interface IRnCollisionMng IRnCollisionMng;
#endif 	/* __IRnCollisionMng_FWD_DEFINED__ */


#ifndef __IRnPhysWind_FWD_DEFINED__
#define __IRnPhysWind_FWD_DEFINED__
typedef interface IRnPhysWind IRnPhysWind;
#endif 	/* __IRnPhysWind_FWD_DEFINED__ */


#ifndef __IRnPhysConstraint_FWD_DEFINED__
#define __IRnPhysConstraint_FWD_DEFINED__
typedef interface IRnPhysConstraint IRnPhysConstraint;
#endif 	/* __IRnPhysConstraint_FWD_DEFINED__ */


#ifndef __IRnSkeletonRoot_FWD_DEFINED__
#define __IRnSkeletonRoot_FWD_DEFINED__
typedef interface IRnSkeletonRoot IRnSkeletonRoot;
#endif 	/* __IRnSkeletonRoot_FWD_DEFINED__ */


#ifndef __IRnBone_FWD_DEFINED__
#define __IRnBone_FWD_DEFINED__
typedef interface IRnBone IRnBone;
#endif 	/* __IRnBone_FWD_DEFINED__ */


#ifndef __IRnIkLock_FWD_DEFINED__
#define __IRnIkLock_FWD_DEFINED__
typedef interface IRnIkLock IRnIkLock;
#endif 	/* __IRnIkLock_FWD_DEFINED__ */


#ifndef __IRnIkMotionController_FWD_DEFINED__
#define __IRnIkMotionController_FWD_DEFINED__
typedef interface IRnIkMotionController IRnIkMotionController;
#endif 	/* __IRnIkMotionController_FWD_DEFINED__ */


#ifndef __IRnBoneForce_FWD_DEFINED__
#define __IRnBoneForce_FWD_DEFINED__
typedef interface IRnBoneForce IRnBoneForce;
#endif 	/* __IRnBoneForce_FWD_DEFINED__ */


#ifndef __IRnFixPoint_FWD_DEFINED__
#define __IRnFixPoint_FWD_DEFINED__
typedef interface IRnFixPoint IRnFixPoint;
#endif 	/* __IRnFixPoint_FWD_DEFINED__ */


#ifndef __IRnCogPoint_FWD_DEFINED__
#define __IRnCogPoint_FWD_DEFINED__
typedef interface IRnCogPoint IRnCogPoint;
#endif 	/* __IRnCogPoint_FWD_DEFINED__ */


#ifndef __IRnGravityForce_FWD_DEFINED__
#define __IRnGravityForce_FWD_DEFINED__
typedef interface IRnGravityForce IRnGravityForce;
#endif 	/* __IRnGravityForce_FWD_DEFINED__ */


#ifndef __IRnEnvForce_FWD_DEFINED__
#define __IRnEnvForce_FWD_DEFINED__
typedef interface IRnEnvForce IRnEnvForce;
#endif 	/* __IRnEnvForce_FWD_DEFINED__ */


#ifndef __IRnPhysMovePreferences_FWD_DEFINED__
#define __IRnPhysMovePreferences_FWD_DEFINED__
typedef interface IRnPhysMovePreferences IRnPhysMovePreferences;
#endif 	/* __IRnPhysMovePreferences_FWD_DEFINED__ */


#ifndef __IRnPhysMove_FWD_DEFINED__
#define __IRnPhysMove_FWD_DEFINED__
typedef interface IRnPhysMove IRnPhysMove;
#endif 	/* __IRnPhysMove_FWD_DEFINED__ */


#ifndef __IRnPhysCloth_FWD_DEFINED__
#define __IRnPhysCloth_FWD_DEFINED__
typedef interface IRnPhysCloth IRnPhysCloth;
#endif 	/* __IRnPhysCloth_FWD_DEFINED__ */


#ifndef __IRnClothFixation_FWD_DEFINED__
#define __IRnClothFixation_FWD_DEFINED__
typedef interface IRnClothFixation IRnClothFixation;
#endif 	/* __IRnClothFixation_FWD_DEFINED__ */


#ifndef __IRfIkSolver_FWD_DEFINED__
#define __IRfIkSolver_FWD_DEFINED__
typedef interface IRfIkSolver IRfIkSolver;
#endif 	/* __IRfIkSolver_FWD_DEFINED__ */


#ifndef __IRfPhysFileHelper_FWD_DEFINED__
#define __IRfPhysFileHelper_FWD_DEFINED__
typedef interface IRfPhysFileHelper IRfPhysFileHelper;
#endif 	/* __IRfPhysFileHelper_FWD_DEFINED__ */


#ifndef __IRsPhysAnimMng_FWD_DEFINED__
#define __IRsPhysAnimMng_FWD_DEFINED__
typedef interface IRsPhysAnimMng IRsPhysAnimMng;
#endif 	/* __IRsPhysAnimMng_FWD_DEFINED__ */


#ifndef __CRsList_FWD_DEFINED__
#define __CRsList_FWD_DEFINED__

#ifdef __cplusplus
typedef class CRsList CRsList;
#else
typedef struct CRsList CRsList;
#endif /* __cplusplus */

#endif 	/* __CRsList_FWD_DEFINED__ */


#ifndef __CRdPhysObjAttr_FWD_DEFINED__
#define __CRdPhysObjAttr_FWD_DEFINED__

#ifdef __cplusplus
typedef class CRdPhysObjAttr CRdPhysObjAttr;
#else
typedef struct CRdPhysObjAttr CRdPhysObjAttr;
#endif /* __cplusplus */

#endif 	/* __CRdPhysObjAttr_FWD_DEFINED__ */


#ifndef __CRdPhysEnvAttr_FWD_DEFINED__
#define __CRdPhysEnvAttr_FWD_DEFINED__

#ifdef __cplusplus
typedef class CRdPhysEnvAttr CRdPhysEnvAttr;
#else
typedef struct CRdPhysEnvAttr CRdPhysEnvAttr;
#endif /* __cplusplus */

#endif 	/* __CRdPhysEnvAttr_FWD_DEFINED__ */


#ifndef __CRdCollInfo_FWD_DEFINED__
#define __CRdCollInfo_FWD_DEFINED__

#ifdef __cplusplus
typedef class CRdCollInfo CRdCollInfo;
#else
typedef struct CRdCollInfo CRdCollInfo;
#endif /* __cplusplus */

#endif 	/* __CRdCollInfo_FWD_DEFINED__ */


#ifndef __CRdPhysImpulse_FWD_DEFINED__
#define __CRdPhysImpulse_FWD_DEFINED__

#ifdef __cplusplus
typedef class CRdPhysImpulse CRdPhysImpulse;
#else
typedef struct CRdPhysImpulse CRdPhysImpulse;
#endif /* __cplusplus */

#endif 	/* __CRdPhysImpulse_FWD_DEFINED__ */


#ifndef __CRdPhysCloth_FWD_DEFINED__
#define __CRdPhysCloth_FWD_DEFINED__

#ifdef __cplusplus
typedef class CRdPhysCloth CRdPhysCloth;
#else
typedef struct CRdPhysCloth CRdPhysCloth;
#endif /* __cplusplus */

#endif 	/* __CRdPhysCloth_FWD_DEFINED__ */


#ifndef __CRfPhysHelper_FWD_DEFINED__
#define __CRfPhysHelper_FWD_DEFINED__

#ifdef __cplusplus
typedef class CRfPhysHelper CRfPhysHelper;
#else
typedef struct CRfPhysHelper CRfPhysHelper;
#endif /* __cplusplus */

#endif 	/* __CRfPhysHelper_FWD_DEFINED__ */


#ifndef __CRpPhysics_FWD_DEFINED__
#define __CRpPhysics_FWD_DEFINED__

#ifdef __cplusplus
typedef class CRpPhysics CRpPhysics;
#else
typedef struct CRpPhysics CRpPhysics;
#endif /* __cplusplus */

#endif 	/* __CRpPhysics_FWD_DEFINED__ */


#ifndef __CRiPhysicsCommand_FWD_DEFINED__
#define __CRiPhysicsCommand_FWD_DEFINED__

#ifdef __cplusplus
typedef class CRiPhysicsCommand CRiPhysicsCommand;
#else
typedef struct CRiPhysicsCommand CRiPhysicsCommand;
#endif /* __cplusplus */

#endif 	/* __CRiPhysicsCommand_FWD_DEFINED__ */


/* header files for imported files */
#include "prsht.h"
#include "mshtml.h"
#include "mshtmhst.h"
#include "exdisp.h"
#include "_kernel.h"
#include "_math.h"
#include "_graph.h"
#include "_space3d.h"
#include "_network.h"
#include "_view3D.h"
#include "_Widgets.h"

#ifdef __cplusplus
extern "C"{
#endif 

void * __RPC_USER MIDL_user_allocate(size_t);
void __RPC_USER MIDL_user_free( void * ); 

/* interface __MIDL_itf__Physics_0000 */
/* [local] */ 


enum RtPhysObjTypes
    {	PHYSATTR_EMPTY	= 0,
	PHYSATTR_ANIM	= 1,
	PHYSATTR_SIMPLE	= 2,
	PHYSATTR_GROUP	= 3,
	PHYSATTR_IK	= 4,
	PHYSATTR_SCRIPT	= 5,
	PHYSATTR_CLOTH	= 6,
	PHYSATTR_TEMP	= 7
    } ;

enum RtPhysAttrFlags
    {	PHYS_EMPTY_FL	= 0,
	PHYS_DISABLECOLLISION_FL	= 1,
	PHYS_FASTCOLLISION_FL	= 2,
	PHYS_BOXCOLLISION_FL	= 4,
	PHYS_BUYONANCY_FL	= 8,
	PHYS_ACTIVE_FL	= 16,
	PHYS_ADHESIVE_FL	= 64,
	PHYS_BREAKABLE_FL	= 128,
	PHYS_BROKEN_PART_FL	= 256,
	PHYS_CONDUCTOR_FL	= 1024,
	PHYS_STRING_FL	= 2048,
	PHYS_SELFCOLLISION_FL	= 4096,
	PHYS_DISABLELOCKS_FL	= 8192,
	PHYS_DESTROY_FL	= 16384
    } ;

enum RtEnvAttrFlags
    {	PHYSENV_EMPTY	= 0,
	PHYSENV_LOCAL_STREAM	= 1,
	PHYSENV_LOCAL_CYCLONE	= 2,
	PHYSENV_WIND_GLOBAL	= 4,
	PHYSENV_WIND_LOCAL	= 8,
	PHYSENV_WIND_ACTIVE	= 16,
	PHYSENV_LOCAL_GRAVITY	= 32,
	PHYNENV_LOCAL_ATMOSPHERE	= 64,
	PHYNENV_COLLISION_ENABLED	= 128
    } ;

enum RtClothAttrFlags
    {	PHYSCLOTH_EMPTY	= 0,
	PHYSCLOTH_SELFCOLLISION	= 1,
	PHYSCLOTH_ACTIVE	= 2,
	PHYSCLOTH_MESH_ONLY	= 4
    } ;

enum RtCollPrecision
    {	COLLISION_PRECISION_FULL	= 0,
	COLLISION_PRECISION_FAST	= 1,
	COLLISION_PRECISION_BOX	= 2,
	COLLISION_PRECISION_TRIAN	= 3,
	COLLISION_PRECISION_CLOTH	= 4
    } ;

enum RtCollType
    {	COLLISION_EMPTY	= 0,
	COLLISION_GROUND	= 1,
	COLLISION_PEER	= 2,
	COLLISION_ENVIR	= 4,
	COLLISION_BONE	= 8,
	COLLISION_PEER_ADHESIVE	= 16,
	COLLISION_CLOTH	= 32
    } ;

enum RtPhysImpulseType
    {	IMPULSE_EMPTY	= 0,
	IMPULSE_SPEED	= 1,
	IMPULSE_ROTATION	= 2,
	IMPULSE_NAVIGATION	= 4,
	IMPULSE_NORMAL	= 8,
	IMPULSE_DISABLED	= 16
    } ;
struct RtCollTrian
    {
    BSTR objname1;
    BSTR objname2;
    short type;
    RtUlong size;
    RtUlong *trian1;
    RtUlong *trian2;
    } ;
struct RtCollData
    {
    RtUlong size;
    RtPoint *data;
    } ;
struct RtObjCollision
    {
    BSTR objname1;
    BSTR objname2;
    short type;
    struct RtCollData colldata;
    } ;
struct RtPhysImpulse
    {
    USHORT flags;
    RtPoint dirvect;
    float magnitude;
    RtPoint upvect;
    float rotation;
    } ;
struct RtPhysAttr
    {
    unsigned short type;
    int flags;
    RtFloat weight;
    RtFloat elasticity;
    RtFloat coarseness;
    RtFloat friction;
    RtFloat resistance;
    RtFloat adhesion;
    RtFloat charge;
    RtFloat stringpower;
    RtFloat stringradius;
    RtPoint localcog;
    RtPoint meshcenter;
    RtPoint motion_speed;
    RtPoint rotation_speed;
    RtPoint acc_motion_speed;
    RtPoint acc_rotation_speed;
    RtUlong fixnum;
    RtPoint fix1;
    RtPoint fix2;
    RtFloat volume;
    RtFloat density;
    RtMatrix3f inertia;
    BSTR name;
    RtFloat fShapeSize;
    struct RtPhysImpulse impulse;
    } ;
struct RtPhysEnvAttr
    {
    RtPoint gravitation;
    RtFloat atmosphere;
    RtFloat thining;
    RtShort type;
    RtPoint stream;
    RtPoint center;
    RtPoint localcenter;
    RtBool active;
    BSTR name;
    } ;
struct RtPhysConstraintData
    {
    RtPoint vect;
    RtFloat time;
    USHORT flags;
    } ;
struct RtClothAttr
    {
    RtUshort flags;
    float stretch;
    float bend;
    float damp;
    float density;
    float thickness;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Physics_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Physics_0000_v0_0_s_ifspec;

#ifndef __IRsList_INTERFACE_DEFINED__
#define __IRsList_INTERFACE_DEFINED__

/* interface IRsList */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsList;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("10D4FED6-1AF0-4F56-E8BB-5546E39BCA4D")
    IRsList : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddNode( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveNode( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCount( 
            /* [out] */ RtUlong *count) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNode( 
            /* [in] */ RtUlong index,
            /* [out] */ IRsNode **pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FindNode( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveAll( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsListVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsList * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsList * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsList * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddNode )( 
            IRsList * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveNode )( 
            IRsList * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCount )( 
            IRsList * This,
            /* [out] */ RtUlong *count);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNode )( 
            IRsList * This,
            /* [in] */ RtUlong index,
            /* [out] */ IRsNode **pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FindNode )( 
            IRsList * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveAll )( 
            IRsList * This);
        
        END_INTERFACE
    } IRsListVtbl;

    interface IRsList
    {
        CONST_VTBL struct IRsListVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsList_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsList_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsList_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsList_AddNode(This,pNode)	\
    (This)->lpVtbl -> AddNode(This,pNode)

#define IRsList_RemoveNode(This,pNode)	\
    (This)->lpVtbl -> RemoveNode(This,pNode)

#define IRsList_GetCount(This,count)	\
    (This)->lpVtbl -> GetCount(This,count)

#define IRsList_GetNode(This,index,pNode)	\
    (This)->lpVtbl -> GetNode(This,index,pNode)

#define IRsList_FindNode(This,pNode)	\
    (This)->lpVtbl -> FindNode(This,pNode)

#define IRsList_RemoveAll(This)	\
    (This)->lpVtbl -> RemoveAll(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsList_AddNode_Proxy( 
    IRsList * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRsList_AddNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsList_RemoveNode_Proxy( 
    IRsList * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRsList_RemoveNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsList_GetCount_Proxy( 
    IRsList * This,
    /* [out] */ RtUlong *count);


void __RPC_STUB IRsList_GetCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsList_GetNode_Proxy( 
    IRsList * This,
    /* [in] */ RtUlong index,
    /* [out] */ IRsNode **pNode);


void __RPC_STUB IRsList_GetNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsList_FindNode_Proxy( 
    IRsList * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRsList_FindNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsList_RemoveAll_Proxy( 
    IRsList * This);


void __RPC_STUB IRsList_RemoveAll_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsList_INTERFACE_DEFINED__ */


#ifndef __IRdPhysObjAttrDisp_INTERFACE_DEFINED__
#define __IRdPhysObjAttrDisp_INTERFACE_DEFINED__

/* interface IRdPhysObjAttrDisp */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdPhysObjAttrDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8f13e92f-d015-4071-922d-fe99febf3600")
    IRdPhysObjAttrDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Type( 
            /* [retval][out] */ int *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Type( 
            /* [in] */ int val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Active( 
            /* [retval][out] */ RtBool *bActive) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Active( 
            /* [in] */ RtBool bActive) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Material( 
            /* [in] */ float m,
            /* [in] */ float e,
            /* [in] */ float r,
            /* [in] */ float f,
            /* [in] */ float c) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Speed( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Speed( 
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Rotation( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Rotation( 
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AccSpeed( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AccSpeed( 
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AccRotation( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AccRotation( 
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR bstrVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Elasticity( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Elasticity( 
            /* [in] */ RtFloat Val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Friction( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Friction( 
            /* [in] */ RtFloat Val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Mass( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Mass( 
            /* [in] */ RtFloat Val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Coarseness( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Coarseness( 
            /* [in] */ RtFloat Val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Resistance( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Resistance( 
            /* [in] */ RtFloat Val) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdPhysObjAttrDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdPhysObjAttrDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdPhysObjAttrDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdPhysObjAttrDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdPhysObjAttrDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdPhysObjAttrDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdPhysObjAttrDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdPhysObjAttrDisp * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
            IRdPhysObjAttrDisp * This,
            /* [retval][out] */ int *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Type )( 
            IRdPhysObjAttrDisp * This,
            /* [in] */ int val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Active )( 
            IRdPhysObjAttrDisp * This,
            /* [retval][out] */ RtBool *bActive);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Active )( 
            IRdPhysObjAttrDisp * This,
            /* [in] */ RtBool bActive);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Material )( 
            IRdPhysObjAttrDisp * This,
            /* [in] */ float m,
            /* [in] */ float e,
            /* [in] */ float r,
            /* [in] */ float f,
            /* [in] */ float c);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Speed )( 
            IRdPhysObjAttrDisp * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Speed )( 
            IRdPhysObjAttrDisp * This,
            /* [in] */ VARIANT pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Rotation )( 
            IRdPhysObjAttrDisp * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Rotation )( 
            IRdPhysObjAttrDisp * This,
            /* [in] */ VARIANT pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AccSpeed )( 
            IRdPhysObjAttrDisp * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AccSpeed )( 
            IRdPhysObjAttrDisp * This,
            /* [in] */ VARIANT pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AccRotation )( 
            IRdPhysObjAttrDisp * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AccRotation )( 
            IRdPhysObjAttrDisp * This,
            /* [in] */ VARIANT pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IRdPhysObjAttrDisp * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IRdPhysObjAttrDisp * This,
            /* [in] */ BSTR bstrVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Elasticity )( 
            IRdPhysObjAttrDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Elasticity )( 
            IRdPhysObjAttrDisp * This,
            /* [in] */ RtFloat Val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Friction )( 
            IRdPhysObjAttrDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Friction )( 
            IRdPhysObjAttrDisp * This,
            /* [in] */ RtFloat Val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Mass )( 
            IRdPhysObjAttrDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Mass )( 
            IRdPhysObjAttrDisp * This,
            /* [in] */ RtFloat Val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Coarseness )( 
            IRdPhysObjAttrDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Coarseness )( 
            IRdPhysObjAttrDisp * This,
            /* [in] */ RtFloat Val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Resistance )( 
            IRdPhysObjAttrDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Resistance )( 
            IRdPhysObjAttrDisp * This,
            /* [in] */ RtFloat Val);
        
        END_INTERFACE
    } IRdPhysObjAttrDispVtbl;

    interface IRdPhysObjAttrDisp
    {
        CONST_VTBL struct IRdPhysObjAttrDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdPhysObjAttrDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdPhysObjAttrDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdPhysObjAttrDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdPhysObjAttrDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdPhysObjAttrDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdPhysObjAttrDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdPhysObjAttrDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdPhysObjAttrDisp_get_Type(This,pVal)	\
    (This)->lpVtbl -> get_Type(This,pVal)

#define IRdPhysObjAttrDisp_put_Type(This,val)	\
    (This)->lpVtbl -> put_Type(This,val)

#define IRdPhysObjAttrDisp_get_Active(This,bActive)	\
    (This)->lpVtbl -> get_Active(This,bActive)

#define IRdPhysObjAttrDisp_put_Active(This,bActive)	\
    (This)->lpVtbl -> put_Active(This,bActive)

#define IRdPhysObjAttrDisp_Material(This,m,e,r,f,c)	\
    (This)->lpVtbl -> Material(This,m,e,r,f,c)

#define IRdPhysObjAttrDisp_get_Speed(This,pVal)	\
    (This)->lpVtbl -> get_Speed(This,pVal)

#define IRdPhysObjAttrDisp_put_Speed(This,pVal)	\
    (This)->lpVtbl -> put_Speed(This,pVal)

#define IRdPhysObjAttrDisp_get_Rotation(This,pVal)	\
    (This)->lpVtbl -> get_Rotation(This,pVal)

#define IRdPhysObjAttrDisp_put_Rotation(This,pVal)	\
    (This)->lpVtbl -> put_Rotation(This,pVal)

#define IRdPhysObjAttrDisp_get_AccSpeed(This,pVal)	\
    (This)->lpVtbl -> get_AccSpeed(This,pVal)

#define IRdPhysObjAttrDisp_put_AccSpeed(This,pVal)	\
    (This)->lpVtbl -> put_AccSpeed(This,pVal)

#define IRdPhysObjAttrDisp_get_AccRotation(This,pVal)	\
    (This)->lpVtbl -> get_AccRotation(This,pVal)

#define IRdPhysObjAttrDisp_put_AccRotation(This,pVal)	\
    (This)->lpVtbl -> put_AccRotation(This,pVal)

#define IRdPhysObjAttrDisp_get_Name(This,pVal)	\
    (This)->lpVtbl -> get_Name(This,pVal)

#define IRdPhysObjAttrDisp_put_Name(This,bstrVal)	\
    (This)->lpVtbl -> put_Name(This,bstrVal)

#define IRdPhysObjAttrDisp_get_Elasticity(This,pVal)	\
    (This)->lpVtbl -> get_Elasticity(This,pVal)

#define IRdPhysObjAttrDisp_put_Elasticity(This,Val)	\
    (This)->lpVtbl -> put_Elasticity(This,Val)

#define IRdPhysObjAttrDisp_get_Friction(This,pVal)	\
    (This)->lpVtbl -> get_Friction(This,pVal)

#define IRdPhysObjAttrDisp_put_Friction(This,Val)	\
    (This)->lpVtbl -> put_Friction(This,Val)

#define IRdPhysObjAttrDisp_get_Mass(This,pVal)	\
    (This)->lpVtbl -> get_Mass(This,pVal)

#define IRdPhysObjAttrDisp_put_Mass(This,Val)	\
    (This)->lpVtbl -> put_Mass(This,Val)

#define IRdPhysObjAttrDisp_get_Coarseness(This,pVal)	\
    (This)->lpVtbl -> get_Coarseness(This,pVal)

#define IRdPhysObjAttrDisp_put_Coarseness(This,Val)	\
    (This)->lpVtbl -> put_Coarseness(This,Val)

#define IRdPhysObjAttrDisp_get_Resistance(This,pVal)	\
    (This)->lpVtbl -> get_Resistance(This,pVal)

#define IRdPhysObjAttrDisp_put_Resistance(This,Val)	\
    (This)->lpVtbl -> put_Resistance(This,Val)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_get_Type_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [retval][out] */ int *pVal);


void __RPC_STUB IRdPhysObjAttrDisp_get_Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_put_Type_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [in] */ int val);


void __RPC_STUB IRdPhysObjAttrDisp_put_Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_get_Active_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [retval][out] */ RtBool *bActive);


void __RPC_STUB IRdPhysObjAttrDisp_get_Active_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_put_Active_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [in] */ RtBool bActive);


void __RPC_STUB IRdPhysObjAttrDisp_put_Active_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_Material_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [in] */ float m,
    /* [in] */ float e,
    /* [in] */ float r,
    /* [in] */ float f,
    /* [in] */ float c);


void __RPC_STUB IRdPhysObjAttrDisp_Material_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_get_Speed_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB IRdPhysObjAttrDisp_get_Speed_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_put_Speed_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [in] */ VARIANT pVal);


void __RPC_STUB IRdPhysObjAttrDisp_put_Speed_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_get_Rotation_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB IRdPhysObjAttrDisp_get_Rotation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_put_Rotation_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [in] */ VARIANT pVal);


void __RPC_STUB IRdPhysObjAttrDisp_put_Rotation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_get_AccSpeed_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB IRdPhysObjAttrDisp_get_AccSpeed_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_put_AccSpeed_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [in] */ VARIANT pVal);


void __RPC_STUB IRdPhysObjAttrDisp_put_AccSpeed_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_get_AccRotation_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB IRdPhysObjAttrDisp_get_AccRotation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_put_AccRotation_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [in] */ VARIANT pVal);


void __RPC_STUB IRdPhysObjAttrDisp_put_AccRotation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_get_Name_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB IRdPhysObjAttrDisp_get_Name_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_put_Name_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [in] */ BSTR bstrVal);


void __RPC_STUB IRdPhysObjAttrDisp_put_Name_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_get_Elasticity_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdPhysObjAttrDisp_get_Elasticity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_put_Elasticity_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [in] */ RtFloat Val);


void __RPC_STUB IRdPhysObjAttrDisp_put_Elasticity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_get_Friction_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdPhysObjAttrDisp_get_Friction_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_put_Friction_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [in] */ RtFloat Val);


void __RPC_STUB IRdPhysObjAttrDisp_put_Friction_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_get_Mass_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdPhysObjAttrDisp_get_Mass_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_put_Mass_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [in] */ RtFloat Val);


void __RPC_STUB IRdPhysObjAttrDisp_put_Mass_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_get_Coarseness_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdPhysObjAttrDisp_get_Coarseness_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_put_Coarseness_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [in] */ RtFloat Val);


void __RPC_STUB IRdPhysObjAttrDisp_put_Coarseness_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_get_Resistance_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdPhysObjAttrDisp_get_Resistance_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttrDisp_put_Resistance_Proxy( 
    IRdPhysObjAttrDisp * This,
    /* [in] */ RtFloat Val);


void __RPC_STUB IRdPhysObjAttrDisp_put_Resistance_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdPhysObjAttrDisp_INTERFACE_DEFINED__ */


#ifndef __IRdPhysObjAttr_INTERFACE_DEFINED__
#define __IRdPhysObjAttr_INTERFACE_DEFINED__

/* interface IRdPhysObjAttr */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdPhysObjAttr;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1E76FB75-0D03-4761-B055-B5E195DD2260")
    IRdPhysObjAttr : public IRsDataObject
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LoadAttributes( 
            /* [in] */ struct RtPhysAttr *attr) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetAttributes( 
            /* [out] */ struct RtPhysAttr *attr) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetPhysNode( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPhysNode( 
            /* [in] */ IRsNode **ppNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Active( 
            /* [out] */ RtBool *bActive) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSpeed( 
            /* [in] */ RtPoint *speed,
            /* [in] */ RtPoint *rotation) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdPhysObjAttrVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdPhysObjAttr * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdPhysObjAttr * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdPhysObjAttr * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRdPhysObjAttr * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRdPhysObjAttr * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDefault )( 
            IRdPhysObjAttr * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LoadAttributes )( 
            IRdPhysObjAttr * This,
            /* [in] */ struct RtPhysAttr *attr);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAttributes )( 
            IRdPhysObjAttr * This,
            /* [out] */ struct RtPhysAttr *attr);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetPhysNode )( 
            IRdPhysObjAttr * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPhysNode )( 
            IRdPhysObjAttr * This,
            /* [in] */ IRsNode **ppNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Active )( 
            IRdPhysObjAttr * This,
            /* [out] */ RtBool *bActive);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSpeed )( 
            IRdPhysObjAttr * This,
            /* [in] */ RtPoint *speed,
            /* [in] */ RtPoint *rotation);
        
        END_INTERFACE
    } IRdPhysObjAttrVtbl;

    interface IRdPhysObjAttr
    {
        CONST_VTBL struct IRdPhysObjAttrVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdPhysObjAttr_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdPhysObjAttr_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdPhysObjAttr_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdPhysObjAttr_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRdPhysObjAttr_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#define IRdPhysObjAttr_SetDefault(This)	\
    (This)->lpVtbl -> SetDefault(This)


#define IRdPhysObjAttr_LoadAttributes(This,attr)	\
    (This)->lpVtbl -> LoadAttributes(This,attr)

#define IRdPhysObjAttr_GetAttributes(This,attr)	\
    (This)->lpVtbl -> GetAttributes(This,attr)

#define IRdPhysObjAttr_SetPhysNode(This,pNode)	\
    (This)->lpVtbl -> SetPhysNode(This,pNode)

#define IRdPhysObjAttr_GetPhysNode(This,ppNode)	\
    (This)->lpVtbl -> GetPhysNode(This,ppNode)

#define IRdPhysObjAttr_Active(This,bActive)	\
    (This)->lpVtbl -> Active(This,bActive)

#define IRdPhysObjAttr_SetSpeed(This,speed,rotation)	\
    (This)->lpVtbl -> SetSpeed(This,speed,rotation)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttr_LoadAttributes_Proxy( 
    IRdPhysObjAttr * This,
    /* [in] */ struct RtPhysAttr *attr);


void __RPC_STUB IRdPhysObjAttr_LoadAttributes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttr_GetAttributes_Proxy( 
    IRdPhysObjAttr * This,
    /* [out] */ struct RtPhysAttr *attr);


void __RPC_STUB IRdPhysObjAttr_GetAttributes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttr_SetPhysNode_Proxy( 
    IRdPhysObjAttr * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRdPhysObjAttr_SetPhysNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttr_GetPhysNode_Proxy( 
    IRdPhysObjAttr * This,
    /* [in] */ IRsNode **ppNode);


void __RPC_STUB IRdPhysObjAttr_GetPhysNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttr_Active_Proxy( 
    IRdPhysObjAttr * This,
    /* [out] */ RtBool *bActive);


void __RPC_STUB IRdPhysObjAttr_Active_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysObjAttr_SetSpeed_Proxy( 
    IRdPhysObjAttr * This,
    /* [in] */ RtPoint *speed,
    /* [in] */ RtPoint *rotation);


void __RPC_STUB IRdPhysObjAttr_SetSpeed_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdPhysObjAttr_INTERFACE_DEFINED__ */


#ifndef __IRdPhysEnvAttrDisp_INTERFACE_DEFINED__
#define __IRdPhysEnvAttrDisp_INTERFACE_DEFINED__

/* interface IRdPhysEnvAttrDisp */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdPhysEnvAttrDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1f13e92f-d015-2171-922d-fe99febf3221")
    IRdPhysEnvAttrDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Active( 
            /* [retval][out] */ RtBool *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Active( 
            /* [in] */ RtBool Val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_StreamType( 
            /* [retval][out] */ int *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_StreamType( 
            /* [in] */ int Val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LocalGravity( 
            /* [retval][out] */ RtBool *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LocalGravity( 
            /* [in] */ RtBool Val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Atmosphere( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Atmosphere( 
            /* [in] */ RtFloat Val) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Thining( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Thining( 
            /* [in] */ RtFloat pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Gravity( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Gravity( 
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Stream( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Stream( 
            /* [in] */ VARIANT pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Name( 
            /* [in] */ BSTR bstrVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdPhysEnvAttrDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdPhysEnvAttrDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdPhysEnvAttrDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdPhysEnvAttrDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdPhysEnvAttrDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdPhysEnvAttrDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdPhysEnvAttrDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdPhysEnvAttrDisp * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Active )( 
            IRdPhysEnvAttrDisp * This,
            /* [retval][out] */ RtBool *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Active )( 
            IRdPhysEnvAttrDisp * This,
            /* [in] */ RtBool Val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_StreamType )( 
            IRdPhysEnvAttrDisp * This,
            /* [retval][out] */ int *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_StreamType )( 
            IRdPhysEnvAttrDisp * This,
            /* [in] */ int Val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LocalGravity )( 
            IRdPhysEnvAttrDisp * This,
            /* [retval][out] */ RtBool *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LocalGravity )( 
            IRdPhysEnvAttrDisp * This,
            /* [in] */ RtBool Val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Atmosphere )( 
            IRdPhysEnvAttrDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Atmosphere )( 
            IRdPhysEnvAttrDisp * This,
            /* [in] */ RtFloat Val);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Thining )( 
            IRdPhysEnvAttrDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Thining )( 
            IRdPhysEnvAttrDisp * This,
            /* [in] */ RtFloat pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Gravity )( 
            IRdPhysEnvAttrDisp * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Gravity )( 
            IRdPhysEnvAttrDisp * This,
            /* [in] */ VARIANT pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Stream )( 
            IRdPhysEnvAttrDisp * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Stream )( 
            IRdPhysEnvAttrDisp * This,
            /* [in] */ VARIANT pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IRdPhysEnvAttrDisp * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Name )( 
            IRdPhysEnvAttrDisp * This,
            /* [in] */ BSTR bstrVal);
        
        END_INTERFACE
    } IRdPhysEnvAttrDispVtbl;

    interface IRdPhysEnvAttrDisp
    {
        CONST_VTBL struct IRdPhysEnvAttrDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdPhysEnvAttrDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdPhysEnvAttrDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdPhysEnvAttrDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdPhysEnvAttrDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdPhysEnvAttrDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdPhysEnvAttrDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdPhysEnvAttrDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdPhysEnvAttrDisp_get_Active(This,pVal)	\
    (This)->lpVtbl -> get_Active(This,pVal)

#define IRdPhysEnvAttrDisp_put_Active(This,Val)	\
    (This)->lpVtbl -> put_Active(This,Val)

#define IRdPhysEnvAttrDisp_get_StreamType(This,pVal)	\
    (This)->lpVtbl -> get_StreamType(This,pVal)

#define IRdPhysEnvAttrDisp_put_StreamType(This,Val)	\
    (This)->lpVtbl -> put_StreamType(This,Val)

#define IRdPhysEnvAttrDisp_get_LocalGravity(This,pVal)	\
    (This)->lpVtbl -> get_LocalGravity(This,pVal)

#define IRdPhysEnvAttrDisp_put_LocalGravity(This,Val)	\
    (This)->lpVtbl -> put_LocalGravity(This,Val)

#define IRdPhysEnvAttrDisp_get_Atmosphere(This,pVal)	\
    (This)->lpVtbl -> get_Atmosphere(This,pVal)

#define IRdPhysEnvAttrDisp_put_Atmosphere(This,Val)	\
    (This)->lpVtbl -> put_Atmosphere(This,Val)

#define IRdPhysEnvAttrDisp_get_Thining(This,pVal)	\
    (This)->lpVtbl -> get_Thining(This,pVal)

#define IRdPhysEnvAttrDisp_put_Thining(This,pVal)	\
    (This)->lpVtbl -> put_Thining(This,pVal)

#define IRdPhysEnvAttrDisp_get_Gravity(This,pVal)	\
    (This)->lpVtbl -> get_Gravity(This,pVal)

#define IRdPhysEnvAttrDisp_put_Gravity(This,pVal)	\
    (This)->lpVtbl -> put_Gravity(This,pVal)

#define IRdPhysEnvAttrDisp_get_Stream(This,pVal)	\
    (This)->lpVtbl -> get_Stream(This,pVal)

#define IRdPhysEnvAttrDisp_put_Stream(This,pVal)	\
    (This)->lpVtbl -> put_Stream(This,pVal)

#define IRdPhysEnvAttrDisp_get_Name(This,pVal)	\
    (This)->lpVtbl -> get_Name(This,pVal)

#define IRdPhysEnvAttrDisp_put_Name(This,bstrVal)	\
    (This)->lpVtbl -> put_Name(This,bstrVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPhysEnvAttrDisp_get_Active_Proxy( 
    IRdPhysEnvAttrDisp * This,
    /* [retval][out] */ RtBool *pVal);


void __RPC_STUB IRdPhysEnvAttrDisp_get_Active_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPhysEnvAttrDisp_put_Active_Proxy( 
    IRdPhysEnvAttrDisp * This,
    /* [in] */ RtBool Val);


void __RPC_STUB IRdPhysEnvAttrDisp_put_Active_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPhysEnvAttrDisp_get_StreamType_Proxy( 
    IRdPhysEnvAttrDisp * This,
    /* [retval][out] */ int *pVal);


void __RPC_STUB IRdPhysEnvAttrDisp_get_StreamType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPhysEnvAttrDisp_put_StreamType_Proxy( 
    IRdPhysEnvAttrDisp * This,
    /* [in] */ int Val);


void __RPC_STUB IRdPhysEnvAttrDisp_put_StreamType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPhysEnvAttrDisp_get_LocalGravity_Proxy( 
    IRdPhysEnvAttrDisp * This,
    /* [retval][out] */ RtBool *pVal);


void __RPC_STUB IRdPhysEnvAttrDisp_get_LocalGravity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPhysEnvAttrDisp_put_LocalGravity_Proxy( 
    IRdPhysEnvAttrDisp * This,
    /* [in] */ RtBool Val);


void __RPC_STUB IRdPhysEnvAttrDisp_put_LocalGravity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPhysEnvAttrDisp_get_Atmosphere_Proxy( 
    IRdPhysEnvAttrDisp * This,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdPhysEnvAttrDisp_get_Atmosphere_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPhysEnvAttrDisp_put_Atmosphere_Proxy( 
    IRdPhysEnvAttrDisp * This,
    /* [in] */ RtFloat Val);


void __RPC_STUB IRdPhysEnvAttrDisp_put_Atmosphere_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPhysEnvAttrDisp_get_Thining_Proxy( 
    IRdPhysEnvAttrDisp * This,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdPhysEnvAttrDisp_get_Thining_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPhysEnvAttrDisp_put_Thining_Proxy( 
    IRdPhysEnvAttrDisp * This,
    /* [in] */ RtFloat pVal);


void __RPC_STUB IRdPhysEnvAttrDisp_put_Thining_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPhysEnvAttrDisp_get_Gravity_Proxy( 
    IRdPhysEnvAttrDisp * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB IRdPhysEnvAttrDisp_get_Gravity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPhysEnvAttrDisp_put_Gravity_Proxy( 
    IRdPhysEnvAttrDisp * This,
    /* [in] */ VARIANT pVal);


void __RPC_STUB IRdPhysEnvAttrDisp_put_Gravity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPhysEnvAttrDisp_get_Stream_Proxy( 
    IRdPhysEnvAttrDisp * This,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB IRdPhysEnvAttrDisp_get_Stream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPhysEnvAttrDisp_put_Stream_Proxy( 
    IRdPhysEnvAttrDisp * This,
    /* [in] */ VARIANT pVal);


void __RPC_STUB IRdPhysEnvAttrDisp_put_Stream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPhysEnvAttrDisp_get_Name_Proxy( 
    IRdPhysEnvAttrDisp * This,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB IRdPhysEnvAttrDisp_get_Name_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPhysEnvAttrDisp_put_Name_Proxy( 
    IRdPhysEnvAttrDisp * This,
    /* [in] */ BSTR bstrVal);


void __RPC_STUB IRdPhysEnvAttrDisp_put_Name_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdPhysEnvAttrDisp_INTERFACE_DEFINED__ */


#ifndef __IRdPhysEnvAttr_INTERFACE_DEFINED__
#define __IRdPhysEnvAttr_INTERFACE_DEFINED__

/* interface IRdPhysEnvAttr */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdPhysEnvAttr;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("AD8A6A6A-B4CF-413f-BF6A-6C60E8E4FB94")
    IRdPhysEnvAttr : public IRsDataObject
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LoadAttributes( 
            /* [in] */ struct RtPhysEnvAttr *attr) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetAttributes( 
            /* [out] */ struct RtPhysEnvAttr *attr) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetEnvNode( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetEnvNode( 
            /* [in] */ IRsNode **ppNode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdPhysEnvAttrVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdPhysEnvAttr * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdPhysEnvAttr * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdPhysEnvAttr * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRdPhysEnvAttr * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRdPhysEnvAttr * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDefault )( 
            IRdPhysEnvAttr * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LoadAttributes )( 
            IRdPhysEnvAttr * This,
            /* [in] */ struct RtPhysEnvAttr *attr);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAttributes )( 
            IRdPhysEnvAttr * This,
            /* [out] */ struct RtPhysEnvAttr *attr);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetEnvNode )( 
            IRdPhysEnvAttr * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetEnvNode )( 
            IRdPhysEnvAttr * This,
            /* [in] */ IRsNode **ppNode);
        
        END_INTERFACE
    } IRdPhysEnvAttrVtbl;

    interface IRdPhysEnvAttr
    {
        CONST_VTBL struct IRdPhysEnvAttrVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdPhysEnvAttr_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdPhysEnvAttr_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdPhysEnvAttr_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdPhysEnvAttr_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRdPhysEnvAttr_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#define IRdPhysEnvAttr_SetDefault(This)	\
    (This)->lpVtbl -> SetDefault(This)


#define IRdPhysEnvAttr_LoadAttributes(This,attr)	\
    (This)->lpVtbl -> LoadAttributes(This,attr)

#define IRdPhysEnvAttr_GetAttributes(This,attr)	\
    (This)->lpVtbl -> GetAttributes(This,attr)

#define IRdPhysEnvAttr_SetEnvNode(This,pNode)	\
    (This)->lpVtbl -> SetEnvNode(This,pNode)

#define IRdPhysEnvAttr_GetEnvNode(This,ppNode)	\
    (This)->lpVtbl -> GetEnvNode(This,ppNode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysEnvAttr_LoadAttributes_Proxy( 
    IRdPhysEnvAttr * This,
    /* [in] */ struct RtPhysEnvAttr *attr);


void __RPC_STUB IRdPhysEnvAttr_LoadAttributes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysEnvAttr_GetAttributes_Proxy( 
    IRdPhysEnvAttr * This,
    /* [out] */ struct RtPhysEnvAttr *attr);


void __RPC_STUB IRdPhysEnvAttr_GetAttributes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysEnvAttr_SetEnvNode_Proxy( 
    IRdPhysEnvAttr * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRdPhysEnvAttr_SetEnvNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysEnvAttr_GetEnvNode_Proxy( 
    IRdPhysEnvAttr * This,
    /* [in] */ IRsNode **ppNode);


void __RPC_STUB IRdPhysEnvAttr_GetEnvNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdPhysEnvAttr_INTERFACE_DEFINED__ */


#ifndef __IRdPhysConstraint_INTERFACE_DEFINED__
#define __IRdPhysConstraint_INTERFACE_DEFINED__

/* interface IRdPhysConstraint */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdPhysConstraint;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("eafd74dc-8af5-4c2e-9691-990fa49e518d")
    IRdPhysConstraint : public IRsDataObject
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LoadData( 
            /* [in] */ struct RtPhysConstraintData *attr) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetData( 
            /* [out] */ struct RtPhysConstraintData *attr) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdPhysConstraintVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdPhysConstraint * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdPhysConstraint * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdPhysConstraint * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRdPhysConstraint * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRdPhysConstraint * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDefault )( 
            IRdPhysConstraint * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LoadData )( 
            IRdPhysConstraint * This,
            /* [in] */ struct RtPhysConstraintData *attr);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetData )( 
            IRdPhysConstraint * This,
            /* [out] */ struct RtPhysConstraintData *attr);
        
        END_INTERFACE
    } IRdPhysConstraintVtbl;

    interface IRdPhysConstraint
    {
        CONST_VTBL struct IRdPhysConstraintVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdPhysConstraint_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdPhysConstraint_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdPhysConstraint_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdPhysConstraint_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRdPhysConstraint_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#define IRdPhysConstraint_SetDefault(This)	\
    (This)->lpVtbl -> SetDefault(This)


#define IRdPhysConstraint_LoadData(This,attr)	\
    (This)->lpVtbl -> LoadData(This,attr)

#define IRdPhysConstraint_GetData(This,attr)	\
    (This)->lpVtbl -> GetData(This,attr)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysConstraint_LoadData_Proxy( 
    IRdPhysConstraint * This,
    /* [in] */ struct RtPhysConstraintData *attr);


void __RPC_STUB IRdPhysConstraint_LoadData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysConstraint_GetData_Proxy( 
    IRdPhysConstraint * This,
    /* [out] */ struct RtPhysConstraintData *attr);


void __RPC_STUB IRdPhysConstraint_GetData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdPhysConstraint_INTERFACE_DEFINED__ */


#ifndef __IRdCollInfoDisp_INTERFACE_DEFINED__
#define __IRdCollInfoDisp_INTERFACE_DEFINED__

/* interface IRdCollInfoDisp */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdCollInfoDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2c712eb6-bd4c-48b3-a667-2adb0bd79e2a")
    IRdCollInfoDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Collision( 
            /* [retval][out] */ RtBool *bCollision) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCount( 
            /* [retval][out] */ RtDWORD *count) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CollPointCount( 
            /* [retval][out] */ RtDWORD *count) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Object( 
            /* [in] */ RtDWORD index,
            /* [out] */ BSTR *name,
            /* [retval][out] */ int *coll_type) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GroundCollision( 
            /* [out] */ VARIANT *pPoint,
            /* [retval][out] */ RtBool *bCollision) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdCollInfoDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdCollInfoDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdCollInfoDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdCollInfoDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdCollInfoDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdCollInfoDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdCollInfoDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdCollInfoDisp * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Collision )( 
            IRdCollInfoDisp * This,
            /* [retval][out] */ RtBool *bCollision);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCount )( 
            IRdCollInfoDisp * This,
            /* [retval][out] */ RtDWORD *count);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CollPointCount )( 
            IRdCollInfoDisp * This,
            /* [retval][out] */ RtDWORD *count);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Object )( 
            IRdCollInfoDisp * This,
            /* [in] */ RtDWORD index,
            /* [out] */ BSTR *name,
            /* [retval][out] */ int *coll_type);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GroundCollision )( 
            IRdCollInfoDisp * This,
            /* [out] */ VARIANT *pPoint,
            /* [retval][out] */ RtBool *bCollision);
        
        END_INTERFACE
    } IRdCollInfoDispVtbl;

    interface IRdCollInfoDisp
    {
        CONST_VTBL struct IRdCollInfoDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdCollInfoDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdCollInfoDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdCollInfoDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdCollInfoDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdCollInfoDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdCollInfoDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdCollInfoDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdCollInfoDisp_Collision(This,bCollision)	\
    (This)->lpVtbl -> Collision(This,bCollision)

#define IRdCollInfoDisp_GetCount(This,count)	\
    (This)->lpVtbl -> GetCount(This,count)

#define IRdCollInfoDisp_CollPointCount(This,count)	\
    (This)->lpVtbl -> CollPointCount(This,count)

#define IRdCollInfoDisp_Object(This,index,name,coll_type)	\
    (This)->lpVtbl -> Object(This,index,name,coll_type)

#define IRdCollInfoDisp_GroundCollision(This,pPoint,bCollision)	\
    (This)->lpVtbl -> GroundCollision(This,pPoint,bCollision)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdCollInfoDisp_Collision_Proxy( 
    IRdCollInfoDisp * This,
    /* [retval][out] */ RtBool *bCollision);


void __RPC_STUB IRdCollInfoDisp_Collision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdCollInfoDisp_GetCount_Proxy( 
    IRdCollInfoDisp * This,
    /* [retval][out] */ RtDWORD *count);


void __RPC_STUB IRdCollInfoDisp_GetCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdCollInfoDisp_CollPointCount_Proxy( 
    IRdCollInfoDisp * This,
    /* [retval][out] */ RtDWORD *count);


void __RPC_STUB IRdCollInfoDisp_CollPointCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdCollInfoDisp_Object_Proxy( 
    IRdCollInfoDisp * This,
    /* [in] */ RtDWORD index,
    /* [out] */ BSTR *name,
    /* [retval][out] */ int *coll_type);


void __RPC_STUB IRdCollInfoDisp_Object_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdCollInfoDisp_GroundCollision_Proxy( 
    IRdCollInfoDisp * This,
    /* [out] */ VARIANT *pPoint,
    /* [retval][out] */ RtBool *bCollision);


void __RPC_STUB IRdCollInfoDisp_GroundCollision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdCollInfoDisp_INTERFACE_DEFINED__ */


#ifndef __IRdCollInfo_INTERFACE_DEFINED__
#define __IRdCollInfo_INTERFACE_DEFINED__

/* interface IRdCollInfo */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdCollInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3FCD6571-1156-46F2-A9D2-3747A2945C8A")
    IRdCollInfo : public IRsDataObject
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddCollisionItem( 
            /* [in] */ struct RtCollTrian colldata) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddCollisionData( 
            /* [in] */ struct RtObjCollision colldata) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockData( 
            /* [out] */ struct RtObjCollision **colldata) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnLockData( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCount( 
            /* [out] */ int *count) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdCollInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdCollInfo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdCollInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdCollInfo * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRdCollInfo * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRdCollInfo * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDefault )( 
            IRdCollInfo * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddCollisionItem )( 
            IRdCollInfo * This,
            /* [in] */ struct RtCollTrian colldata);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddCollisionData )( 
            IRdCollInfo * This,
            /* [in] */ struct RtObjCollision colldata);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockData )( 
            IRdCollInfo * This,
            /* [out] */ struct RtObjCollision **colldata);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnLockData )( 
            IRdCollInfo * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdCollInfo * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCount )( 
            IRdCollInfo * This,
            /* [out] */ int *count);
        
        END_INTERFACE
    } IRdCollInfoVtbl;

    interface IRdCollInfo
    {
        CONST_VTBL struct IRdCollInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdCollInfo_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdCollInfo_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdCollInfo_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdCollInfo_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRdCollInfo_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#define IRdCollInfo_SetDefault(This)	\
    (This)->lpVtbl -> SetDefault(This)


#define IRdCollInfo_AddCollisionItem(This,colldata)	\
    (This)->lpVtbl -> AddCollisionItem(This,colldata)

#define IRdCollInfo_AddCollisionData(This,colldata)	\
    (This)->lpVtbl -> AddCollisionData(This,colldata)

#define IRdCollInfo_LockData(This,colldata)	\
    (This)->lpVtbl -> LockData(This,colldata)

#define IRdCollInfo_UnLockData(This)	\
    (This)->lpVtbl -> UnLockData(This)

#define IRdCollInfo_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdCollInfo_GetCount(This,count)	\
    (This)->lpVtbl -> GetCount(This,count)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdCollInfo_AddCollisionItem_Proxy( 
    IRdCollInfo * This,
    /* [in] */ struct RtCollTrian colldata);


void __RPC_STUB IRdCollInfo_AddCollisionItem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdCollInfo_AddCollisionData_Proxy( 
    IRdCollInfo * This,
    /* [in] */ struct RtObjCollision colldata);


void __RPC_STUB IRdCollInfo_AddCollisionData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdCollInfo_LockData_Proxy( 
    IRdCollInfo * This,
    /* [out] */ struct RtObjCollision **colldata);


void __RPC_STUB IRdCollInfo_LockData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdCollInfo_UnLockData_Proxy( 
    IRdCollInfo * This);


void __RPC_STUB IRdCollInfo_UnLockData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdCollInfo_Clear_Proxy( 
    IRdCollInfo * This);


void __RPC_STUB IRdCollInfo_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdCollInfo_GetCount_Proxy( 
    IRdCollInfo * This,
    /* [out] */ int *count);


void __RPC_STUB IRdCollInfo_GetCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdCollInfo_INTERFACE_DEFINED__ */


#ifndef __IRdPhysImpulseDisp_INTERFACE_DEFINED__
#define __IRdPhysImpulseDisp_INTERFACE_DEFINED__

/* interface IRdPhysImpulseDisp */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdPhysImpulseDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("df4f7c25-a84f-4ff6-b77f-a949525c6ade")
    IRdPhysImpulseDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Navigation( 
            /* [in] */ VARIANT direction,
            /* [in] */ RtFloat magnitude,
            /* [in] */ VARIANT updir,
            /* [in] */ RtFloat rotation) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Impulse( 
            /* [in] */ VARIANT imp,
            /* [in] */ VARIANT torque) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdPhysImpulseDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdPhysImpulseDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdPhysImpulseDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdPhysImpulseDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdPhysImpulseDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdPhysImpulseDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdPhysImpulseDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdPhysImpulseDisp * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Navigation )( 
            IRdPhysImpulseDisp * This,
            /* [in] */ VARIANT direction,
            /* [in] */ RtFloat magnitude,
            /* [in] */ VARIANT updir,
            /* [in] */ RtFloat rotation);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Impulse )( 
            IRdPhysImpulseDisp * This,
            /* [in] */ VARIANT imp,
            /* [in] */ VARIANT torque);
        
        END_INTERFACE
    } IRdPhysImpulseDispVtbl;

    interface IRdPhysImpulseDisp
    {
        CONST_VTBL struct IRdPhysImpulseDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdPhysImpulseDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdPhysImpulseDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdPhysImpulseDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdPhysImpulseDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdPhysImpulseDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdPhysImpulseDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdPhysImpulseDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdPhysImpulseDisp_Navigation(This,direction,magnitude,updir,rotation)	\
    (This)->lpVtbl -> Navigation(This,direction,magnitude,updir,rotation)

#define IRdPhysImpulseDisp_Impulse(This,imp,torque)	\
    (This)->lpVtbl -> Impulse(This,imp,torque)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdPhysImpulseDisp_Navigation_Proxy( 
    IRdPhysImpulseDisp * This,
    /* [in] */ VARIANT direction,
    /* [in] */ RtFloat magnitude,
    /* [in] */ VARIANT updir,
    /* [in] */ RtFloat rotation);


void __RPC_STUB IRdPhysImpulseDisp_Navigation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdPhysImpulseDisp_Impulse_Proxy( 
    IRdPhysImpulseDisp * This,
    /* [in] */ VARIANT imp,
    /* [in] */ VARIANT torque);


void __RPC_STUB IRdPhysImpulseDisp_Impulse_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdPhysImpulseDisp_INTERFACE_DEFINED__ */


#ifndef __IRdPhysImpulse_INTERFACE_DEFINED__
#define __IRdPhysImpulse_INTERFACE_DEFINED__

/* interface IRdPhysImpulse */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdPhysImpulse;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("98473602-99d5-4c99-b15b-ae8e625db343")
    IRdPhysImpulse : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LoadData( 
            /* [in] */ struct RtPhysImpulse *attr) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetData( 
            /* [out] */ struct RtPhysImpulse *attr) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdPhysImpulseVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdPhysImpulse * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdPhysImpulse * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdPhysImpulse * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LoadData )( 
            IRdPhysImpulse * This,
            /* [in] */ struct RtPhysImpulse *attr);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetData )( 
            IRdPhysImpulse * This,
            /* [out] */ struct RtPhysImpulse *attr);
        
        END_INTERFACE
    } IRdPhysImpulseVtbl;

    interface IRdPhysImpulse
    {
        CONST_VTBL struct IRdPhysImpulseVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdPhysImpulse_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdPhysImpulse_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdPhysImpulse_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdPhysImpulse_LoadData(This,attr)	\
    (This)->lpVtbl -> LoadData(This,attr)

#define IRdPhysImpulse_GetData(This,attr)	\
    (This)->lpVtbl -> GetData(This,attr)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysImpulse_LoadData_Proxy( 
    IRdPhysImpulse * This,
    /* [in] */ struct RtPhysImpulse *attr);


void __RPC_STUB IRdPhysImpulse_LoadData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysImpulse_GetData_Proxy( 
    IRdPhysImpulse * This,
    /* [out] */ struct RtPhysImpulse *attr);


void __RPC_STUB IRdPhysImpulse_GetData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdPhysImpulse_INTERFACE_DEFINED__ */


#ifndef __IRdPhysCloth_INTERFACE_DEFINED__
#define __IRdPhysCloth_INTERFACE_DEFINED__

/* interface IRdPhysCloth */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdPhysCloth;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4A010859-6785-4f42-832A-BB2954A472E3")
    IRdPhysCloth : public IRsDataObject
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE PutData( 
            /* [in] */ RtPoint *pPoints,
            /* [in] */ RtUlong size) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockData( 
            /* [out] */ RtPoint **ppPoints,
            /* [out] */ RtUlong *size) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Unlock( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetNode( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNode( 
            /* [in] */ IRsNode **ppNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetParameters( 
            /* [in] */ struct RtClothAttr attr) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetParameters( 
            /* [out] */ struct RtClothAttr *attr) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddFixation( 
            /* [in] */ RtUlong val) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFixation( 
            /* [in] */ RtUlong index,
            /* [out] */ RtUlong *val) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ResetFixation( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FixationCount( 
            /* [out] */ RtUlong *val) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdPhysClothVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdPhysCloth * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdPhysCloth * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdPhysCloth * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRdPhysCloth * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRdPhysCloth * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDefault )( 
            IRdPhysCloth * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *PutData )( 
            IRdPhysCloth * This,
            /* [in] */ RtPoint *pPoints,
            /* [in] */ RtUlong size);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockData )( 
            IRdPhysCloth * This,
            /* [out] */ RtPoint **ppPoints,
            /* [out] */ RtUlong *size);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Unlock )( 
            IRdPhysCloth * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetNode )( 
            IRdPhysCloth * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNode )( 
            IRdPhysCloth * This,
            /* [in] */ IRsNode **ppNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetParameters )( 
            IRdPhysCloth * This,
            /* [in] */ struct RtClothAttr attr);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetParameters )( 
            IRdPhysCloth * This,
            /* [out] */ struct RtClothAttr *attr);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddFixation )( 
            IRdPhysCloth * This,
            /* [in] */ RtUlong val);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFixation )( 
            IRdPhysCloth * This,
            /* [in] */ RtUlong index,
            /* [out] */ RtUlong *val);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ResetFixation )( 
            IRdPhysCloth * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FixationCount )( 
            IRdPhysCloth * This,
            /* [out] */ RtUlong *val);
        
        END_INTERFACE
    } IRdPhysClothVtbl;

    interface IRdPhysCloth
    {
        CONST_VTBL struct IRdPhysClothVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdPhysCloth_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdPhysCloth_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdPhysCloth_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdPhysCloth_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRdPhysCloth_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#define IRdPhysCloth_SetDefault(This)	\
    (This)->lpVtbl -> SetDefault(This)


#define IRdPhysCloth_PutData(This,pPoints,size)	\
    (This)->lpVtbl -> PutData(This,pPoints,size)

#define IRdPhysCloth_LockData(This,ppPoints,size)	\
    (This)->lpVtbl -> LockData(This,ppPoints,size)

#define IRdPhysCloth_Unlock(This)	\
    (This)->lpVtbl -> Unlock(This)

#define IRdPhysCloth_SetNode(This,pNode)	\
    (This)->lpVtbl -> SetNode(This,pNode)

#define IRdPhysCloth_GetNode(This,ppNode)	\
    (This)->lpVtbl -> GetNode(This,ppNode)

#define IRdPhysCloth_SetParameters(This,attr)	\
    (This)->lpVtbl -> SetParameters(This,attr)

#define IRdPhysCloth_GetParameters(This,attr)	\
    (This)->lpVtbl -> GetParameters(This,attr)

#define IRdPhysCloth_AddFixation(This,val)	\
    (This)->lpVtbl -> AddFixation(This,val)

#define IRdPhysCloth_GetFixation(This,index,val)	\
    (This)->lpVtbl -> GetFixation(This,index,val)

#define IRdPhysCloth_ResetFixation(This)	\
    (This)->lpVtbl -> ResetFixation(This)

#define IRdPhysCloth_FixationCount(This,val)	\
    (This)->lpVtbl -> FixationCount(This,val)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysCloth_PutData_Proxy( 
    IRdPhysCloth * This,
    /* [in] */ RtPoint *pPoints,
    /* [in] */ RtUlong size);


void __RPC_STUB IRdPhysCloth_PutData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysCloth_LockData_Proxy( 
    IRdPhysCloth * This,
    /* [out] */ RtPoint **ppPoints,
    /* [out] */ RtUlong *size);


void __RPC_STUB IRdPhysCloth_LockData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysCloth_Unlock_Proxy( 
    IRdPhysCloth * This);


void __RPC_STUB IRdPhysCloth_Unlock_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysCloth_SetNode_Proxy( 
    IRdPhysCloth * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRdPhysCloth_SetNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysCloth_GetNode_Proxy( 
    IRdPhysCloth * This,
    /* [in] */ IRsNode **ppNode);


void __RPC_STUB IRdPhysCloth_GetNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysCloth_SetParameters_Proxy( 
    IRdPhysCloth * This,
    /* [in] */ struct RtClothAttr attr);


void __RPC_STUB IRdPhysCloth_SetParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysCloth_GetParameters_Proxy( 
    IRdPhysCloth * This,
    /* [out] */ struct RtClothAttr *attr);


void __RPC_STUB IRdPhysCloth_GetParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysCloth_AddFixation_Proxy( 
    IRdPhysCloth * This,
    /* [in] */ RtUlong val);


void __RPC_STUB IRdPhysCloth_AddFixation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysCloth_GetFixation_Proxy( 
    IRdPhysCloth * This,
    /* [in] */ RtUlong index,
    /* [out] */ RtUlong *val);


void __RPC_STUB IRdPhysCloth_GetFixation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysCloth_ResetFixation_Proxy( 
    IRdPhysCloth * This);


void __RPC_STUB IRdPhysCloth_ResetFixation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysCloth_FixationCount_Proxy( 
    IRdPhysCloth * This,
    /* [out] */ RtUlong *val);


void __RPC_STUB IRdPhysCloth_FixationCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdPhysCloth_INTERFACE_DEFINED__ */


#ifndef __IRfPhysHelperDisp_INTERFACE_DEFINED__
#define __IRfPhysHelperDisp_INTERFACE_DEFINED__

/* interface IRfPhysHelperDisp */
/* [object][unique][helpstring][uuid][dual] */ 


EXTERN_C const IID IID_IRfPhysHelperDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("AF638CE9-D63F-415a-B792-29CBB451E934")
    IRfPhysHelperDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Volume( 
            /* [in] */ BSTR bstrObjName,
            /* [retval][out] */ RtFloat *volume) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Cog( 
            /* [in] */ BSTR bstrObjName,
            /* [retval][out] */ VARIANT *vCog) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Inertia( 
            /* [in] */ BSTR bstrObjName,
            /* [retval][out] */ VARIANT *vInertia) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FixToPoint( 
            /* [in] */ BSTR bstrObjName,
            /* [in] */ VARIANT p) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FixToPoints( 
            /* [in] */ BSTR bstrObjName,
            /* [in] */ VARIANT p1,
            /* [in] */ VARIANT p2) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ReleaseFixation( 
            /* [in] */ BSTR bstrObjName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumFixation( 
            /* [in] */ BSTR bstrObjName,
            /* [retval][out] */ RtUlong *numfix) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetFixPoint( 
            /* [in] */ BSTR bstrObjName,
            /* [in] */ RtUlong index,
            /* [retval][out] */ VARIANT *vPoint) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfPhysHelperDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfPhysHelperDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfPhysHelperDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfPhysHelperDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRfPhysHelperDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRfPhysHelperDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRfPhysHelperDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRfPhysHelperDisp * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Volume )( 
            IRfPhysHelperDisp * This,
            /* [in] */ BSTR bstrObjName,
            /* [retval][out] */ RtFloat *volume);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Cog )( 
            IRfPhysHelperDisp * This,
            /* [in] */ BSTR bstrObjName,
            /* [retval][out] */ VARIANT *vCog);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Inertia )( 
            IRfPhysHelperDisp * This,
            /* [in] */ BSTR bstrObjName,
            /* [retval][out] */ VARIANT *vInertia);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FixToPoint )( 
            IRfPhysHelperDisp * This,
            /* [in] */ BSTR bstrObjName,
            /* [in] */ VARIANT p);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FixToPoints )( 
            IRfPhysHelperDisp * This,
            /* [in] */ BSTR bstrObjName,
            /* [in] */ VARIANT p1,
            /* [in] */ VARIANT p2);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ReleaseFixation )( 
            IRfPhysHelperDisp * This,
            /* [in] */ BSTR bstrObjName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNumFixation )( 
            IRfPhysHelperDisp * This,
            /* [in] */ BSTR bstrObjName,
            /* [retval][out] */ RtUlong *numfix);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetFixPoint )( 
            IRfPhysHelperDisp * This,
            /* [in] */ BSTR bstrObjName,
            /* [in] */ RtUlong index,
            /* [retval][out] */ VARIANT *vPoint);
        
        END_INTERFACE
    } IRfPhysHelperDispVtbl;

    interface IRfPhysHelperDisp
    {
        CONST_VTBL struct IRfPhysHelperDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfPhysHelperDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfPhysHelperDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfPhysHelperDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfPhysHelperDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRfPhysHelperDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRfPhysHelperDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRfPhysHelperDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRfPhysHelperDisp_Volume(This,bstrObjName,volume)	\
    (This)->lpVtbl -> Volume(This,bstrObjName,volume)

#define IRfPhysHelperDisp_Cog(This,bstrObjName,vCog)	\
    (This)->lpVtbl -> Cog(This,bstrObjName,vCog)

#define IRfPhysHelperDisp_Inertia(This,bstrObjName,vInertia)	\
    (This)->lpVtbl -> Inertia(This,bstrObjName,vInertia)

#define IRfPhysHelperDisp_FixToPoint(This,bstrObjName,p)	\
    (This)->lpVtbl -> FixToPoint(This,bstrObjName,p)

#define IRfPhysHelperDisp_FixToPoints(This,bstrObjName,p1,p2)	\
    (This)->lpVtbl -> FixToPoints(This,bstrObjName,p1,p2)

#define IRfPhysHelperDisp_ReleaseFixation(This,bstrObjName)	\
    (This)->lpVtbl -> ReleaseFixation(This,bstrObjName)

#define IRfPhysHelperDisp_GetNumFixation(This,bstrObjName,numfix)	\
    (This)->lpVtbl -> GetNumFixation(This,bstrObjName,numfix)

#define IRfPhysHelperDisp_GetFixPoint(This,bstrObjName,index,vPoint)	\
    (This)->lpVtbl -> GetFixPoint(This,bstrObjName,index,vPoint)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfPhysHelperDisp_Volume_Proxy( 
    IRfPhysHelperDisp * This,
    /* [in] */ BSTR bstrObjName,
    /* [retval][out] */ RtFloat *volume);


void __RPC_STUB IRfPhysHelperDisp_Volume_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfPhysHelperDisp_Cog_Proxy( 
    IRfPhysHelperDisp * This,
    /* [in] */ BSTR bstrObjName,
    /* [retval][out] */ VARIANT *vCog);


void __RPC_STUB IRfPhysHelperDisp_Cog_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfPhysHelperDisp_Inertia_Proxy( 
    IRfPhysHelperDisp * This,
    /* [in] */ BSTR bstrObjName,
    /* [retval][out] */ VARIANT *vInertia);


void __RPC_STUB IRfPhysHelperDisp_Inertia_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfPhysHelperDisp_FixToPoint_Proxy( 
    IRfPhysHelperDisp * This,
    /* [in] */ BSTR bstrObjName,
    /* [in] */ VARIANT p);


void __RPC_STUB IRfPhysHelperDisp_FixToPoint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfPhysHelperDisp_FixToPoints_Proxy( 
    IRfPhysHelperDisp * This,
    /* [in] */ BSTR bstrObjName,
    /* [in] */ VARIANT p1,
    /* [in] */ VARIANT p2);


void __RPC_STUB IRfPhysHelperDisp_FixToPoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfPhysHelperDisp_ReleaseFixation_Proxy( 
    IRfPhysHelperDisp * This,
    /* [in] */ BSTR bstrObjName);


void __RPC_STUB IRfPhysHelperDisp_ReleaseFixation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfPhysHelperDisp_GetNumFixation_Proxy( 
    IRfPhysHelperDisp * This,
    /* [in] */ BSTR bstrObjName,
    /* [retval][out] */ RtUlong *numfix);


void __RPC_STUB IRfPhysHelperDisp_GetNumFixation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfPhysHelperDisp_GetFixPoint_Proxy( 
    IRfPhysHelperDisp * This,
    /* [in] */ BSTR bstrObjName,
    /* [in] */ RtUlong index,
    /* [retval][out] */ VARIANT *vPoint);


void __RPC_STUB IRfPhysHelperDisp_GetFixPoint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfPhysHelperDisp_INTERFACE_DEFINED__ */


#ifndef __IRfPhysHelper_INTERFACE_DEFINED__
#define __IRfPhysHelper_INTERFACE_DEFINED__

/* interface IRfPhysHelper */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRfPhysHelper;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2c01a684-180c-4a31-9316-9e3b14e4fe62")
    IRfPhysHelper : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreatePhysEngine( 
            /* [in] */ IRnEncapsulator *pRoot,
            /* [retval][out] */ IRsNode **ppEngine) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPhysEngine( 
            /* [in] */ IRnEncapsulator *pRoot,
            /* [retval][out] */ IRsNode **ppEngine) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetOctreeObj( 
            /* [in] */ IRsNode *pSpace,
            /* [retval][out] */ IRsNode **ppTree) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPhysObj( 
            /* [in] */ IRsNode *pNode,
            /* [retval][out] */ IRsNode **ppPhysObj) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPhysEnvObj( 
            /* [in] */ IRsNode *pNode,
            /* [retval][out] */ IRsNode **ppEnvObj) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DisableInSceneOctree( 
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtBool bDisable) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetObjectVolume( 
            /* [in] */ IRsNode *pNode,
            /* [retval][out] */ RtFloat *volume) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetObjectInvariant( 
            /* [in] */ IRsNode *pNode,
            /* [in] */ int bLocal,
            /* [out] */ IRdMatrixf **ppInertia,
            /* [out] */ float *pVolume,
            /* [out] */ RtPoint *pCog) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetBBox( 
            /* [in] */ IRsNode *pNode,
            /* [out] */ RtFloat *box) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCollisionResponse( 
            /* [in] */ IRsNode *pNode,
            /* [in] */ IRdCollInfo *pColl,
            /* [out] */ RtPoint *pSpeed,
            /* [out] */ RtPoint *pRotation) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UpdateObjPosition( 
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtPoint *pSpeed,
            /* [in] */ RtPoint *pRotation,
            /* [in] */ RtFloat time) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE MovePhysObject( 
            /* [in] */ IRsNode *pNode,
            /* [in] */ float deltatime) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetFixPoint( 
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtPoint p) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetFixPoints( 
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtPoint p1,
            /* [in] */ RtPoint p2) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveFixation( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFixPoints( 
            /* [in] */ IRsNode *pNode,
            /* [out] */ RtUlong *pNumfix,
            /* [out] */ RtPoint *pP1,
            /* [out] */ RtPoint *pP2) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfPhysHelperVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfPhysHelper * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfPhysHelper * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfPhysHelper * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreatePhysEngine )( 
            IRfPhysHelper * This,
            /* [in] */ IRnEncapsulator *pRoot,
            /* [retval][out] */ IRsNode **ppEngine);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPhysEngine )( 
            IRfPhysHelper * This,
            /* [in] */ IRnEncapsulator *pRoot,
            /* [retval][out] */ IRsNode **ppEngine);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetOctreeObj )( 
            IRfPhysHelper * This,
            /* [in] */ IRsNode *pSpace,
            /* [retval][out] */ IRsNode **ppTree);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPhysObj )( 
            IRfPhysHelper * This,
            /* [in] */ IRsNode *pNode,
            /* [retval][out] */ IRsNode **ppPhysObj);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPhysEnvObj )( 
            IRfPhysHelper * This,
            /* [in] */ IRsNode *pNode,
            /* [retval][out] */ IRsNode **ppEnvObj);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DisableInSceneOctree )( 
            IRfPhysHelper * This,
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtBool bDisable);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetObjectVolume )( 
            IRfPhysHelper * This,
            /* [in] */ IRsNode *pNode,
            /* [retval][out] */ RtFloat *volume);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetObjectInvariant )( 
            IRfPhysHelper * This,
            /* [in] */ IRsNode *pNode,
            /* [in] */ int bLocal,
            /* [out] */ IRdMatrixf **ppInertia,
            /* [out] */ float *pVolume,
            /* [out] */ RtPoint *pCog);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetBBox )( 
            IRfPhysHelper * This,
            /* [in] */ IRsNode *pNode,
            /* [out] */ RtFloat *box);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCollisionResponse )( 
            IRfPhysHelper * This,
            /* [in] */ IRsNode *pNode,
            /* [in] */ IRdCollInfo *pColl,
            /* [out] */ RtPoint *pSpeed,
            /* [out] */ RtPoint *pRotation);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UpdateObjPosition )( 
            IRfPhysHelper * This,
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtPoint *pSpeed,
            /* [in] */ RtPoint *pRotation,
            /* [in] */ RtFloat time);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MovePhysObject )( 
            IRfPhysHelper * This,
            /* [in] */ IRsNode *pNode,
            /* [in] */ float deltatime);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetFixPoint )( 
            IRfPhysHelper * This,
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtPoint p);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetFixPoints )( 
            IRfPhysHelper * This,
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtPoint p1,
            /* [in] */ RtPoint p2);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveFixation )( 
            IRfPhysHelper * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFixPoints )( 
            IRfPhysHelper * This,
            /* [in] */ IRsNode *pNode,
            /* [out] */ RtUlong *pNumfix,
            /* [out] */ RtPoint *pP1,
            /* [out] */ RtPoint *pP2);
        
        END_INTERFACE
    } IRfPhysHelperVtbl;

    interface IRfPhysHelper
    {
        CONST_VTBL struct IRfPhysHelperVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfPhysHelper_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfPhysHelper_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfPhysHelper_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfPhysHelper_CreatePhysEngine(This,pRoot,ppEngine)	\
    (This)->lpVtbl -> CreatePhysEngine(This,pRoot,ppEngine)

#define IRfPhysHelper_GetPhysEngine(This,pRoot,ppEngine)	\
    (This)->lpVtbl -> GetPhysEngine(This,pRoot,ppEngine)

#define IRfPhysHelper_GetOctreeObj(This,pSpace,ppTree)	\
    (This)->lpVtbl -> GetOctreeObj(This,pSpace,ppTree)

#define IRfPhysHelper_GetPhysObj(This,pNode,ppPhysObj)	\
    (This)->lpVtbl -> GetPhysObj(This,pNode,ppPhysObj)

#define IRfPhysHelper_GetPhysEnvObj(This,pNode,ppEnvObj)	\
    (This)->lpVtbl -> GetPhysEnvObj(This,pNode,ppEnvObj)

#define IRfPhysHelper_DisableInSceneOctree(This,pNode,bDisable)	\
    (This)->lpVtbl -> DisableInSceneOctree(This,pNode,bDisable)

#define IRfPhysHelper_GetObjectVolume(This,pNode,volume)	\
    (This)->lpVtbl -> GetObjectVolume(This,pNode,volume)

#define IRfPhysHelper_GetObjectInvariant(This,pNode,bLocal,ppInertia,pVolume,pCog)	\
    (This)->lpVtbl -> GetObjectInvariant(This,pNode,bLocal,ppInertia,pVolume,pCog)

#define IRfPhysHelper_GetBBox(This,pNode,box)	\
    (This)->lpVtbl -> GetBBox(This,pNode,box)

#define IRfPhysHelper_GetCollisionResponse(This,pNode,pColl,pSpeed,pRotation)	\
    (This)->lpVtbl -> GetCollisionResponse(This,pNode,pColl,pSpeed,pRotation)

#define IRfPhysHelper_UpdateObjPosition(This,pNode,pSpeed,pRotation,time)	\
    (This)->lpVtbl -> UpdateObjPosition(This,pNode,pSpeed,pRotation,time)

#define IRfPhysHelper_MovePhysObject(This,pNode,deltatime)	\
    (This)->lpVtbl -> MovePhysObject(This,pNode,deltatime)

#define IRfPhysHelper_SetFixPoint(This,pNode,p)	\
    (This)->lpVtbl -> SetFixPoint(This,pNode,p)

#define IRfPhysHelper_SetFixPoints(This,pNode,p1,p2)	\
    (This)->lpVtbl -> SetFixPoints(This,pNode,p1,p2)

#define IRfPhysHelper_RemoveFixation(This,pNode)	\
    (This)->lpVtbl -> RemoveFixation(This,pNode)

#define IRfPhysHelper_GetFixPoints(This,pNode,pNumfix,pP1,pP2)	\
    (This)->lpVtbl -> GetFixPoints(This,pNode,pNumfix,pP1,pP2)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfPhysHelper_CreatePhysEngine_Proxy( 
    IRfPhysHelper * This,
    /* [in] */ IRnEncapsulator *pRoot,
    /* [retval][out] */ IRsNode **ppEngine);


void __RPC_STUB IRfPhysHelper_CreatePhysEngine_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfPhysHelper_GetPhysEngine_Proxy( 
    IRfPhysHelper * This,
    /* [in] */ IRnEncapsulator *pRoot,
    /* [retval][out] */ IRsNode **ppEngine);


void __RPC_STUB IRfPhysHelper_GetPhysEngine_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfPhysHelper_GetOctreeObj_Proxy( 
    IRfPhysHelper * This,
    /* [in] */ IRsNode *pSpace,
    /* [retval][out] */ IRsNode **ppTree);


void __RPC_STUB IRfPhysHelper_GetOctreeObj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfPhysHelper_GetPhysObj_Proxy( 
    IRfPhysHelper * This,
    /* [in] */ IRsNode *pNode,
    /* [retval][out] */ IRsNode **ppPhysObj);


void __RPC_STUB IRfPhysHelper_GetPhysObj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfPhysHelper_GetPhysEnvObj_Proxy( 
    IRfPhysHelper * This,
    /* [in] */ IRsNode *pNode,
    /* [retval][out] */ IRsNode **ppEnvObj);


void __RPC_STUB IRfPhysHelper_GetPhysEnvObj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfPhysHelper_DisableInSceneOctree_Proxy( 
    IRfPhysHelper * This,
    /* [in] */ IRsNode *pNode,
    /* [in] */ RtBool bDisable);


void __RPC_STUB IRfPhysHelper_DisableInSceneOctree_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfPhysHelper_GetObjectVolume_Proxy( 
    IRfPhysHelper * This,
    /* [in] */ IRsNode *pNode,
    /* [retval][out] */ RtFloat *volume);


void __RPC_STUB IRfPhysHelper_GetObjectVolume_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfPhysHelper_GetObjectInvariant_Proxy( 
    IRfPhysHelper * This,
    /* [in] */ IRsNode *pNode,
    /* [in] */ int bLocal,
    /* [out] */ IRdMatrixf **ppInertia,
    /* [out] */ float *pVolume,
    /* [out] */ RtPoint *pCog);


void __RPC_STUB IRfPhysHelper_GetObjectInvariant_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfPhysHelper_GetBBox_Proxy( 
    IRfPhysHelper * This,
    /* [in] */ IRsNode *pNode,
    /* [out] */ RtFloat *box);


void __RPC_STUB IRfPhysHelper_GetBBox_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfPhysHelper_GetCollisionResponse_Proxy( 
    IRfPhysHelper * This,
    /* [in] */ IRsNode *pNode,
    /* [in] */ IRdCollInfo *pColl,
    /* [out] */ RtPoint *pSpeed,
    /* [out] */ RtPoint *pRotation);


void __RPC_STUB IRfPhysHelper_GetCollisionResponse_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfPhysHelper_UpdateObjPosition_Proxy( 
    IRfPhysHelper * This,
    /* [in] */ IRsNode *pNode,
    /* [in] */ RtPoint *pSpeed,
    /* [in] */ RtPoint *pRotation,
    /* [in] */ RtFloat time);


void __RPC_STUB IRfPhysHelper_UpdateObjPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfPhysHelper_MovePhysObject_Proxy( 
    IRfPhysHelper * This,
    /* [in] */ IRsNode *pNode,
    /* [in] */ float deltatime);


void __RPC_STUB IRfPhysHelper_MovePhysObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfPhysHelper_SetFixPoint_Proxy( 
    IRfPhysHelper * This,
    /* [in] */ IRsNode *pNode,
    /* [in] */ RtPoint p);


void __RPC_STUB IRfPhysHelper_SetFixPoint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfPhysHelper_SetFixPoints_Proxy( 
    IRfPhysHelper * This,
    /* [in] */ IRsNode *pNode,
    /* [in] */ RtPoint p1,
    /* [in] */ RtPoint p2);


void __RPC_STUB IRfPhysHelper_SetFixPoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfPhysHelper_RemoveFixation_Proxy( 
    IRfPhysHelper * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRfPhysHelper_RemoveFixation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfPhysHelper_GetFixPoints_Proxy( 
    IRfPhysHelper * This,
    /* [in] */ IRsNode *pNode,
    /* [out] */ RtUlong *pNumfix,
    /* [out] */ RtPoint *pP1,
    /* [out] */ RtPoint *pP2);


void __RPC_STUB IRfPhysHelper_GetFixPoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfPhysHelper_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Physics_2572 */
/* [local] */ 


enum RtPhysEvent
    {	PHEVNT_EMPTY	= 0,
	PHEVNT_STARTSIM	= 1,
	PHEVNT_STOPSIM	= 2,
	PHEVNT_FRAMETIME	= 4,
	PHEVNT_COLLISION	= 8,
	PHEVNT_COLLISION_GROUND	= 16,
	PHEVNT_COLLISION_PEER	= 32,
	PHEVNT_BREAK	= 64,
	PHEVNT_BREAK_PART	= 128
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Physics_2572_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Physics_2572_v0_0_s_ifspec;

#ifndef __IRsPhysEvent_INTERFACE_DEFINED__
#define __IRsPhysEvent_INTERFACE_DEFINED__

/* interface IRsPhysEvent */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsPhysEvent;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("71b3f470-7570-4d1f-ae29-9f3938bd429d")
    IRsPhysEvent : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Create( 
            /* [in] */ enum RtPhysEvent eEvent,
            /* [in] */ IRsNode *pNode,
            /* [in] */ VARIANT *pVtData) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Event( 
            /* [out] */ enum RtPhysEvent *peEvent) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Source( 
            /* [out] */ IRsNode **ppNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE EventData( 
            /* [out] */ VARIANT *pVtData) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsPhysEventVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsPhysEvent * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsPhysEvent * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsPhysEvent * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Create )( 
            IRsPhysEvent * This,
            /* [in] */ enum RtPhysEvent eEvent,
            /* [in] */ IRsNode *pNode,
            /* [in] */ VARIANT *pVtData);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Event )( 
            IRsPhysEvent * This,
            /* [out] */ enum RtPhysEvent *peEvent);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Source )( 
            IRsPhysEvent * This,
            /* [out] */ IRsNode **ppNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EventData )( 
            IRsPhysEvent * This,
            /* [out] */ VARIANT *pVtData);
        
        END_INTERFACE
    } IRsPhysEventVtbl;

    interface IRsPhysEvent
    {
        CONST_VTBL struct IRsPhysEventVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsPhysEvent_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsPhysEvent_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsPhysEvent_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsPhysEvent_Create(This,eEvent,pNode,pVtData)	\
    (This)->lpVtbl -> Create(This,eEvent,pNode,pVtData)

#define IRsPhysEvent_Event(This,peEvent)	\
    (This)->lpVtbl -> Event(This,peEvent)

#define IRsPhysEvent_Source(This,ppNode)	\
    (This)->lpVtbl -> Source(This,ppNode)

#define IRsPhysEvent_EventData(This,pVtData)	\
    (This)->lpVtbl -> EventData(This,pVtData)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsPhysEvent_Create_Proxy( 
    IRsPhysEvent * This,
    /* [in] */ enum RtPhysEvent eEvent,
    /* [in] */ IRsNode *pNode,
    /* [in] */ VARIANT *pVtData);


void __RPC_STUB IRsPhysEvent_Create_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsPhysEvent_Event_Proxy( 
    IRsPhysEvent * This,
    /* [out] */ enum RtPhysEvent *peEvent);


void __RPC_STUB IRsPhysEvent_Event_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsPhysEvent_Source_Proxy( 
    IRsPhysEvent * This,
    /* [out] */ IRsNode **ppNode);


void __RPC_STUB IRsPhysEvent_Source_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsPhysEvent_EventData_Proxy( 
    IRsPhysEvent * This,
    /* [out] */ VARIANT *pVtData);


void __RPC_STUB IRsPhysEvent_EventData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsPhysEvent_INTERFACE_DEFINED__ */


#ifndef __IRsPhysSimEvents_INTERFACE_DEFINED__
#define __IRsPhysSimEvents_INTERFACE_DEFINED__

/* interface IRsPhysSimEvents */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsPhysSimEvents;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("a4d11948-8c62-48e6-95c2-e00a3254529c")
    IRsPhysSimEvents : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE OnPhysEvent( 
            /* [in] */ IRsPhysEvent *pEvent) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsPhysSimEventsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsPhysSimEvents * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsPhysSimEvents * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsPhysSimEvents * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *OnPhysEvent )( 
            IRsPhysSimEvents * This,
            /* [in] */ IRsPhysEvent *pEvent);
        
        END_INTERFACE
    } IRsPhysSimEventsVtbl;

    interface IRsPhysSimEvents
    {
        CONST_VTBL struct IRsPhysSimEventsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsPhysSimEvents_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsPhysSimEvents_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsPhysSimEvents_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsPhysSimEvents_OnPhysEvent(This,pEvent)	\
    (This)->lpVtbl -> OnPhysEvent(This,pEvent)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsPhysSimEvents_OnPhysEvent_Proxy( 
    IRsPhysSimEvents * This,
    /* [in] */ IRsPhysEvent *pEvent);


void __RPC_STUB IRsPhysSimEvents_OnPhysEvent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsPhysSimEvents_INTERFACE_DEFINED__ */


#ifndef __IRnPhysEngine_INTERFACE_DEFINED__
#define __IRnPhysEngine_INTERFACE_DEFINED__

/* interface IRnPhysEngine */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnPhysEngine;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("818E9C1C-1749-4301-B3E9-A5D2285E98E2")
    IRnPhysEngine : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE InitPhysEngine( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE StartSimulation( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE StopSimulation( 
            /* [in] */ RtBool *bContinue) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetActiveState( 
            /* [out] */ RtBool *bActive) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RegisterObj( 
            /* [in] */ IRsBaseNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnRegisterObj( 
            /* [in] */ IRsBaseNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE PickPhysObj( 
            /* [in] */ RtPoint *pScreenPoint,
            /* [in] */ IRsNode *pView,
            /* [out] */ IRsNode **pSelNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMouseMove( 
            /* [in] */ RtPoint *pScreenPoint,
            /* [in] */ IRsNode *pView,
            /* [in] */ RtShort *flags) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FreePickedObj( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddImpulse( 
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtPoint force,
            /* [in] */ RtPoint torque) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE EnumObjects( 
            /* [in] */ RtFloat *box,
            /* [in] */ RtBool bSubObj,
            /* [out] */ IRsList **ppList) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE BlockNetworkSync( 
            /* [in] */ RtBool bBlock) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ActivateObj( 
            /* [in] */ IRsBaseNode *pNode,
            /* [in] */ RtBool bActivate) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE NetworkStatus( 
            /* [out] */ RtUshort *uStatus) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnPhysEngineVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnPhysEngine * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnPhysEngine * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnPhysEngine * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *InitPhysEngine )( 
            IRnPhysEngine * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *StartSimulation )( 
            IRnPhysEngine * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *StopSimulation )( 
            IRnPhysEngine * This,
            /* [in] */ RtBool *bContinue);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetActiveState )( 
            IRnPhysEngine * This,
            /* [out] */ RtBool *bActive);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterObj )( 
            IRnPhysEngine * This,
            /* [in] */ IRsBaseNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnRegisterObj )( 
            IRnPhysEngine * This,
            /* [in] */ IRsBaseNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *PickPhysObj )( 
            IRnPhysEngine * This,
            /* [in] */ RtPoint *pScreenPoint,
            /* [in] */ IRsNode *pView,
            /* [out] */ IRsNode **pSelNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMouseMove )( 
            IRnPhysEngine * This,
            /* [in] */ RtPoint *pScreenPoint,
            /* [in] */ IRsNode *pView,
            /* [in] */ RtShort *flags);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FreePickedObj )( 
            IRnPhysEngine * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddImpulse )( 
            IRnPhysEngine * This,
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtPoint force,
            /* [in] */ RtPoint torque);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumObjects )( 
            IRnPhysEngine * This,
            /* [in] */ RtFloat *box,
            /* [in] */ RtBool bSubObj,
            /* [out] */ IRsList **ppList);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *BlockNetworkSync )( 
            IRnPhysEngine * This,
            /* [in] */ RtBool bBlock);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ActivateObj )( 
            IRnPhysEngine * This,
            /* [in] */ IRsBaseNode *pNode,
            /* [in] */ RtBool bActivate);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *NetworkStatus )( 
            IRnPhysEngine * This,
            /* [out] */ RtUshort *uStatus);
        
        END_INTERFACE
    } IRnPhysEngineVtbl;

    interface IRnPhysEngine
    {
        CONST_VTBL struct IRnPhysEngineVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnPhysEngine_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnPhysEngine_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnPhysEngine_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnPhysEngine_InitPhysEngine(This)	\
    (This)->lpVtbl -> InitPhysEngine(This)

#define IRnPhysEngine_StartSimulation(This)	\
    (This)->lpVtbl -> StartSimulation(This)

#define IRnPhysEngine_StopSimulation(This,bContinue)	\
    (This)->lpVtbl -> StopSimulation(This,bContinue)

#define IRnPhysEngine_GetActiveState(This,bActive)	\
    (This)->lpVtbl -> GetActiveState(This,bActive)

#define IRnPhysEngine_RegisterObj(This,pNode)	\
    (This)->lpVtbl -> RegisterObj(This,pNode)

#define IRnPhysEngine_UnRegisterObj(This,pNode)	\
    (This)->lpVtbl -> UnRegisterObj(This,pNode)

#define IRnPhysEngine_PickPhysObj(This,pScreenPoint,pView,pSelNode)	\
    (This)->lpVtbl -> PickPhysObj(This,pScreenPoint,pView,pSelNode)

#define IRnPhysEngine_SetMouseMove(This,pScreenPoint,pView,flags)	\
    (This)->lpVtbl -> SetMouseMove(This,pScreenPoint,pView,flags)

#define IRnPhysEngine_FreePickedObj(This)	\
    (This)->lpVtbl -> FreePickedObj(This)

#define IRnPhysEngine_AddImpulse(This,pNode,force,torque)	\
    (This)->lpVtbl -> AddImpulse(This,pNode,force,torque)

#define IRnPhysEngine_EnumObjects(This,box,bSubObj,ppList)	\
    (This)->lpVtbl -> EnumObjects(This,box,bSubObj,ppList)

#define IRnPhysEngine_BlockNetworkSync(This,bBlock)	\
    (This)->lpVtbl -> BlockNetworkSync(This,bBlock)

#define IRnPhysEngine_ActivateObj(This,pNode,bActivate)	\
    (This)->lpVtbl -> ActivateObj(This,pNode,bActivate)

#define IRnPhysEngine_NetworkStatus(This,uStatus)	\
    (This)->lpVtbl -> NetworkStatus(This,uStatus)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysEngine_InitPhysEngine_Proxy( 
    IRnPhysEngine * This);


void __RPC_STUB IRnPhysEngine_InitPhysEngine_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysEngine_StartSimulation_Proxy( 
    IRnPhysEngine * This);


void __RPC_STUB IRnPhysEngine_StartSimulation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysEngine_StopSimulation_Proxy( 
    IRnPhysEngine * This,
    /* [in] */ RtBool *bContinue);


void __RPC_STUB IRnPhysEngine_StopSimulation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysEngine_GetActiveState_Proxy( 
    IRnPhysEngine * This,
    /* [out] */ RtBool *bActive);


void __RPC_STUB IRnPhysEngine_GetActiveState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysEngine_RegisterObj_Proxy( 
    IRnPhysEngine * This,
    /* [in] */ IRsBaseNode *pNode);


void __RPC_STUB IRnPhysEngine_RegisterObj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysEngine_UnRegisterObj_Proxy( 
    IRnPhysEngine * This,
    /* [in] */ IRsBaseNode *pNode);


void __RPC_STUB IRnPhysEngine_UnRegisterObj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysEngine_PickPhysObj_Proxy( 
    IRnPhysEngine * This,
    /* [in] */ RtPoint *pScreenPoint,
    /* [in] */ IRsNode *pView,
    /* [out] */ IRsNode **pSelNode);


void __RPC_STUB IRnPhysEngine_PickPhysObj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysEngine_SetMouseMove_Proxy( 
    IRnPhysEngine * This,
    /* [in] */ RtPoint *pScreenPoint,
    /* [in] */ IRsNode *pView,
    /* [in] */ RtShort *flags);


void __RPC_STUB IRnPhysEngine_SetMouseMove_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysEngine_FreePickedObj_Proxy( 
    IRnPhysEngine * This);


void __RPC_STUB IRnPhysEngine_FreePickedObj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysEngine_AddImpulse_Proxy( 
    IRnPhysEngine * This,
    /* [in] */ IRsNode *pNode,
    /* [in] */ RtPoint force,
    /* [in] */ RtPoint torque);


void __RPC_STUB IRnPhysEngine_AddImpulse_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysEngine_EnumObjects_Proxy( 
    IRnPhysEngine * This,
    /* [in] */ RtFloat *box,
    /* [in] */ RtBool bSubObj,
    /* [out] */ IRsList **ppList);


void __RPC_STUB IRnPhysEngine_EnumObjects_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysEngine_BlockNetworkSync_Proxy( 
    IRnPhysEngine * This,
    /* [in] */ RtBool bBlock);


void __RPC_STUB IRnPhysEngine_BlockNetworkSync_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysEngine_ActivateObj_Proxy( 
    IRnPhysEngine * This,
    /* [in] */ IRsBaseNode *pNode,
    /* [in] */ RtBool bActivate);


void __RPC_STUB IRnPhysEngine_ActivateObj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysEngine_NetworkStatus_Proxy( 
    IRnPhysEngine * This,
    /* [out] */ RtUshort *uStatus);


void __RPC_STUB IRnPhysEngine_NetworkStatus_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRnPhysEngine_INTERFACE_DEFINED__ */


#ifndef __IRnPhysTime_INTERFACE_DEFINED__
#define __IRnPhysTime_INTERFACE_DEFINED__

/* interface IRnPhysTime */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnPhysTime;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("30826007-8AAC-435a-B23D-BB72FEC02985")
    IRnPhysTime : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ProcessTick( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetFrame( 
            /* [in] */ RtFloat *frame) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetTime( 
            /* [in] */ RtFloat fTime) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnPhysTimeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnPhysTime * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnPhysTime * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnPhysTime * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ProcessTick )( 
            IRnPhysTime * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetFrame )( 
            IRnPhysTime * This,
            /* [in] */ RtFloat *frame);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetTime )( 
            IRnPhysTime * This,
            /* [in] */ RtFloat fTime);
        
        END_INTERFACE
    } IRnPhysTimeVtbl;

    interface IRnPhysTime
    {
        CONST_VTBL struct IRnPhysTimeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnPhysTime_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnPhysTime_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnPhysTime_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnPhysTime_ProcessTick(This)	\
    (This)->lpVtbl -> ProcessTick(This)

#define IRnPhysTime_SetFrame(This,frame)	\
    (This)->lpVtbl -> SetFrame(This,frame)

#define IRnPhysTime_SetTime(This,fTime)	\
    (This)->lpVtbl -> SetTime(This,fTime)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysTime_ProcessTick_Proxy( 
    IRnPhysTime * This);


void __RPC_STUB IRnPhysTime_ProcessTick_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysTime_SetFrame_Proxy( 
    IRnPhysTime * This,
    /* [in] */ RtFloat *frame);


void __RPC_STUB IRnPhysTime_SetFrame_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysTime_SetTime_Proxy( 
    IRnPhysTime * This,
    /* [in] */ RtFloat fTime);


void __RPC_STUB IRnPhysTime_SetTime_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRnPhysTime_INTERFACE_DEFINED__ */


#ifndef __IRnPhysActiveObj_INTERFACE_DEFINED__
#define __IRnPhysActiveObj_INTERFACE_DEFINED__

/* interface IRnPhysActiveObj */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnPhysActiveObj;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0E3FBC90-4F87-454B-94F4-063373AC848F")
    IRnPhysActiveObj : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE InitPhysObj( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE InitialState( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetOBBTree( 
            /* [out] */ IRdOBBTree **pOBBTree) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPhysAttr( 
            /* [out] */ struct RtPhysAttr *attr) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetShapeInfo( 
            /* [out] */ IRsBaseNode **pShape) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetResistance( 
            /* [out] */ RtFloat *resistance,
            /* [out] */ RtFloat *volume) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCog( 
            /* [out] */ RtFloat *cog_x,
            /* [out] */ RtFloat *cog_y,
            /* [out] */ RtFloat *cog_z) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetStringParam( 
            /* [out] */ RtBool *effect,
            /* [out] */ RtPoint *cog,
            /* [out] */ RtFloat *radius,
            /* [out] */ RtFloat *power) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE IsCollisionDisabled( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DisableInSceneOctree( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE EnableInSceneOctree( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE IsAdhesive( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetBBox( 
            /* [out] */ RtFloat *box) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetPhysAttr( 
            /* [in] */ struct RtPhysAttr *attr) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE IsBrokenPart( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UpdateShapeInfo( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE InitDefaultCog( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnPhysActiveObjVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnPhysActiveObj * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnPhysActiveObj * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnPhysActiveObj * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *InitPhysObj )( 
            IRnPhysActiveObj * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *InitialState )( 
            IRnPhysActiveObj * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetOBBTree )( 
            IRnPhysActiveObj * This,
            /* [out] */ IRdOBBTree **pOBBTree);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPhysAttr )( 
            IRnPhysActiveObj * This,
            /* [out] */ struct RtPhysAttr *attr);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetShapeInfo )( 
            IRnPhysActiveObj * This,
            /* [out] */ IRsBaseNode **pShape);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetResistance )( 
            IRnPhysActiveObj * This,
            /* [out] */ RtFloat *resistance,
            /* [out] */ RtFloat *volume);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCog )( 
            IRnPhysActiveObj * This,
            /* [out] */ RtFloat *cog_x,
            /* [out] */ RtFloat *cog_y,
            /* [out] */ RtFloat *cog_z);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetStringParam )( 
            IRnPhysActiveObj * This,
            /* [out] */ RtBool *effect,
            /* [out] */ RtPoint *cog,
            /* [out] */ RtFloat *radius,
            /* [out] */ RtFloat *power);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *IsCollisionDisabled )( 
            IRnPhysActiveObj * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DisableInSceneOctree )( 
            IRnPhysActiveObj * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnableInSceneOctree )( 
            IRnPhysActiveObj * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *IsAdhesive )( 
            IRnPhysActiveObj * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetBBox )( 
            IRnPhysActiveObj * This,
            /* [out] */ RtFloat *box);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetPhysAttr )( 
            IRnPhysActiveObj * This,
            /* [in] */ struct RtPhysAttr *attr);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *IsBrokenPart )( 
            IRnPhysActiveObj * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UpdateShapeInfo )( 
            IRnPhysActiveObj * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *InitDefaultCog )( 
            IRnPhysActiveObj * This);
        
        END_INTERFACE
    } IRnPhysActiveObjVtbl;

    interface IRnPhysActiveObj
    {
        CONST_VTBL struct IRnPhysActiveObjVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnPhysActiveObj_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnPhysActiveObj_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnPhysActiveObj_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnPhysActiveObj_InitPhysObj(This)	\
    (This)->lpVtbl -> InitPhysObj(This)

#define IRnPhysActiveObj_InitialState(This)	\
    (This)->lpVtbl -> InitialState(This)

#define IRnPhysActiveObj_GetOBBTree(This,pOBBTree)	\
    (This)->lpVtbl -> GetOBBTree(This,pOBBTree)

#define IRnPhysActiveObj_GetPhysAttr(This,attr)	\
    (This)->lpVtbl -> GetPhysAttr(This,attr)

#define IRnPhysActiveObj_GetShapeInfo(This,pShape)	\
    (This)->lpVtbl -> GetShapeInfo(This,pShape)

#define IRnPhysActiveObj_GetResistance(This,resistance,volume)	\
    (This)->lpVtbl -> GetResistance(This,resistance,volume)

#define IRnPhysActiveObj_GetCog(This,cog_x,cog_y,cog_z)	\
    (This)->lpVtbl -> GetCog(This,cog_x,cog_y,cog_z)

#define IRnPhysActiveObj_GetStringParam(This,effect,cog,radius,power)	\
    (This)->lpVtbl -> GetStringParam(This,effect,cog,radius,power)

#define IRnPhysActiveObj_IsCollisionDisabled(This)	\
    (This)->lpVtbl -> IsCollisionDisabled(This)

#define IRnPhysActiveObj_DisableInSceneOctree(This)	\
    (This)->lpVtbl -> DisableInSceneOctree(This)

#define IRnPhysActiveObj_EnableInSceneOctree(This)	\
    (This)->lpVtbl -> EnableInSceneOctree(This)

#define IRnPhysActiveObj_IsAdhesive(This)	\
    (This)->lpVtbl -> IsAdhesive(This)

#define IRnPhysActiveObj_GetBBox(This,box)	\
    (This)->lpVtbl -> GetBBox(This,box)

#define IRnPhysActiveObj_SetPhysAttr(This,attr)	\
    (This)->lpVtbl -> SetPhysAttr(This,attr)

#define IRnPhysActiveObj_IsBrokenPart(This)	\
    (This)->lpVtbl -> IsBrokenPart(This)

#define IRnPhysActiveObj_UpdateShapeInfo(This)	\
    (This)->lpVtbl -> UpdateShapeInfo(This)

#define IRnPhysActiveObj_InitDefaultCog(This)	\
    (This)->lpVtbl -> InitDefaultCog(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysActiveObj_InitPhysObj_Proxy( 
    IRnPhysActiveObj * This);


void __RPC_STUB IRnPhysActiveObj_InitPhysObj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysActiveObj_InitialState_Proxy( 
    IRnPhysActiveObj * This);


void __RPC_STUB IRnPhysActiveObj_InitialState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysActiveObj_GetOBBTree_Proxy( 
    IRnPhysActiveObj * This,
    /* [out] */ IRdOBBTree **pOBBTree);


void __RPC_STUB IRnPhysActiveObj_GetOBBTree_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysActiveObj_GetPhysAttr_Proxy( 
    IRnPhysActiveObj * This,
    /* [out] */ struct RtPhysAttr *attr);


void __RPC_STUB IRnPhysActiveObj_GetPhysAttr_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysActiveObj_GetShapeInfo_Proxy( 
    IRnPhysActiveObj * This,
    /* [out] */ IRsBaseNode **pShape);


void __RPC_STUB IRnPhysActiveObj_GetShapeInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysActiveObj_GetResistance_Proxy( 
    IRnPhysActiveObj * This,
    /* [out] */ RtFloat *resistance,
    /* [out] */ RtFloat *volume);


void __RPC_STUB IRnPhysActiveObj_GetResistance_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysActiveObj_GetCog_Proxy( 
    IRnPhysActiveObj * This,
    /* [out] */ RtFloat *cog_x,
    /* [out] */ RtFloat *cog_y,
    /* [out] */ RtFloat *cog_z);


void __RPC_STUB IRnPhysActiveObj_GetCog_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysActiveObj_GetStringParam_Proxy( 
    IRnPhysActiveObj * This,
    /* [out] */ RtBool *effect,
    /* [out] */ RtPoint *cog,
    /* [out] */ RtFloat *radius,
    /* [out] */ RtFloat *power);


void __RPC_STUB IRnPhysActiveObj_GetStringParam_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysActiveObj_IsCollisionDisabled_Proxy( 
    IRnPhysActiveObj * This);


void __RPC_STUB IRnPhysActiveObj_IsCollisionDisabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysActiveObj_DisableInSceneOctree_Proxy( 
    IRnPhysActiveObj * This);


void __RPC_STUB IRnPhysActiveObj_DisableInSceneOctree_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysActiveObj_EnableInSceneOctree_Proxy( 
    IRnPhysActiveObj * This);


void __RPC_STUB IRnPhysActiveObj_EnableInSceneOctree_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysActiveObj_IsAdhesive_Proxy( 
    IRnPhysActiveObj * This);


void __RPC_STUB IRnPhysActiveObj_IsAdhesive_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysActiveObj_GetBBox_Proxy( 
    IRnPhysActiveObj * This,
    /* [out] */ RtFloat *box);


void __RPC_STUB IRnPhysActiveObj_GetBBox_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysActiveObj_SetPhysAttr_Proxy( 
    IRnPhysActiveObj * This,
    /* [in] */ struct RtPhysAttr *attr);


void __RPC_STUB IRnPhysActiveObj_SetPhysAttr_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysActiveObj_IsBrokenPart_Proxy( 
    IRnPhysActiveObj * This);


void __RPC_STUB IRnPhysActiveObj_IsBrokenPart_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysActiveObj_UpdateShapeInfo_Proxy( 
    IRnPhysActiveObj * This);


void __RPC_STUB IRnPhysActiveObj_UpdateShapeInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysActiveObj_InitDefaultCog_Proxy( 
    IRnPhysActiveObj * This);


void __RPC_STUB IRnPhysActiveObj_InitDefaultCog_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRnPhysActiveObj_INTERFACE_DEFINED__ */


#ifndef __IRnPhysSkeleton_INTERFACE_DEFINED__
#define __IRnPhysSkeleton_INTERFACE_DEFINED__

/* interface IRnPhysSkeleton */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnPhysSkeleton;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2E6FBA90-FF87-4F4B-E4F4-051273AC8C8F")
    IRnPhysSkeleton : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE InitSkeleton( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetJoints( 
            /* [out] */ IRsList **list) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNumJoints( 
            /* [out] */ RtDWORD *count) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetRootBone( 
            /* [out] */ IRsNode **spBone) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetBones( 
            /* [out] */ IRsList **list) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNumBones( 
            /* [out] */ RtDWORD *count) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSkelNode( 
            /* [out] */ IRsNode **spSkel) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UpdateSkelParam( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnPhysSkeletonVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnPhysSkeleton * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnPhysSkeleton * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnPhysSkeleton * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *InitSkeleton )( 
            IRnPhysSkeleton * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetJoints )( 
            IRnPhysSkeleton * This,
            /* [out] */ IRsList **list);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNumJoints )( 
            IRnPhysSkeleton * This,
            /* [out] */ RtDWORD *count);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetRootBone )( 
            IRnPhysSkeleton * This,
            /* [out] */ IRsNode **spBone);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetBones )( 
            IRnPhysSkeleton * This,
            /* [out] */ IRsList **list);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNumBones )( 
            IRnPhysSkeleton * This,
            /* [out] */ RtDWORD *count);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSkelNode )( 
            IRnPhysSkeleton * This,
            /* [out] */ IRsNode **spSkel);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UpdateSkelParam )( 
            IRnPhysSkeleton * This);
        
        END_INTERFACE
    } IRnPhysSkeletonVtbl;

    interface IRnPhysSkeleton
    {
        CONST_VTBL struct IRnPhysSkeletonVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnPhysSkeleton_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnPhysSkeleton_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnPhysSkeleton_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnPhysSkeleton_InitSkeleton(This)	\
    (This)->lpVtbl -> InitSkeleton(This)

#define IRnPhysSkeleton_GetJoints(This,list)	\
    (This)->lpVtbl -> GetJoints(This,list)

#define IRnPhysSkeleton_GetNumJoints(This,count)	\
    (This)->lpVtbl -> GetNumJoints(This,count)

#define IRnPhysSkeleton_GetRootBone(This,spBone)	\
    (This)->lpVtbl -> GetRootBone(This,spBone)

#define IRnPhysSkeleton_GetBones(This,list)	\
    (This)->lpVtbl -> GetBones(This,list)

#define IRnPhysSkeleton_GetNumBones(This,count)	\
    (This)->lpVtbl -> GetNumBones(This,count)

#define IRnPhysSkeleton_GetSkelNode(This,spSkel)	\
    (This)->lpVtbl -> GetSkelNode(This,spSkel)

#define IRnPhysSkeleton_UpdateSkelParam(This)	\
    (This)->lpVtbl -> UpdateSkelParam(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysSkeleton_InitSkeleton_Proxy( 
    IRnPhysSkeleton * This);


void __RPC_STUB IRnPhysSkeleton_InitSkeleton_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysSkeleton_GetJoints_Proxy( 
    IRnPhysSkeleton * This,
    /* [out] */ IRsList **list);


void __RPC_STUB IRnPhysSkeleton_GetJoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysSkeleton_GetNumJoints_Proxy( 
    IRnPhysSkeleton * This,
    /* [out] */ RtDWORD *count);


void __RPC_STUB IRnPhysSkeleton_GetNumJoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysSkeleton_GetRootBone_Proxy( 
    IRnPhysSkeleton * This,
    /* [out] */ IRsNode **spBone);


void __RPC_STUB IRnPhysSkeleton_GetRootBone_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysSkeleton_GetBones_Proxy( 
    IRnPhysSkeleton * This,
    /* [out] */ IRsList **list);


void __RPC_STUB IRnPhysSkeleton_GetBones_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysSkeleton_GetNumBones_Proxy( 
    IRnPhysSkeleton * This,
    /* [out] */ RtDWORD *count);


void __RPC_STUB IRnPhysSkeleton_GetNumBones_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysSkeleton_GetSkelNode_Proxy( 
    IRnPhysSkeleton * This,
    /* [out] */ IRsNode **spSkel);


void __RPC_STUB IRnPhysSkeleton_GetSkelNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysSkeleton_UpdateSkelParam_Proxy( 
    IRnPhysSkeleton * This);


void __RPC_STUB IRnPhysSkeleton_UpdateSkelParam_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRnPhysSkeleton_INTERFACE_DEFINED__ */


#ifndef __IRsPhysObjEvent_INTERFACE_DEFINED__
#define __IRsPhysObjEvent_INTERFACE_DEFINED__

/* interface IRsPhysObjEvent */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsPhysObjEvent;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("a4e13958-8c62-47e6-95c8-ea0d32545d9c")
    IRsPhysObjEvent : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddEvent( 
            /* [in] */ enum RtPhysEvent event,
            /* [in] */ IRsNode *source,
            /* [in] */ IRsNode *peer) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemEvent( 
            /* [in] */ enum RtPhysEvent event,
            /* [in] */ IRsNode *source,
            /* [in] */ IRsNode *peer) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CountEvent( 
            /* [out] */ RtUlong *count) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetEvent( 
            /* [in] */ RtUlong index,
            /* [out] */ enum RtPhysEvent *event,
            /* [out] */ IRsNode **source,
            /* [out] */ IRsNode **peer) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ClearEvent( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsPhysObjEventVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsPhysObjEvent * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsPhysObjEvent * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsPhysObjEvent * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddEvent )( 
            IRsPhysObjEvent * This,
            /* [in] */ enum RtPhysEvent event,
            /* [in] */ IRsNode *source,
            /* [in] */ IRsNode *peer);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemEvent )( 
            IRsPhysObjEvent * This,
            /* [in] */ enum RtPhysEvent event,
            /* [in] */ IRsNode *source,
            /* [in] */ IRsNode *peer);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CountEvent )( 
            IRsPhysObjEvent * This,
            /* [out] */ RtUlong *count);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetEvent )( 
            IRsPhysObjEvent * This,
            /* [in] */ RtUlong index,
            /* [out] */ enum RtPhysEvent *event,
            /* [out] */ IRsNode **source,
            /* [out] */ IRsNode **peer);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ClearEvent )( 
            IRsPhysObjEvent * This);
        
        END_INTERFACE
    } IRsPhysObjEventVtbl;

    interface IRsPhysObjEvent
    {
        CONST_VTBL struct IRsPhysObjEventVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsPhysObjEvent_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsPhysObjEvent_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsPhysObjEvent_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsPhysObjEvent_AddEvent(This,event,source,peer)	\
    (This)->lpVtbl -> AddEvent(This,event,source,peer)

#define IRsPhysObjEvent_RemEvent(This,event,source,peer)	\
    (This)->lpVtbl -> RemEvent(This,event,source,peer)

#define IRsPhysObjEvent_CountEvent(This,count)	\
    (This)->lpVtbl -> CountEvent(This,count)

#define IRsPhysObjEvent_GetEvent(This,index,event,source,peer)	\
    (This)->lpVtbl -> GetEvent(This,index,event,source,peer)

#define IRsPhysObjEvent_ClearEvent(This)	\
    (This)->lpVtbl -> ClearEvent(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsPhysObjEvent_AddEvent_Proxy( 
    IRsPhysObjEvent * This,
    /* [in] */ enum RtPhysEvent event,
    /* [in] */ IRsNode *source,
    /* [in] */ IRsNode *peer);


void __RPC_STUB IRsPhysObjEvent_AddEvent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsPhysObjEvent_RemEvent_Proxy( 
    IRsPhysObjEvent * This,
    /* [in] */ enum RtPhysEvent event,
    /* [in] */ IRsNode *source,
    /* [in] */ IRsNode *peer);


void __RPC_STUB IRsPhysObjEvent_RemEvent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsPhysObjEvent_CountEvent_Proxy( 
    IRsPhysObjEvent * This,
    /* [out] */ RtUlong *count);


void __RPC_STUB IRsPhysObjEvent_CountEvent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsPhysObjEvent_GetEvent_Proxy( 
    IRsPhysObjEvent * This,
    /* [in] */ RtUlong index,
    /* [out] */ enum RtPhysEvent *event,
    /* [out] */ IRsNode **source,
    /* [out] */ IRsNode **peer);


void __RPC_STUB IRsPhysObjEvent_GetEvent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsPhysObjEvent_ClearEvent_Proxy( 
    IRsPhysObjEvent * This);


void __RPC_STUB IRsPhysObjEvent_ClearEvent_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsPhysObjEvent_INTERFACE_DEFINED__ */


#ifndef __IRnPhysSpaceObj_INTERFACE_DEFINED__
#define __IRnPhysSpaceObj_INTERFACE_DEFINED__

/* interface IRnPhysSpaceObj */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnPhysSpaceObj;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("62238A47-728F-47CB-B587-0CFADF3D70C7")
    IRnPhysSpaceObj : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnPhysSpaceObjVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnPhysSpaceObj * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnPhysSpaceObj * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnPhysSpaceObj * This);
        
        END_INTERFACE
    } IRnPhysSpaceObjVtbl;

    interface IRnPhysSpaceObj
    {
        CONST_VTBL struct IRnPhysSpaceObjVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnPhysSpaceObj_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnPhysSpaceObj_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnPhysSpaceObj_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnPhysSpaceObj_INTERFACE_DEFINED__ */


#ifndef __IRnPhysLocalEnv_INTERFACE_DEFINED__
#define __IRnPhysLocalEnv_INTERFACE_DEFINED__

/* interface IRnPhysLocalEnv */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnPhysLocalEnv;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("109E73F4-7CD3-4A44-8A78-93E15FEB4790")
    IRnPhysLocalEnv : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE InitObj( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetEnvAttr( 
            /* [out] */ struct RtPhysEnvAttr *attr) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetEnvAttr( 
            /* [in] */ struct RtPhysEnvAttr *attr) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnPhysLocalEnvVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnPhysLocalEnv * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnPhysLocalEnv * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnPhysLocalEnv * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *InitObj )( 
            IRnPhysLocalEnv * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetEnvAttr )( 
            IRnPhysLocalEnv * This,
            /* [out] */ struct RtPhysEnvAttr *attr);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetEnvAttr )( 
            IRnPhysLocalEnv * This,
            /* [in] */ struct RtPhysEnvAttr *attr);
        
        END_INTERFACE
    } IRnPhysLocalEnvVtbl;

    interface IRnPhysLocalEnv
    {
        CONST_VTBL struct IRnPhysLocalEnvVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnPhysLocalEnv_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnPhysLocalEnv_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnPhysLocalEnv_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnPhysLocalEnv_InitObj(This)	\
    (This)->lpVtbl -> InitObj(This)

#define IRnPhysLocalEnv_GetEnvAttr(This,attr)	\
    (This)->lpVtbl -> GetEnvAttr(This,attr)

#define IRnPhysLocalEnv_SetEnvAttr(This,attr)	\
    (This)->lpVtbl -> SetEnvAttr(This,attr)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysLocalEnv_InitObj_Proxy( 
    IRnPhysLocalEnv * This);


void __RPC_STUB IRnPhysLocalEnv_InitObj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysLocalEnv_GetEnvAttr_Proxy( 
    IRnPhysLocalEnv * This,
    /* [out] */ struct RtPhysEnvAttr *attr);


void __RPC_STUB IRnPhysLocalEnv_GetEnvAttr_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysLocalEnv_SetEnvAttr_Proxy( 
    IRnPhysLocalEnv * This,
    /* [in] */ struct RtPhysEnvAttr *attr);


void __RPC_STUB IRnPhysLocalEnv_SetEnvAttr_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRnPhysLocalEnv_INTERFACE_DEFINED__ */


#ifndef __IRnJoint_INTERFACE_DEFINED__
#define __IRnJoint_INTERFACE_DEFINED__

/* interface IRnJoint */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnJoint;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D8D648CE-6846-462D-9DD7-B5820FD48228")
    IRnJoint : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnJointVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnJoint * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnJoint * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnJoint * This);
        
        END_INTERFACE
    } IRnJointVtbl;

    interface IRnJoint
    {
        CONST_VTBL struct IRnJointVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnJoint_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnJoint_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnJoint_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnJoint_INTERFACE_DEFINED__ */


#ifndef __IRnPhysGroupObj_INTERFACE_DEFINED__
#define __IRnPhysGroupObj_INTERFACE_DEFINED__

/* interface IRnPhysGroupObj */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnPhysGroupObj;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BE49BFA8-04EF-4A21-A9E9-7AFC41893E79")
    IRnPhysGroupObj : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE InitGroupObj( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSubObjList( 
            /* [out] */ IRsList **ppList) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSubObjects( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteSubObjects( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddSubObject( 
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtBool *bAppend) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Update( 
            /* [in] */ RtBool *bForce) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE IsSubObject( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveSubObject( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSubObjectCount( 
            /* [out] */ int *count) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetActiveSubObjectCount( 
            /* [out] */ int *count) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE InitSpeeds( void) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetSyncFlag( void) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE UpdateParam( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnPhysGroupObjVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnPhysGroupObj * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnPhysGroupObj * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnPhysGroupObj * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *InitGroupObj )( 
            IRnPhysGroupObj * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSubObjList )( 
            IRnPhysGroupObj * This,
            /* [out] */ IRsList **ppList);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSubObjects )( 
            IRnPhysGroupObj * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteSubObjects )( 
            IRnPhysGroupObj * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddSubObject )( 
            IRnPhysGroupObj * This,
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtBool *bAppend);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Update )( 
            IRnPhysGroupObj * This,
            /* [in] */ RtBool *bForce);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *IsSubObject )( 
            IRnPhysGroupObj * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveSubObject )( 
            IRnPhysGroupObj * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSubObjectCount )( 
            IRnPhysGroupObj * This,
            /* [out] */ int *count);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetActiveSubObjectCount )( 
            IRnPhysGroupObj * This,
            /* [out] */ int *count);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *InitSpeeds )( 
            IRnPhysGroupObj * This);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetSyncFlag )( 
            IRnPhysGroupObj * This);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *UpdateParam )( 
            IRnPhysGroupObj * This);
        
        END_INTERFACE
    } IRnPhysGroupObjVtbl;

    interface IRnPhysGroupObj
    {
        CONST_VTBL struct IRnPhysGroupObjVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnPhysGroupObj_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnPhysGroupObj_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnPhysGroupObj_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnPhysGroupObj_InitGroupObj(This)	\
    (This)->lpVtbl -> InitGroupObj(This)

#define IRnPhysGroupObj_GetSubObjList(This,ppList)	\
    (This)->lpVtbl -> GetSubObjList(This,ppList)

#define IRnPhysGroupObj_SetSubObjects(This)	\
    (This)->lpVtbl -> SetSubObjects(This)

#define IRnPhysGroupObj_DeleteSubObjects(This)	\
    (This)->lpVtbl -> DeleteSubObjects(This)

#define IRnPhysGroupObj_AddSubObject(This,pNode,bAppend)	\
    (This)->lpVtbl -> AddSubObject(This,pNode,bAppend)

#define IRnPhysGroupObj_Update(This,bForce)	\
    (This)->lpVtbl -> Update(This,bForce)

#define IRnPhysGroupObj_IsSubObject(This,pNode)	\
    (This)->lpVtbl -> IsSubObject(This,pNode)

#define IRnPhysGroupObj_RemoveSubObject(This,pNode)	\
    (This)->lpVtbl -> RemoveSubObject(This,pNode)

#define IRnPhysGroupObj_GetSubObjectCount(This,count)	\
    (This)->lpVtbl -> GetSubObjectCount(This,count)

#define IRnPhysGroupObj_GetActiveSubObjectCount(This,count)	\
    (This)->lpVtbl -> GetActiveSubObjectCount(This,count)

#define IRnPhysGroupObj_InitSpeeds(This)	\
    (This)->lpVtbl -> InitSpeeds(This)

#define IRnPhysGroupObj_SetSyncFlag(This)	\
    (This)->lpVtbl -> SetSyncFlag(This)

#define IRnPhysGroupObj_UpdateParam(This)	\
    (This)->lpVtbl -> UpdateParam(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysGroupObj_InitGroupObj_Proxy( 
    IRnPhysGroupObj * This);


void __RPC_STUB IRnPhysGroupObj_InitGroupObj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysGroupObj_GetSubObjList_Proxy( 
    IRnPhysGroupObj * This,
    /* [out] */ IRsList **ppList);


void __RPC_STUB IRnPhysGroupObj_GetSubObjList_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysGroupObj_SetSubObjects_Proxy( 
    IRnPhysGroupObj * This);


void __RPC_STUB IRnPhysGroupObj_SetSubObjects_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysGroupObj_DeleteSubObjects_Proxy( 
    IRnPhysGroupObj * This);


void __RPC_STUB IRnPhysGroupObj_DeleteSubObjects_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysGroupObj_AddSubObject_Proxy( 
    IRnPhysGroupObj * This,
    /* [in] */ IRsNode *pNode,
    /* [in] */ RtBool *bAppend);


void __RPC_STUB IRnPhysGroupObj_AddSubObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysGroupObj_Update_Proxy( 
    IRnPhysGroupObj * This,
    /* [in] */ RtBool *bForce);


void __RPC_STUB IRnPhysGroupObj_Update_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysGroupObj_IsSubObject_Proxy( 
    IRnPhysGroupObj * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRnPhysGroupObj_IsSubObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysGroupObj_RemoveSubObject_Proxy( 
    IRnPhysGroupObj * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRnPhysGroupObj_RemoveSubObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysGroupObj_GetSubObjectCount_Proxy( 
    IRnPhysGroupObj * This,
    /* [out] */ int *count);


void __RPC_STUB IRnPhysGroupObj_GetSubObjectCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysGroupObj_GetActiveSubObjectCount_Proxy( 
    IRnPhysGroupObj * This,
    /* [out] */ int *count);


void __RPC_STUB IRnPhysGroupObj_GetActiveSubObjectCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysGroupObj_InitSpeeds_Proxy( 
    IRnPhysGroupObj * This);


void __RPC_STUB IRnPhysGroupObj_InitSpeeds_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [local] */ HRESULT STDMETHODCALLTYPE IRnPhysGroupObj_SetSyncFlag_Proxy( 
    IRnPhysGroupObj * This);


void __RPC_STUB IRnPhysGroupObj_SetSyncFlag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [local] */ HRESULT STDMETHODCALLTYPE IRnPhysGroupObj_UpdateParam_Proxy( 
    IRnPhysGroupObj * This);


void __RPC_STUB IRnPhysGroupObj_UpdateParam_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRnPhysGroupObj_INTERFACE_DEFINED__ */


#ifndef __IRsCollisionFilter_INTERFACE_DEFINED__
#define __IRsCollisionFilter_INTERFACE_DEFINED__

/* interface IRsCollisionFilter */
/* [unique][helpstring][uuid][local][object] */ 


EXTERN_C const IID IID_IRsCollisionFilter;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("34BCC45B-5851-4f1f-B350-C1A2F9AA478A")
    IRsCollisionFilter : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE IsCollisionEnabled( 
            /* [in] */ IRsNode *pNode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsCollisionFilterVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsCollisionFilter * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsCollisionFilter * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsCollisionFilter * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *IsCollisionEnabled )( 
            IRsCollisionFilter * This,
            /* [in] */ IRsNode *pNode);
        
        END_INTERFACE
    } IRsCollisionFilterVtbl;

    interface IRsCollisionFilter
    {
        CONST_VTBL struct IRsCollisionFilterVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsCollisionFilter_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsCollisionFilter_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsCollisionFilter_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsCollisionFilter_IsCollisionEnabled(This,pNode)	\
    (This)->lpVtbl -> IsCollisionEnabled(This,pNode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsCollisionFilter_IsCollisionEnabled_Proxy( 
    IRsCollisionFilter * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRsCollisionFilter_IsCollisionEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsCollisionFilter_INTERFACE_DEFINED__ */


#ifndef __IRfCollisionSet_INTERFACE_DEFINED__
#define __IRfCollisionSet_INTERFACE_DEFINED__

/* interface IRfCollisionSet */
/* [unique][helpstring][uuid][local][object] */ 


EXTERN_C const IID IID_IRfCollisionSet;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("321A868E-5523-4567-A204-A39FB176AF2A")
    IRfCollisionSet : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE InitFnSet( 
            /* [in] */ IRsNode *spSpace) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFPSCollisions( 
            /* [in] */ IRdVertex *pCenter,
            /* [in] */ RtFloat radius,
            /* [out] */ IRdPointArray **ppPoints,
            /* [out] */ RtFloat **depths) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFPSCollision( 
            /* [in] */ IRdVertex *pCenter,
            /* [in] */ RtFloat radius,
            /* [out] */ IRdVertex **ppPoint,
            /* [out] */ IRdVertex **pNorm,
            /* [out] */ RtFloat *depth) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetObjectCollision( 
            /* [in] */ IRsNode *pObject,
            /* [in] */ RtShort option,
            /* [out] */ IRdCollInfo **ppCollInfo) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPeerCollision( 
            /* [in] */ IRsNode *pObject1,
            /* [in] */ IRsNode *pObject2,
            /* [in] */ RtShort option,
            /* [out] */ IRdCollInfo **ppCollInfo) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetFilter( 
            /* [in] */ IRsCollisionFilter *pFilter) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFPSObjectCollision( 
            /* [in] */ IRdVertex *pCenter,
            /* [in] */ RtFloat radius,
            /* [out] */ IRsNode **pObject,
            /* [out] */ IRdVertex **ppPoint,
            /* [out] */ IRdVertex **pNorm,
            /* [out] */ RtFloat *depth) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfCollisionSetVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfCollisionSet * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfCollisionSet * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfCollisionSet * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *InitFnSet )( 
            IRfCollisionSet * This,
            /* [in] */ IRsNode *spSpace);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFPSCollisions )( 
            IRfCollisionSet * This,
            /* [in] */ IRdVertex *pCenter,
            /* [in] */ RtFloat radius,
            /* [out] */ IRdPointArray **ppPoints,
            /* [out] */ RtFloat **depths);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFPSCollision )( 
            IRfCollisionSet * This,
            /* [in] */ IRdVertex *pCenter,
            /* [in] */ RtFloat radius,
            /* [out] */ IRdVertex **ppPoint,
            /* [out] */ IRdVertex **pNorm,
            /* [out] */ RtFloat *depth);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetObjectCollision )( 
            IRfCollisionSet * This,
            /* [in] */ IRsNode *pObject,
            /* [in] */ RtShort option,
            /* [out] */ IRdCollInfo **ppCollInfo);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPeerCollision )( 
            IRfCollisionSet * This,
            /* [in] */ IRsNode *pObject1,
            /* [in] */ IRsNode *pObject2,
            /* [in] */ RtShort option,
            /* [out] */ IRdCollInfo **ppCollInfo);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetFilter )( 
            IRfCollisionSet * This,
            /* [in] */ IRsCollisionFilter *pFilter);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFPSObjectCollision )( 
            IRfCollisionSet * This,
            /* [in] */ IRdVertex *pCenter,
            /* [in] */ RtFloat radius,
            /* [out] */ IRsNode **pObject,
            /* [out] */ IRdVertex **ppPoint,
            /* [out] */ IRdVertex **pNorm,
            /* [out] */ RtFloat *depth);
        
        END_INTERFACE
    } IRfCollisionSetVtbl;

    interface IRfCollisionSet
    {
        CONST_VTBL struct IRfCollisionSetVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfCollisionSet_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfCollisionSet_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfCollisionSet_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfCollisionSet_InitFnSet(This,spSpace)	\
    (This)->lpVtbl -> InitFnSet(This,spSpace)

#define IRfCollisionSet_GetFPSCollisions(This,pCenter,radius,ppPoints,depths)	\
    (This)->lpVtbl -> GetFPSCollisions(This,pCenter,radius,ppPoints,depths)

#define IRfCollisionSet_GetFPSCollision(This,pCenter,radius,ppPoint,pNorm,depth)	\
    (This)->lpVtbl -> GetFPSCollision(This,pCenter,radius,ppPoint,pNorm,depth)

#define IRfCollisionSet_GetObjectCollision(This,pObject,option,ppCollInfo)	\
    (This)->lpVtbl -> GetObjectCollision(This,pObject,option,ppCollInfo)

#define IRfCollisionSet_GetPeerCollision(This,pObject1,pObject2,option,ppCollInfo)	\
    (This)->lpVtbl -> GetPeerCollision(This,pObject1,pObject2,option,ppCollInfo)

#define IRfCollisionSet_SetFilter(This,pFilter)	\
    (This)->lpVtbl -> SetFilter(This,pFilter)

#define IRfCollisionSet_GetFPSObjectCollision(This,pCenter,radius,pObject,ppPoint,pNorm,depth)	\
    (This)->lpVtbl -> GetFPSObjectCollision(This,pCenter,radius,pObject,ppPoint,pNorm,depth)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfCollisionSet_InitFnSet_Proxy( 
    IRfCollisionSet * This,
    /* [in] */ IRsNode *spSpace);


void __RPC_STUB IRfCollisionSet_InitFnSet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfCollisionSet_GetFPSCollisions_Proxy( 
    IRfCollisionSet * This,
    /* [in] */ IRdVertex *pCenter,
    /* [in] */ RtFloat radius,
    /* [out] */ IRdPointArray **ppPoints,
    /* [out] */ RtFloat **depths);


void __RPC_STUB IRfCollisionSet_GetFPSCollisions_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfCollisionSet_GetFPSCollision_Proxy( 
    IRfCollisionSet * This,
    /* [in] */ IRdVertex *pCenter,
    /* [in] */ RtFloat radius,
    /* [out] */ IRdVertex **ppPoint,
    /* [out] */ IRdVertex **pNorm,
    /* [out] */ RtFloat *depth);


void __RPC_STUB IRfCollisionSet_GetFPSCollision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfCollisionSet_GetObjectCollision_Proxy( 
    IRfCollisionSet * This,
    /* [in] */ IRsNode *pObject,
    /* [in] */ RtShort option,
    /* [out] */ IRdCollInfo **ppCollInfo);


void __RPC_STUB IRfCollisionSet_GetObjectCollision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfCollisionSet_GetPeerCollision_Proxy( 
    IRfCollisionSet * This,
    /* [in] */ IRsNode *pObject1,
    /* [in] */ IRsNode *pObject2,
    /* [in] */ RtShort option,
    /* [out] */ IRdCollInfo **ppCollInfo);


void __RPC_STUB IRfCollisionSet_GetPeerCollision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfCollisionSet_SetFilter_Proxy( 
    IRfCollisionSet * This,
    /* [in] */ IRsCollisionFilter *pFilter);


void __RPC_STUB IRfCollisionSet_SetFilter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfCollisionSet_GetFPSObjectCollision_Proxy( 
    IRfCollisionSet * This,
    /* [in] */ IRdVertex *pCenter,
    /* [in] */ RtFloat radius,
    /* [out] */ IRsNode **pObject,
    /* [out] */ IRdVertex **ppPoint,
    /* [out] */ IRdVertex **pNorm,
    /* [out] */ RtFloat *depth);


void __RPC_STUB IRfCollisionSet_GetFPSObjectCollision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfCollisionSet_INTERFACE_DEFINED__ */


#ifndef __IRfIkSolver2_INTERFACE_DEFINED__
#define __IRfIkSolver2_INTERFACE_DEFINED__

/* interface IRfIkSolver2 */
/* [unique][helpstring][uuid][local][object] */ 


EXTERN_C const IID IID_IRfIkSolver2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DBCFA760-C1D6-4e9f-ADC6-730E02F36131")
    IRfIkSolver2 : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSkeleton( 
            /* [in] */ IRsNode *spSkeleton) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UpdateIKPose( 
            /* [in] */ RtVector3f *pMoveAnchor,
            /* [in] */ RtVector3f *pMoveTarget,
            /* [in] */ RtVector3f *pRotAnchor,
            /* [in] */ RtVector3f *pRotTarget,
            /* [in] */ IRdIkLocks *spLocks,
            /* [in] */ IRsNode *spBase,
            /* [in] */ IRsIkHandle *pHandle,
            /* [in] */ RtFloat fQuality,
            /* [in] */ enum ReIkSolverFlags dwFlags) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CalculatePose( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetResidualErrors( 
            /* [in] */ RtVector3f *pMoveAnchor,
            /* [in] */ RtVector3f *pMoveTarget,
            /* [in] */ IRsNode *spBone,
            /* [in] */ IRsIkHandle *pHandle,
            /* [in] */ enum ReIkSolverFlags flags) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Reset( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetRootTransform( 
            /* [out] */ RtMatrixf *pRootTransform) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddGlobalIkLock( 
            /* [in] */ IRdIkLock *pLock) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetRootBone( 
            /* [retval][out] */ IRsNode **spRootBone) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfIkSolver2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfIkSolver2 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfIkSolver2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfIkSolver2 * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSkeleton )( 
            IRfIkSolver2 * This,
            /* [in] */ IRsNode *spSkeleton);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UpdateIKPose )( 
            IRfIkSolver2 * This,
            /* [in] */ RtVector3f *pMoveAnchor,
            /* [in] */ RtVector3f *pMoveTarget,
            /* [in] */ RtVector3f *pRotAnchor,
            /* [in] */ RtVector3f *pRotTarget,
            /* [in] */ IRdIkLocks *spLocks,
            /* [in] */ IRsNode *spBase,
            /* [in] */ IRsIkHandle *pHandle,
            /* [in] */ RtFloat fQuality,
            /* [in] */ enum ReIkSolverFlags dwFlags);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CalculatePose )( 
            IRfIkSolver2 * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetResidualErrors )( 
            IRfIkSolver2 * This,
            /* [in] */ RtVector3f *pMoveAnchor,
            /* [in] */ RtVector3f *pMoveTarget,
            /* [in] */ IRsNode *spBone,
            /* [in] */ IRsIkHandle *pHandle,
            /* [in] */ enum ReIkSolverFlags flags);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Reset )( 
            IRfIkSolver2 * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetRootTransform )( 
            IRfIkSolver2 * This,
            /* [out] */ RtMatrixf *pRootTransform);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddGlobalIkLock )( 
            IRfIkSolver2 * This,
            /* [in] */ IRdIkLock *pLock);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetRootBone )( 
            IRfIkSolver2 * This,
            /* [retval][out] */ IRsNode **spRootBone);
        
        END_INTERFACE
    } IRfIkSolver2Vtbl;

    interface IRfIkSolver2
    {
        CONST_VTBL struct IRfIkSolver2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfIkSolver2_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfIkSolver2_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfIkSolver2_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfIkSolver2_SetSkeleton(This,spSkeleton)	\
    (This)->lpVtbl -> SetSkeleton(This,spSkeleton)

#define IRfIkSolver2_UpdateIKPose(This,pMoveAnchor,pMoveTarget,pRotAnchor,pRotTarget,spLocks,spBase,pHandle,fQuality,dwFlags)	\
    (This)->lpVtbl -> UpdateIKPose(This,pMoveAnchor,pMoveTarget,pRotAnchor,pRotTarget,spLocks,spBase,pHandle,fQuality,dwFlags)

#define IRfIkSolver2_CalculatePose(This)	\
    (This)->lpVtbl -> CalculatePose(This)

#define IRfIkSolver2_SetResidualErrors(This,pMoveAnchor,pMoveTarget,spBone,pHandle,flags)	\
    (This)->lpVtbl -> SetResidualErrors(This,pMoveAnchor,pMoveTarget,spBone,pHandle,flags)

#define IRfIkSolver2_Reset(This)	\
    (This)->lpVtbl -> Reset(This)

#define IRfIkSolver2_GetRootTransform(This,pRootTransform)	\
    (This)->lpVtbl -> GetRootTransform(This,pRootTransform)

#define IRfIkSolver2_AddGlobalIkLock(This,pLock)	\
    (This)->lpVtbl -> AddGlobalIkLock(This,pLock)

#define IRfIkSolver2_GetRootBone(This,spRootBone)	\
    (This)->lpVtbl -> GetRootBone(This,spRootBone)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfIkSolver2_SetSkeleton_Proxy( 
    IRfIkSolver2 * This,
    /* [in] */ IRsNode *spSkeleton);


void __RPC_STUB IRfIkSolver2_SetSkeleton_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfIkSolver2_UpdateIKPose_Proxy( 
    IRfIkSolver2 * This,
    /* [in] */ RtVector3f *pMoveAnchor,
    /* [in] */ RtVector3f *pMoveTarget,
    /* [in] */ RtVector3f *pRotAnchor,
    /* [in] */ RtVector3f *pRotTarget,
    /* [in] */ IRdIkLocks *spLocks,
    /* [in] */ IRsNode *spBase,
    /* [in] */ IRsIkHandle *pHandle,
    /* [in] */ RtFloat fQuality,
    /* [in] */ enum ReIkSolverFlags dwFlags);


void __RPC_STUB IRfIkSolver2_UpdateIKPose_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfIkSolver2_CalculatePose_Proxy( 
    IRfIkSolver2 * This);


void __RPC_STUB IRfIkSolver2_CalculatePose_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfIkSolver2_SetResidualErrors_Proxy( 
    IRfIkSolver2 * This,
    /* [in] */ RtVector3f *pMoveAnchor,
    /* [in] */ RtVector3f *pMoveTarget,
    /* [in] */ IRsNode *spBone,
    /* [in] */ IRsIkHandle *pHandle,
    /* [in] */ enum ReIkSolverFlags flags);


void __RPC_STUB IRfIkSolver2_SetResidualErrors_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfIkSolver2_Reset_Proxy( 
    IRfIkSolver2 * This);


void __RPC_STUB IRfIkSolver2_Reset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfIkSolver2_GetRootTransform_Proxy( 
    IRfIkSolver2 * This,
    /* [out] */ RtMatrixf *pRootTransform);


void __RPC_STUB IRfIkSolver2_GetRootTransform_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfIkSolver2_AddGlobalIkLock_Proxy( 
    IRfIkSolver2 * This,
    /* [in] */ IRdIkLock *pLock);


void __RPC_STUB IRfIkSolver2_AddGlobalIkLock_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfIkSolver2_GetRootBone_Proxy( 
    IRfIkSolver2 * This,
    /* [retval][out] */ IRsNode **spRootBone);


void __RPC_STUB IRfIkSolver2_GetRootBone_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfIkSolver2_INTERFACE_DEFINED__ */


#ifndef __IRpPhysics_INTERFACE_DEFINED__
#define __IRpPhysics_INTERFACE_DEFINED__

/* interface IRpPhysics */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRpPhysics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0675345F-66B6-4994-A8C7-AE966991CA5F")
    IRpPhysics : public IRsObject
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RegisterForPhysEvents( 
            /* [in] */ IRsPhysSimEvents *pPhysRegObj) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnRegisterForPhysEvents( 
            /* [in] */ IRsPhysSimEvents *pPhysRegObj) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateCollisionFnSet( 
            /* [retval][out] */ IRfCollisionSet **ppFn) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreatePhysicsFnSet( 
            /* [retval][out] */ IRfPhysHelper **ppFn) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE UpdateJointPanel( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateIkSolver( 
            /* [retval][out] */ IRfIkSolver2 **ppFn) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRpPhysicsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRpPhysics * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRpPhysics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRpPhysics * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRpPhysics * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRpPhysics * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterForPhysEvents )( 
            IRpPhysics * This,
            /* [in] */ IRsPhysSimEvents *pPhysRegObj);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnRegisterForPhysEvents )( 
            IRpPhysics * This,
            /* [in] */ IRsPhysSimEvents *pPhysRegObj);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateCollisionFnSet )( 
            IRpPhysics * This,
            /* [retval][out] */ IRfCollisionSet **ppFn);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreatePhysicsFnSet )( 
            IRpPhysics * This,
            /* [retval][out] */ IRfPhysHelper **ppFn);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *UpdateJointPanel )( 
            IRpPhysics * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateIkSolver )( 
            IRpPhysics * This,
            /* [retval][out] */ IRfIkSolver2 **ppFn);
        
        END_INTERFACE
    } IRpPhysicsVtbl;

    interface IRpPhysics
    {
        CONST_VTBL struct IRpPhysicsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRpPhysics_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRpPhysics_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRpPhysics_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRpPhysics_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRpPhysics_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#define IRpPhysics_RegisterForPhysEvents(This,pPhysRegObj)	\
    (This)->lpVtbl -> RegisterForPhysEvents(This,pPhysRegObj)

#define IRpPhysics_UnRegisterForPhysEvents(This,pPhysRegObj)	\
    (This)->lpVtbl -> UnRegisterForPhysEvents(This,pPhysRegObj)

#define IRpPhysics_CreateCollisionFnSet(This,ppFn)	\
    (This)->lpVtbl -> CreateCollisionFnSet(This,ppFn)

#define IRpPhysics_CreatePhysicsFnSet(This,ppFn)	\
    (This)->lpVtbl -> CreatePhysicsFnSet(This,ppFn)

#define IRpPhysics_UpdateJointPanel(This,pNode)	\
    (This)->lpVtbl -> UpdateJointPanel(This,pNode)

#define IRpPhysics_CreateIkSolver(This,ppFn)	\
    (This)->lpVtbl -> CreateIkSolver(This,ppFn)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpPhysics_RegisterForPhysEvents_Proxy( 
    IRpPhysics * This,
    /* [in] */ IRsPhysSimEvents *pPhysRegObj);


void __RPC_STUB IRpPhysics_RegisterForPhysEvents_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpPhysics_UnRegisterForPhysEvents_Proxy( 
    IRpPhysics * This,
    /* [in] */ IRsPhysSimEvents *pPhysRegObj);


void __RPC_STUB IRpPhysics_UnRegisterForPhysEvents_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpPhysics_CreateCollisionFnSet_Proxy( 
    IRpPhysics * This,
    /* [retval][out] */ IRfCollisionSet **ppFn);


void __RPC_STUB IRpPhysics_CreateCollisionFnSet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpPhysics_CreatePhysicsFnSet_Proxy( 
    IRpPhysics * This,
    /* [retval][out] */ IRfPhysHelper **ppFn);


void __RPC_STUB IRpPhysics_CreatePhysicsFnSet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [local] */ HRESULT STDMETHODCALLTYPE IRpPhysics_UpdateJointPanel_Proxy( 
    IRpPhysics * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRpPhysics_UpdateJointPanel_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpPhysics_CreateIkSolver_Proxy( 
    IRpPhysics * This,
    /* [retval][out] */ IRfIkSolver2 **ppFn);


void __RPC_STUB IRpPhysics_CreateIkSolver_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRpPhysics_INTERFACE_DEFINED__ */


#ifndef __IRsPhysicsNodeFactory_INTERFACE_DEFINED__
#define __IRsPhysicsNodeFactory_INTERFACE_DEFINED__

/* interface IRsPhysicsNodeFactory */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsPhysicsNodeFactory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("925C2212-F98E-4AB9-92C9-9E49D6DEACC9")
    IRsPhysicsNodeFactory : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsPhysicsNodeFactoryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsPhysicsNodeFactory * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsPhysicsNodeFactory * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsPhysicsNodeFactory * This);
        
        END_INTERFACE
    } IRsPhysicsNodeFactoryVtbl;

    interface IRsPhysicsNodeFactory
    {
        CONST_VTBL struct IRsPhysicsNodeFactoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsPhysicsNodeFactory_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsPhysicsNodeFactory_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsPhysicsNodeFactory_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsPhysicsNodeFactory_INTERFACE_DEFINED__ */


#ifndef __IRsPhysicsCmdFactory_INTERFACE_DEFINED__
#define __IRsPhysicsCmdFactory_INTERFACE_DEFINED__

/* interface IRsPhysicsCmdFactory */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsPhysicsCmdFactory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("31BCDE30-B492-4446-BAC1-B189FE473EA2")
    IRsPhysicsCmdFactory : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsPhysicsCmdFactoryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsPhysicsCmdFactory * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsPhysicsCmdFactory * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsPhysicsCmdFactory * This);
        
        END_INTERFACE
    } IRsPhysicsCmdFactoryVtbl;

    interface IRsPhysicsCmdFactory
    {
        CONST_VTBL struct IRsPhysicsCmdFactoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsPhysicsCmdFactory_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsPhysicsCmdFactory_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsPhysicsCmdFactory_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsPhysicsCmdFactory_INTERFACE_DEFINED__ */


#ifndef __IRsPhysicsDataObjFactory_INTERFACE_DEFINED__
#define __IRsPhysicsDataObjFactory_INTERFACE_DEFINED__

/* interface IRsPhysicsDataObjFactory */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsPhysicsDataObjFactory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FC668DB5-54B1-41FA-B059-B370D80FF2AA")
    IRsPhysicsDataObjFactory : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsPhysicsDataObjFactoryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsPhysicsDataObjFactory * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsPhysicsDataObjFactory * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsPhysicsDataObjFactory * This);
        
        END_INTERFACE
    } IRsPhysicsDataObjFactoryVtbl;

    interface IRsPhysicsDataObjFactory
    {
        CONST_VTBL struct IRsPhysicsDataObjFactoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsPhysicsDataObjFactory_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsPhysicsDataObjFactory_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsPhysicsDataObjFactory_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsPhysicsDataObjFactory_INTERFACE_DEFINED__ */


#ifndef __IRsFileTypeRsPhysMat_INTERFACE_DEFINED__
#define __IRsFileTypeRsPhysMat_INTERFACE_DEFINED__

/* interface IRsFileTypeRsPhysMat */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsFileTypeRsPhysMat;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6ADCA20E-93E2-413b-9E65-6D7EC38B5E83")
    IRsFileTypeRsPhysMat : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsFileTypeRsPhysMatVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsFileTypeRsPhysMat * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsFileTypeRsPhysMat * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsFileTypeRsPhysMat * This);
        
        END_INTERFACE
    } IRsFileTypeRsPhysMatVtbl;

    interface IRsFileTypeRsPhysMat
    {
        CONST_VTBL struct IRsFileTypeRsPhysMatVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsFileTypeRsPhysMat_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsFileTypeRsPhysMat_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsFileTypeRsPhysMat_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsFileTypeRsPhysMat_INTERFACE_DEFINED__ */


#ifndef __IRsFileTypeRsPhysEnv_INTERFACE_DEFINED__
#define __IRsFileTypeRsPhysEnv_INTERFACE_DEFINED__

/* interface IRsFileTypeRsPhysEnv */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsFileTypeRsPhysEnv;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6AFEA20F-8562-233b-9E65-6DFEC38B3683")
    IRsFileTypeRsPhysEnv : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsFileTypeRsPhysEnvVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsFileTypeRsPhysEnv * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsFileTypeRsPhysEnv * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsFileTypeRsPhysEnv * This);
        
        END_INTERFACE
    } IRsFileTypeRsPhysEnvVtbl;

    interface IRsFileTypeRsPhysEnv
    {
        CONST_VTBL struct IRsFileTypeRsPhysEnvVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsFileTypeRsPhysEnv_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsFileTypeRsPhysEnv_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsFileTypeRsPhysEnv_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsFileTypeRsPhysEnv_INTERFACE_DEFINED__ */


#ifndef __IRiPhysicsCommand_INTERFACE_DEFINED__
#define __IRiPhysicsCommand_INTERFACE_DEFINED__

/* interface IRiPhysicsCommand */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IRiPhysicsCommand;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("42843BC7-6831-4CD7-B1F6-AF979C66C72A")
    IRiPhysicsCommand : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE init_PhysSim( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RegisterObj( 
            /* [in] */ BSTR bstrObjName,
            /* [in] */ BSTR bstrEngineName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UnRegisterObj( 
            /* [in] */ BSTR bstrObjName,
            /* [in] */ BSTR bstrEngineName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE StartSimulation( 
            /* [in] */ BSTR bstrEngineName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE StopSimulation( 
            /* [in] */ BSTR bstrEngineName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SimpleCollision( 
            /* [in] */ BSTR objname1,
            /* [in] */ BSTR objname2,
            /* [in] */ RtBool precision,
            /* [retval][out] */ RtBool *collision) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InitCollision( 
            /* [in] */ BSTR SpaceName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddPhysAttr( 
            /* [in] */ BSTR ObjName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemovePhysAttr( 
            /* [in] */ BSTR ObjName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateEngine( 
            /* [in] */ BSTR bstrSpaceRootName,
            /* [retval][out] */ BSTR *bstrEngineName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddPhysAttrAt3D( 
            /* [in] */ BSTR bsTarget,
            /* [in] */ BSTR bsNode,
            /* [in] */ VARIANT vPosX,
            /* [in] */ VARIANT vPosY,
            /* [in] */ VARIANT vPosZ,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddEnvAttrAt3D( 
            /* [in] */ BSTR bsTarget,
            /* [in] */ BSTR bsNode,
            /* [in] */ VARIANT vPosX,
            /* [in] */ VARIANT vPosY,
            /* [in] */ VARIANT vPosZ,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateToolbar( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddEnvAttr( 
            /* [in] */ BSTR ObjName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveEnvAttr( 
            /* [in] */ BSTR ObjName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddWind( 
            /* [in] */ BSTR SpaceName,
            /* [in] */ RtBool local) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Collision( 
            /* [in] */ VARIANT vCollType,
            /* [defaultvalue][in] */ BSTR ObjName = L"") = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ActivatePhysWidget( 
            /* [in] */ BSTR bstrWidgetName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Register( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OpenPanel( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OpenNodePanel( 
            /* [in] */ BSTR bstrPanelName,
            /* [in] */ LONG dwAspect) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SceneCollision( 
            /* [in] */ BSTR bstrName,
            /* [in] */ RtUshort option,
            /* [retval][out] */ VARIANT *ppCollInfo) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PeerCollision( 
            /* [in] */ BSTR bstrName1,
            /* [in] */ BSTR bstrName2,
            /* [in] */ RtUshort option,
            /* [retval][out] */ VARIANT *ppCollInfo) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CollisionResponse( 
            /* [in] */ BSTR bstrName,
            /* [in] */ VARIANT pCollInfo,
            /* [in] */ VARIANT pSpeed,
            /* [in] */ VARIANT pRotation) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE MoveObject( 
            /* [in] */ BSTR bstrName,
            /* [in] */ VARIANT pSpeed,
            /* [in] */ VARIANT pRotation,
            /* [in] */ float time) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddImpulse( 
            /* [in] */ BSTR bstrTargetObj,
            /* [in] */ VARIANT force,
            /* [in] */ VARIANT torque) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ObjectParam( 
            /* [in] */ BSTR bstrTargetObj,
            /* [in] */ int flag,
            /* [in] */ VARIANT vCog,
            /* [in] */ VARIANT vInertia,
            /* [retval][out] */ float *volume) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UpdatePosition( 
            /* [in] */ BSTR bstrName,
            /* [in] */ float time) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateFunctionSet( 
            /* [retval][out] */ VARIANT *ppFnSet) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddClothAttr( 
            /* [in] */ BSTR ObjName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveClothAttr( 
            /* [in] */ BSTR ObjName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ResetClothFixation( 
            /* [in] */ BSTR ObjName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ResetAttribute( 
            /* [in] */ BSTR bstrObjName,
            /* [in] */ BSTR bstrAttrName) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRiPhysicsCommandVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRiPhysicsCommand * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRiPhysicsCommand * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRiPhysicsCommand * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRiPhysicsCommand * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRiPhysicsCommand * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRiPhysicsCommand * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRiPhysicsCommand * This,
            /* [in] */ DISPID dispIdMember,
            /* [in] */ REFIID riid,
            /* [in] */ LCID lcid,
            /* [in] */ WORD wFlags,
            /* [out][in] */ DISPPARAMS *pDispParams,
            /* [out] */ VARIANT *pVarResult,
            /* [out] */ EXCEPINFO *pExcepInfo,
            /* [out] */ UINT *puArgErr);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *init_PhysSim )( 
            IRiPhysicsCommand * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RegisterObj )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR bstrObjName,
            /* [in] */ BSTR bstrEngineName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UnRegisterObj )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR bstrObjName,
            /* [in] */ BSTR bstrEngineName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *StartSimulation )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR bstrEngineName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *StopSimulation )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR bstrEngineName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SimpleCollision )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR objname1,
            /* [in] */ BSTR objname2,
            /* [in] */ RtBool precision,
            /* [retval][out] */ RtBool *collision);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InitCollision )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR SpaceName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddPhysAttr )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR ObjName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemovePhysAttr )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR ObjName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateEngine )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR bstrSpaceRootName,
            /* [retval][out] */ BSTR *bstrEngineName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddPhysAttrAt3D )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR bsTarget,
            /* [in] */ BSTR bsNode,
            /* [in] */ VARIANT vPosX,
            /* [in] */ VARIANT vPosY,
            /* [in] */ VARIANT vPosZ,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddEnvAttrAt3D )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR bsTarget,
            /* [in] */ BSTR bsNode,
            /* [in] */ VARIANT vPosX,
            /* [in] */ VARIANT vPosY,
            /* [in] */ VARIANT vPosZ,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateToolbar )( 
            IRiPhysicsCommand * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddEnvAttr )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR ObjName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveEnvAttr )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR ObjName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddWind )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR SpaceName,
            /* [in] */ RtBool local);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Collision )( 
            IRiPhysicsCommand * This,
            /* [in] */ VARIANT vCollType,
            /* [defaultvalue][in] */ BSTR ObjName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ActivatePhysWidget )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR bstrWidgetName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Register )( 
            IRiPhysicsCommand * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OpenPanel )( 
            IRiPhysicsCommand * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OpenNodePanel )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR bstrPanelName,
            /* [in] */ LONG dwAspect);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SceneCollision )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR bstrName,
            /* [in] */ RtUshort option,
            /* [retval][out] */ VARIANT *ppCollInfo);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PeerCollision )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR bstrName1,
            /* [in] */ BSTR bstrName2,
            /* [in] */ RtUshort option,
            /* [retval][out] */ VARIANT *ppCollInfo);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CollisionResponse )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR bstrName,
            /* [in] */ VARIANT pCollInfo,
            /* [in] */ VARIANT pSpeed,
            /* [in] */ VARIANT pRotation);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *MoveObject )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR bstrName,
            /* [in] */ VARIANT pSpeed,
            /* [in] */ VARIANT pRotation,
            /* [in] */ float time);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddImpulse )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR bstrTargetObj,
            /* [in] */ VARIANT force,
            /* [in] */ VARIANT torque);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ObjectParam )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR bstrTargetObj,
            /* [in] */ int flag,
            /* [in] */ VARIANT vCog,
            /* [in] */ VARIANT vInertia,
            /* [retval][out] */ float *volume);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UpdatePosition )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR bstrName,
            /* [in] */ float time);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateFunctionSet )( 
            IRiPhysicsCommand * This,
            /* [retval][out] */ VARIANT *ppFnSet);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddClothAttr )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR ObjName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveClothAttr )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR ObjName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ResetClothFixation )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR ObjName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ResetAttribute )( 
            IRiPhysicsCommand * This,
            /* [in] */ BSTR bstrObjName,
            /* [in] */ BSTR bstrAttrName);
        
        END_INTERFACE
    } IRiPhysicsCommandVtbl;

    interface IRiPhysicsCommand
    {
        CONST_VTBL struct IRiPhysicsCommandVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRiPhysicsCommand_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRiPhysicsCommand_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRiPhysicsCommand_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRiPhysicsCommand_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRiPhysicsCommand_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRiPhysicsCommand_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRiPhysicsCommand_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRiPhysicsCommand_init_PhysSim(This)	\
    (This)->lpVtbl -> init_PhysSim(This)

#define IRiPhysicsCommand_RegisterObj(This,bstrObjName,bstrEngineName)	\
    (This)->lpVtbl -> RegisterObj(This,bstrObjName,bstrEngineName)

#define IRiPhysicsCommand_UnRegisterObj(This,bstrObjName,bstrEngineName)	\
    (This)->lpVtbl -> UnRegisterObj(This,bstrObjName,bstrEngineName)

#define IRiPhysicsCommand_StartSimulation(This,bstrEngineName)	\
    (This)->lpVtbl -> StartSimulation(This,bstrEngineName)

#define IRiPhysicsCommand_StopSimulation(This,bstrEngineName)	\
    (This)->lpVtbl -> StopSimulation(This,bstrEngineName)

#define IRiPhysicsCommand_SimpleCollision(This,objname1,objname2,precision,collision)	\
    (This)->lpVtbl -> SimpleCollision(This,objname1,objname2,precision,collision)

#define IRiPhysicsCommand_InitCollision(This,SpaceName)	\
    (This)->lpVtbl -> InitCollision(This,SpaceName)

#define IRiPhysicsCommand_AddPhysAttr(This,ObjName)	\
    (This)->lpVtbl -> AddPhysAttr(This,ObjName)

#define IRiPhysicsCommand_RemovePhysAttr(This,ObjName)	\
    (This)->lpVtbl -> RemovePhysAttr(This,ObjName)

#define IRiPhysicsCommand_CreateEngine(This,bstrSpaceRootName,bstrEngineName)	\
    (This)->lpVtbl -> CreateEngine(This,bstrSpaceRootName,bstrEngineName)

#define IRiPhysicsCommand_AddPhysAttrAt3D(This,bsTarget,bsNode,vPosX,vPosY,vPosZ,pVal)	\
    (This)->lpVtbl -> AddPhysAttrAt3D(This,bsTarget,bsNode,vPosX,vPosY,vPosZ,pVal)

#define IRiPhysicsCommand_AddEnvAttrAt3D(This,bsTarget,bsNode,vPosX,vPosY,vPosZ,pVal)	\
    (This)->lpVtbl -> AddEnvAttrAt3D(This,bsTarget,bsNode,vPosX,vPosY,vPosZ,pVal)

#define IRiPhysicsCommand_CreateToolbar(This)	\
    (This)->lpVtbl -> CreateToolbar(This)

#define IRiPhysicsCommand_AddEnvAttr(This,ObjName)	\
    (This)->lpVtbl -> AddEnvAttr(This,ObjName)

#define IRiPhysicsCommand_RemoveEnvAttr(This,ObjName)	\
    (This)->lpVtbl -> RemoveEnvAttr(This,ObjName)

#define IRiPhysicsCommand_AddWind(This,SpaceName,local)	\
    (This)->lpVtbl -> AddWind(This,SpaceName,local)

#define IRiPhysicsCommand_Collision(This,vCollType,ObjName)	\
    (This)->lpVtbl -> Collision(This,vCollType,ObjName)

#define IRiPhysicsCommand_ActivatePhysWidget(This,bstrWidgetName)	\
    (This)->lpVtbl -> ActivatePhysWidget(This,bstrWidgetName)

#define IRiPhysicsCommand_Register(This)	\
    (This)->lpVtbl -> Register(This)

#define IRiPhysicsCommand_OpenPanel(This)	\
    (This)->lpVtbl -> OpenPanel(This)

#define IRiPhysicsCommand_OpenNodePanel(This,bstrPanelName,dwAspect)	\
    (This)->lpVtbl -> OpenNodePanel(This,bstrPanelName,dwAspect)

#define IRiPhysicsCommand_SceneCollision(This,bstrName,option,ppCollInfo)	\
    (This)->lpVtbl -> SceneCollision(This,bstrName,option,ppCollInfo)

#define IRiPhysicsCommand_PeerCollision(This,bstrName1,bstrName2,option,ppCollInfo)	\
    (This)->lpVtbl -> PeerCollision(This,bstrName1,bstrName2,option,ppCollInfo)

#define IRiPhysicsCommand_CollisionResponse(This,bstrName,pCollInfo,pSpeed,pRotation)	\
    (This)->lpVtbl -> CollisionResponse(This,bstrName,pCollInfo,pSpeed,pRotation)

#define IRiPhysicsCommand_MoveObject(This,bstrName,pSpeed,pRotation,time)	\
    (This)->lpVtbl -> MoveObject(This,bstrName,pSpeed,pRotation,time)

#define IRiPhysicsCommand_AddImpulse(This,bstrTargetObj,force,torque)	\
    (This)->lpVtbl -> AddImpulse(This,bstrTargetObj,force,torque)

#define IRiPhysicsCommand_ObjectParam(This,bstrTargetObj,flag,vCog,vInertia,volume)	\
    (This)->lpVtbl -> ObjectParam(This,bstrTargetObj,flag,vCog,vInertia,volume)

#define IRiPhysicsCommand_UpdatePosition(This,bstrName,time)	\
    (This)->lpVtbl -> UpdatePosition(This,bstrName,time)

#define IRiPhysicsCommand_CreateFunctionSet(This,ppFnSet)	\
    (This)->lpVtbl -> CreateFunctionSet(This,ppFnSet)

#define IRiPhysicsCommand_AddClothAttr(This,ObjName)	\
    (This)->lpVtbl -> AddClothAttr(This,ObjName)

#define IRiPhysicsCommand_RemoveClothAttr(This,ObjName)	\
    (This)->lpVtbl -> RemoveClothAttr(This,ObjName)

#define IRiPhysicsCommand_ResetClothFixation(This,ObjName)	\
    (This)->lpVtbl -> ResetClothFixation(This,ObjName)

#define IRiPhysicsCommand_ResetAttribute(This,bstrObjName,bstrAttrName)	\
    (This)->lpVtbl -> ResetAttribute(This,bstrObjName,bstrAttrName)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_init_PhysSim_Proxy( 
    IRiPhysicsCommand * This);


void __RPC_STUB IRiPhysicsCommand_init_PhysSim_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_RegisterObj_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR bstrObjName,
    /* [in] */ BSTR bstrEngineName);


void __RPC_STUB IRiPhysicsCommand_RegisterObj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_UnRegisterObj_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR bstrObjName,
    /* [in] */ BSTR bstrEngineName);


void __RPC_STUB IRiPhysicsCommand_UnRegisterObj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_StartSimulation_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR bstrEngineName);


void __RPC_STUB IRiPhysicsCommand_StartSimulation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_StopSimulation_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR bstrEngineName);


void __RPC_STUB IRiPhysicsCommand_StopSimulation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_SimpleCollision_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR objname1,
    /* [in] */ BSTR objname2,
    /* [in] */ RtBool precision,
    /* [retval][out] */ RtBool *collision);


void __RPC_STUB IRiPhysicsCommand_SimpleCollision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_InitCollision_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR SpaceName);


void __RPC_STUB IRiPhysicsCommand_InitCollision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_AddPhysAttr_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR ObjName);


void __RPC_STUB IRiPhysicsCommand_AddPhysAttr_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_RemovePhysAttr_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR ObjName);


void __RPC_STUB IRiPhysicsCommand_RemovePhysAttr_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_CreateEngine_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR bstrSpaceRootName,
    /* [retval][out] */ BSTR *bstrEngineName);


void __RPC_STUB IRiPhysicsCommand_CreateEngine_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_AddPhysAttrAt3D_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR bsTarget,
    /* [in] */ BSTR bsNode,
    /* [in] */ VARIANT vPosX,
    /* [in] */ VARIANT vPosY,
    /* [in] */ VARIANT vPosZ,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB IRiPhysicsCommand_AddPhysAttrAt3D_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_AddEnvAttrAt3D_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR bsTarget,
    /* [in] */ BSTR bsNode,
    /* [in] */ VARIANT vPosX,
    /* [in] */ VARIANT vPosY,
    /* [in] */ VARIANT vPosZ,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB IRiPhysicsCommand_AddEnvAttrAt3D_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_CreateToolbar_Proxy( 
    IRiPhysicsCommand * This);


void __RPC_STUB IRiPhysicsCommand_CreateToolbar_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_AddEnvAttr_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR ObjName);


void __RPC_STUB IRiPhysicsCommand_AddEnvAttr_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_RemoveEnvAttr_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR ObjName);


void __RPC_STUB IRiPhysicsCommand_RemoveEnvAttr_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_AddWind_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR SpaceName,
    /* [in] */ RtBool local);


void __RPC_STUB IRiPhysicsCommand_AddWind_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_Collision_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ VARIANT vCollType,
    /* [defaultvalue][in] */ BSTR ObjName);


void __RPC_STUB IRiPhysicsCommand_Collision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_ActivatePhysWidget_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR bstrWidgetName);


void __RPC_STUB IRiPhysicsCommand_ActivatePhysWidget_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_Register_Proxy( 
    IRiPhysicsCommand * This);


void __RPC_STUB IRiPhysicsCommand_Register_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_OpenPanel_Proxy( 
    IRiPhysicsCommand * This);


void __RPC_STUB IRiPhysicsCommand_OpenPanel_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_OpenNodePanel_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR bstrPanelName,
    /* [in] */ LONG dwAspect);


void __RPC_STUB IRiPhysicsCommand_OpenNodePanel_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_SceneCollision_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR bstrName,
    /* [in] */ RtUshort option,
    /* [retval][out] */ VARIANT *ppCollInfo);


void __RPC_STUB IRiPhysicsCommand_SceneCollision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_PeerCollision_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR bstrName1,
    /* [in] */ BSTR bstrName2,
    /* [in] */ RtUshort option,
    /* [retval][out] */ VARIANT *ppCollInfo);


void __RPC_STUB IRiPhysicsCommand_PeerCollision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_CollisionResponse_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR bstrName,
    /* [in] */ VARIANT pCollInfo,
    /* [in] */ VARIANT pSpeed,
    /* [in] */ VARIANT pRotation);


void __RPC_STUB IRiPhysicsCommand_CollisionResponse_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_MoveObject_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR bstrName,
    /* [in] */ VARIANT pSpeed,
    /* [in] */ VARIANT pRotation,
    /* [in] */ float time);


void __RPC_STUB IRiPhysicsCommand_MoveObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_AddImpulse_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR bstrTargetObj,
    /* [in] */ VARIANT force,
    /* [in] */ VARIANT torque);


void __RPC_STUB IRiPhysicsCommand_AddImpulse_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_ObjectParam_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR bstrTargetObj,
    /* [in] */ int flag,
    /* [in] */ VARIANT vCog,
    /* [in] */ VARIANT vInertia,
    /* [retval][out] */ float *volume);


void __RPC_STUB IRiPhysicsCommand_ObjectParam_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_UpdatePosition_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR bstrName,
    /* [in] */ float time);


void __RPC_STUB IRiPhysicsCommand_UpdatePosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_CreateFunctionSet_Proxy( 
    IRiPhysicsCommand * This,
    /* [retval][out] */ VARIANT *ppFnSet);


void __RPC_STUB IRiPhysicsCommand_CreateFunctionSet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_AddClothAttr_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR ObjName);


void __RPC_STUB IRiPhysicsCommand_AddClothAttr_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_RemoveClothAttr_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR ObjName);


void __RPC_STUB IRiPhysicsCommand_RemoveClothAttr_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_ResetClothFixation_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR ObjName);


void __RPC_STUB IRiPhysicsCommand_ResetClothFixation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiPhysicsCommand_ResetAttribute_Proxy( 
    IRiPhysicsCommand * This,
    /* [in] */ BSTR bstrObjName,
    /* [in] */ BSTR bstrAttrName);


void __RPC_STUB IRiPhysicsCommand_ResetAttribute_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRiPhysicsCommand_INTERFACE_DEFINED__ */


#ifndef __IRcPhysSim_INTERFACE_DEFINED__
#define __IRcPhysSim_INTERFACE_DEFINED__

/* interface IRcPhysSim */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcPhysSim;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6AF3F00C-00BC-44AB-942B-FC537D935B56")
    IRcPhysSim : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateEngine( 
            /* [out] */ IRsNode **pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteEngine( 
            /* [in] */ BSTR szFullName,
            /* [in] */ BSTR szSpaceName) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcPhysSimVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcPhysSim * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcPhysSim * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcPhysSim * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateEngine )( 
            IRcPhysSim * This,
            /* [out] */ IRsNode **pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteEngine )( 
            IRcPhysSim * This,
            /* [in] */ BSTR szFullName,
            /* [in] */ BSTR szSpaceName);
        
        END_INTERFACE
    } IRcPhysSimVtbl;

    interface IRcPhysSim
    {
        CONST_VTBL struct IRcPhysSimVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcPhysSim_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcPhysSim_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcPhysSim_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcPhysSim_CreateEngine(This,pNode)	\
    (This)->lpVtbl -> CreateEngine(This,pNode)

#define IRcPhysSim_DeleteEngine(This,szFullName,szSpaceName)	\
    (This)->lpVtbl -> DeleteEngine(This,szFullName,szSpaceName)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcPhysSim_CreateEngine_Proxy( 
    IRcPhysSim * This,
    /* [out] */ IRsNode **pNode);


void __RPC_STUB IRcPhysSim_CreateEngine_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcPhysSim_DeleteEngine_Proxy( 
    IRcPhysSim * This,
    /* [in] */ BSTR szFullName,
    /* [in] */ BSTR szSpaceName);


void __RPC_STUB IRcPhysSim_DeleteEngine_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcPhysSim_INTERFACE_DEFINED__ */


#ifndef __IRcPhysNextStep_INTERFACE_DEFINED__
#define __IRcPhysNextStep_INTERFACE_DEFINED__

/* interface IRcPhysNextStep */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcPhysNextStep;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2145B91D-A3CC-46A7-9426-4FC16D37CEC1")
    IRcPhysNextStep : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcPhysNextStepVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcPhysNextStep * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcPhysNextStep * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcPhysNextStep * This);
        
        END_INTERFACE
    } IRcPhysNextStepVtbl;

    interface IRcPhysNextStep
    {
        CONST_VTBL struct IRcPhysNextStepVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcPhysNextStep_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcPhysNextStep_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcPhysNextStep_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcPhysNextStep_INTERFACE_DEFINED__ */


#ifndef __IRcPhysAttr_INTERFACE_DEFINED__
#define __IRcPhysAttr_INTERFACE_DEFINED__

/* interface IRcPhysAttr */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcPhysAttr;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A6FAF5A0-043A-4A48-930B-E1951344FF47")
    IRcPhysAttr : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetAttributes( 
            /* [in] */ struct RtPhysAttr *attr) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcPhysAttrVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcPhysAttr * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcPhysAttr * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcPhysAttr * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetAttributes )( 
            IRcPhysAttr * This,
            /* [in] */ struct RtPhysAttr *attr);
        
        END_INTERFACE
    } IRcPhysAttrVtbl;

    interface IRcPhysAttr
    {
        CONST_VTBL struct IRcPhysAttrVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcPhysAttr_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcPhysAttr_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcPhysAttr_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcPhysAttr_SetAttributes(This,attr)	\
    (This)->lpVtbl -> SetAttributes(This,attr)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcPhysAttr_SetAttributes_Proxy( 
    IRcPhysAttr * This,
    /* [in] */ struct RtPhysAttr *attr);


void __RPC_STUB IRcPhysAttr_SetAttributes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcPhysAttr_INTERFACE_DEFINED__ */


#ifndef __IRcPhysStopSim_INTERFACE_DEFINED__
#define __IRcPhysStopSim_INTERFACE_DEFINED__

/* interface IRcPhysStopSim */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcPhysStopSim;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1C5D805A-BE4A-46AF-A048-4FC7BA12BE0D")
    IRcPhysStopSim : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcPhysStopSimVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcPhysStopSim * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcPhysStopSim * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcPhysStopSim * This);
        
        END_INTERFACE
    } IRcPhysStopSimVtbl;

    interface IRcPhysStopSim
    {
        CONST_VTBL struct IRcPhysStopSimVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcPhysStopSim_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcPhysStopSim_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcPhysStopSim_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcPhysStopSim_INTERFACE_DEFINED__ */


#ifndef __IRcPhysEnvAttr_INTERFACE_DEFINED__
#define __IRcPhysEnvAttr_INTERFACE_DEFINED__

/* interface IRcPhysEnvAttr */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcPhysEnvAttr;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9C0B319C-D3BC-42AC-8036-FD9B730EED1F")
    IRcPhysEnvAttr : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetAttributes( 
            /* [in] */ struct RtPhysEnvAttr *attr) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcPhysEnvAttrVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcPhysEnvAttr * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcPhysEnvAttr * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcPhysEnvAttr * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetAttributes )( 
            IRcPhysEnvAttr * This,
            /* [in] */ struct RtPhysEnvAttr *attr);
        
        END_INTERFACE
    } IRcPhysEnvAttrVtbl;

    interface IRcPhysEnvAttr
    {
        CONST_VTBL struct IRcPhysEnvAttrVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcPhysEnvAttr_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcPhysEnvAttr_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcPhysEnvAttr_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcPhysEnvAttr_SetAttributes(This,attr)	\
    (This)->lpVtbl -> SetAttributes(This,attr)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcPhysEnvAttr_SetAttributes_Proxy( 
    IRcPhysEnvAttr * This,
    /* [in] */ struct RtPhysEnvAttr *attr);


void __RPC_STUB IRcPhysEnvAttr_SetAttributes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcPhysEnvAttr_INTERFACE_DEFINED__ */


#ifndef __IRcPhysRegisterObj_INTERFACE_DEFINED__
#define __IRcPhysRegisterObj_INTERFACE_DEFINED__

/* interface IRcPhysRegisterObj */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcPhysRegisterObj;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7D21CF11-3A7B-4A83-A153-706473A61F7F")
    IRcPhysRegisterObj : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RegisterObject( 
            /* [in] */ IRsNode *pNode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcPhysRegisterObjVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcPhysRegisterObj * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcPhysRegisterObj * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcPhysRegisterObj * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterObject )( 
            IRcPhysRegisterObj * This,
            /* [in] */ IRsNode *pNode);
        
        END_INTERFACE
    } IRcPhysRegisterObjVtbl;

    interface IRcPhysRegisterObj
    {
        CONST_VTBL struct IRcPhysRegisterObjVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcPhysRegisterObj_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcPhysRegisterObj_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcPhysRegisterObj_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcPhysRegisterObj_RegisterObject(This,pNode)	\
    (This)->lpVtbl -> RegisterObject(This,pNode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcPhysRegisterObj_RegisterObject_Proxy( 
    IRcPhysRegisterObj * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRcPhysRegisterObj_RegisterObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcPhysRegisterObj_INTERFACE_DEFINED__ */


#ifndef __IRcPhysUnRegisterObj_INTERFACE_DEFINED__
#define __IRcPhysUnRegisterObj_INTERFACE_DEFINED__

/* interface IRcPhysUnRegisterObj */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcPhysUnRegisterObj;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E87BFC04-3A5B-4CD7-80DB-582CC698D5C3")
    IRcPhysUnRegisterObj : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcPhysUnRegisterObjVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcPhysUnRegisterObj * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcPhysUnRegisterObj * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcPhysUnRegisterObj * This);
        
        END_INTERFACE
    } IRcPhysUnRegisterObjVtbl;

    interface IRcPhysUnRegisterObj
    {
        CONST_VTBL struct IRcPhysUnRegisterObjVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcPhysUnRegisterObj_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcPhysUnRegisterObj_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcPhysUnRegisterObj_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcPhysUnRegisterObj_INTERFACE_DEFINED__ */


#ifndef __IRcPhysStartSim_INTERFACE_DEFINED__
#define __IRcPhysStartSim_INTERFACE_DEFINED__

/* interface IRcPhysStartSim */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcPhysStartSim;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("108722B5-3588-4D48-9D32-7F7A07EDFF43")
    IRcPhysStartSim : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcPhysStartSimVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcPhysStartSim * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcPhysStartSim * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcPhysStartSim * This);
        
        END_INTERFACE
    } IRcPhysStartSimVtbl;

    interface IRcPhysStartSim
    {
        CONST_VTBL struct IRcPhysStartSimVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcPhysStartSim_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcPhysStartSim_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcPhysStartSim_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcPhysStartSim_INTERFACE_DEFINED__ */


#ifndef __IRcSimpleCollision_INTERFACE_DEFINED__
#define __IRcSimpleCollision_INTERFACE_DEFINED__

/* interface IRcSimpleCollision */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcSimpleCollision;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3D113A5F-3D48-4B13-A170-FB579DC05C7C")
    IRcSimpleCollision : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcSimpleCollisionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcSimpleCollision * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcSimpleCollision * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcSimpleCollision * This);
        
        END_INTERFACE
    } IRcSimpleCollisionVtbl;

    interface IRcSimpleCollision
    {
        CONST_VTBL struct IRcSimpleCollisionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcSimpleCollision_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcSimpleCollision_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcSimpleCollision_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcSimpleCollision_INTERFACE_DEFINED__ */


#ifndef __IRcInitCollision_INTERFACE_DEFINED__
#define __IRcInitCollision_INTERFACE_DEFINED__

/* interface IRcInitCollision */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcInitCollision;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A2E77E22-399A-497D-A202-03CE6DCB1411")
    IRcInitCollision : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcInitCollisionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcInitCollision * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcInitCollision * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcInitCollision * This);
        
        END_INTERFACE
    } IRcInitCollisionVtbl;

    interface IRcInitCollision
    {
        CONST_VTBL struct IRcInitCollisionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcInitCollision_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcInitCollision_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcInitCollision_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcInitCollision_INTERFACE_DEFINED__ */


#ifndef __IRcRemovePhysAttr_INTERFACE_DEFINED__
#define __IRcRemovePhysAttr_INTERFACE_DEFINED__

/* interface IRcRemovePhysAttr */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcRemovePhysAttr;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3e7611d0-fbcf-47df-9b9e-94f0ebf5d651")
    IRcRemovePhysAttr : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcRemovePhysAttrVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcRemovePhysAttr * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcRemovePhysAttr * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcRemovePhysAttr * This);
        
        END_INTERFACE
    } IRcRemovePhysAttrVtbl;

    interface IRcRemovePhysAttr
    {
        CONST_VTBL struct IRcRemovePhysAttrVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcRemovePhysAttr_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcRemovePhysAttr_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcRemovePhysAttr_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcRemovePhysAttr_INTERFACE_DEFINED__ */


#ifndef __IRcPhysCreateEngine_INTERFACE_DEFINED__
#define __IRcPhysCreateEngine_INTERFACE_DEFINED__

/* interface IRcPhysCreateEngine */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcPhysCreateEngine;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7289F00C-00BC-55AB-122B-FC537D935B56")
    IRcPhysCreateEngine : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcPhysCreateEngineVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcPhysCreateEngine * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcPhysCreateEngine * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcPhysCreateEngine * This);
        
        END_INTERFACE
    } IRcPhysCreateEngineVtbl;

    interface IRcPhysCreateEngine
    {
        CONST_VTBL struct IRcPhysCreateEngineVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcPhysCreateEngine_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcPhysCreateEngine_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcPhysCreateEngine_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcPhysCreateEngine_INTERFACE_DEFINED__ */


#ifndef __IRcPhysAddAttrAt3D_INTERFACE_DEFINED__
#define __IRcPhysAddAttrAt3D_INTERFACE_DEFINED__

/* interface IRcPhysAddAttrAt3D */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcPhysAddAttrAt3D;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B234F5A0-043A-4A48-930B-E1951344FF47")
    IRcPhysAddAttrAt3D : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcPhysAddAttrAt3DVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcPhysAddAttrAt3D * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcPhysAddAttrAt3D * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcPhysAddAttrAt3D * This);
        
        END_INTERFACE
    } IRcPhysAddAttrAt3DVtbl;

    interface IRcPhysAddAttrAt3D
    {
        CONST_VTBL struct IRcPhysAddAttrAt3DVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcPhysAddAttrAt3D_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcPhysAddAttrAt3D_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcPhysAddAttrAt3D_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcPhysAddAttrAt3D_INTERFACE_DEFINED__ */


#ifndef __IRcPhysAddEnvAttrAt3D_INTERFACE_DEFINED__
#define __IRcPhysAddEnvAttrAt3D_INTERFACE_DEFINED__

/* interface IRcPhysAddEnvAttrAt3D */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcPhysAddEnvAttrAt3D;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9C0B3222-3333-42AC-8036-FD9B730EED1F")
    IRcPhysAddEnvAttrAt3D : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcPhysAddEnvAttrAt3DVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcPhysAddEnvAttrAt3D * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcPhysAddEnvAttrAt3D * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcPhysAddEnvAttrAt3D * This);
        
        END_INTERFACE
    } IRcPhysAddEnvAttrAt3DVtbl;

    interface IRcPhysAddEnvAttrAt3D
    {
        CONST_VTBL struct IRcPhysAddEnvAttrAt3DVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcPhysAddEnvAttrAt3D_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcPhysAddEnvAttrAt3D_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcPhysAddEnvAttrAt3D_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcPhysAddEnvAttrAt3D_INTERFACE_DEFINED__ */


#ifndef __IRcPhysCreateToolbar_INTERFACE_DEFINED__
#define __IRcPhysCreateToolbar_INTERFACE_DEFINED__

/* interface IRcPhysCreateToolbar */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcPhysCreateToolbar;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("291EA666-0D29-4FB0-A312-29355E505CC9")
    IRcPhysCreateToolbar : public IRsObject
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcPhysCreateToolbarVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcPhysCreateToolbar * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcPhysCreateToolbar * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcPhysCreateToolbar * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRcPhysCreateToolbar * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRcPhysCreateToolbar * This,
            /* [retval][out] */ BSTR *pVal);
        
        END_INTERFACE
    } IRcPhysCreateToolbarVtbl;

    interface IRcPhysCreateToolbar
    {
        CONST_VTBL struct IRcPhysCreateToolbarVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcPhysCreateToolbar_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcPhysCreateToolbar_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcPhysCreateToolbar_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcPhysCreateToolbar_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRcPhysCreateToolbar_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcPhysCreateToolbar_INTERFACE_DEFINED__ */


#ifndef __IRcRemoveEnvAttr_INTERFACE_DEFINED__
#define __IRcRemoveEnvAttr_INTERFACE_DEFINED__

/* interface IRcRemoveEnvAttr */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcRemoveEnvAttr;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3e7611d0-22cf-47df-9b9e-94f022f5d651")
    IRcRemoveEnvAttr : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcRemoveEnvAttrVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcRemoveEnvAttr * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcRemoveEnvAttr * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcRemoveEnvAttr * This);
        
        END_INTERFACE
    } IRcRemoveEnvAttrVtbl;

    interface IRcRemoveEnvAttr
    {
        CONST_VTBL struct IRcRemoveEnvAttrVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcRemoveEnvAttr_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcRemoveEnvAttr_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcRemoveEnvAttr_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcRemoveEnvAttr_INTERFACE_DEFINED__ */


#ifndef __IRcPhysAddWind_INTERFACE_DEFINED__
#define __IRcPhysAddWind_INTERFACE_DEFINED__

/* interface IRcPhysAddWind */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcPhysAddWind;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9C0B3222-4123-42AC-8036-568B730EED1F")
    IRcPhysAddWind : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcPhysAddWindVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcPhysAddWind * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcPhysAddWind * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcPhysAddWind * This);
        
        END_INTERFACE
    } IRcPhysAddWindVtbl;

    interface IRcPhysAddWind
    {
        CONST_VTBL struct IRcPhysAddWindVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcPhysAddWind_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcPhysAddWind_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcPhysAddWind_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcPhysAddWind_INTERFACE_DEFINED__ */


#ifndef __IRcPhysCollision_INTERFACE_DEFINED__
#define __IRcPhysCollision_INTERFACE_DEFINED__

/* interface IRcPhysCollision */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcPhysCollision;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("C7BFDBD8-DD07-4DAB-8522-43013C22EE9E")
    IRcPhysCollision : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcPhysCollisionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcPhysCollision * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcPhysCollision * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcPhysCollision * This);
        
        END_INTERFACE
    } IRcPhysCollisionVtbl;

    interface IRcPhysCollision
    {
        CONST_VTBL struct IRcPhysCollisionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcPhysCollision_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcPhysCollision_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcPhysCollision_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcPhysCollision_INTERFACE_DEFINED__ */


#ifndef __IRcActivatePhysWidget_INTERFACE_DEFINED__
#define __IRcActivatePhysWidget_INTERFACE_DEFINED__

/* interface IRcActivatePhysWidget */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcActivatePhysWidget;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8f345B6C-33E9-4AC4-BE8C-EC61aB1517fC")
    IRcActivatePhysWidget : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcActivatePhysWidgetVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcActivatePhysWidget * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcActivatePhysWidget * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcActivatePhysWidget * This);
        
        END_INTERFACE
    } IRcActivatePhysWidgetVtbl;

    interface IRcActivatePhysWidget
    {
        CONST_VTBL struct IRcActivatePhysWidgetVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcActivatePhysWidget_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcActivatePhysWidget_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcActivatePhysWidget_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcActivatePhysWidget_INTERFACE_DEFINED__ */


#ifndef __IRcPhysAddImpulse_INTERFACE_DEFINED__
#define __IRcPhysAddImpulse_INTERFACE_DEFINED__

/* interface IRcPhysAddImpulse */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcPhysAddImpulse;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A27E7122-399A-486D-A202-03CE6DCB1411")
    IRcPhysAddImpulse : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcPhysAddImpulseVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcPhysAddImpulse * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcPhysAddImpulse * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcPhysAddImpulse * This);
        
        END_INTERFACE
    } IRcPhysAddImpulseVtbl;

    interface IRcPhysAddImpulse
    {
        CONST_VTBL struct IRcPhysAddImpulseVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcPhysAddImpulse_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcPhysAddImpulse_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcPhysAddImpulse_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcPhysAddImpulse_INTERFACE_DEFINED__ */


#ifndef __IRcPhysAddConstraint_INTERFACE_DEFINED__
#define __IRcPhysAddConstraint_INTERFACE_DEFINED__

/* interface IRcPhysAddConstraint */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcPhysAddConstraint;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A27E7122-399A-486D-A202-78CE6DCB9111")
    IRcPhysAddConstraint : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcPhysAddConstraintVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcPhysAddConstraint * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcPhysAddConstraint * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcPhysAddConstraint * This);
        
        END_INTERFACE
    } IRcPhysAddConstraintVtbl;

    interface IRcPhysAddConstraint
    {
        CONST_VTBL struct IRcPhysAddConstraintVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcPhysAddConstraint_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcPhysAddConstraint_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcPhysAddConstraint_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcPhysAddConstraint_INTERFACE_DEFINED__ */


#ifndef __IRcPhysRegister_INTERFACE_DEFINED__
#define __IRcPhysRegister_INTERFACE_DEFINED__

/* interface IRcPhysRegister */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcPhysRegister;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7378F998-EABE-F5AB-1A2B-FCA37DA35B49")
    IRcPhysRegister : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcPhysRegisterVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcPhysRegister * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcPhysRegister * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcPhysRegister * This);
        
        END_INTERFACE
    } IRcPhysRegisterVtbl;

    interface IRcPhysRegister
    {
        CONST_VTBL struct IRcPhysRegisterVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcPhysRegister_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcPhysRegister_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcPhysRegister_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcPhysRegister_INTERFACE_DEFINED__ */


#ifndef __IRcPhysSetSpeed_INTERFACE_DEFINED__
#define __IRcPhysSetSpeed_INTERFACE_DEFINED__

/* interface IRcPhysSetSpeed */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcPhysSetSpeed;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8e059d32-ea61-4491-a17c-7278724b63c2")
    IRcPhysSetSpeed : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcPhysSetSpeedVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcPhysSetSpeed * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcPhysSetSpeed * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcPhysSetSpeed * This);
        
        END_INTERFACE
    } IRcPhysSetSpeedVtbl;

    interface IRcPhysSetSpeed
    {
        CONST_VTBL struct IRcPhysSetSpeedVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcPhysSetSpeed_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcPhysSetSpeed_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcPhysSetSpeed_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcPhysSetSpeed_INTERFACE_DEFINED__ */


#ifndef __IRaPhysEvents_INTERFACE_DEFINED__
#define __IRaPhysEvents_INTERFACE_DEFINED__

/* interface IRaPhysEvents */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRaPhysEvents;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("200feb58-64a4-47a6-8524-67feba92be89")
    IRaPhysEvents : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Init( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRaPhysEventsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRaPhysEvents * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRaPhysEvents * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRaPhysEvents * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Init )( 
            IRaPhysEvents * This);
        
        END_INTERFACE
    } IRaPhysEventsVtbl;

    interface IRaPhysEvents
    {
        CONST_VTBL struct IRaPhysEventsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRaPhysEvents_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRaPhysEvents_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRaPhysEvents_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRaPhysEvents_Init(This)	\
    (This)->lpVtbl -> Init(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRaPhysEvents_Init_Proxy( 
    IRaPhysEvents * This);


void __RPC_STUB IRaPhysEvents_Init_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRaPhysEvents_INTERFACE_DEFINED__ */


#ifndef __IRcPhysUpdate_INTERFACE_DEFINED__
#define __IRcPhysUpdate_INTERFACE_DEFINED__

/* interface IRcPhysUpdate */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcPhysUpdate;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("43147120-8789-4fba-b9e6-c1fbd7bc36cf")
    IRcPhysUpdate : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcPhysUpdateVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcPhysUpdate * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcPhysUpdate * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcPhysUpdate * This);
        
        END_INTERFACE
    } IRcPhysUpdateVtbl;

    interface IRcPhysUpdate
    {
        CONST_VTBL struct IRcPhysUpdateVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcPhysUpdate_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcPhysUpdate_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcPhysUpdate_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcPhysUpdate_INTERFACE_DEFINED__ */


#ifndef __IRcPhysCloth_INTERFACE_DEFINED__
#define __IRcPhysCloth_INTERFACE_DEFINED__

/* interface IRcPhysCloth */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcPhysCloth;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("CE0E2448-EFEA-42fc-9E49-A4D45C6B9C0A")
    IRcPhysCloth : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetAttributes( 
            /* [in] */ struct RtClothAttr *pAttr,
            /* [in] */ IRdIndexArray *pFixation,
            /* [in] */ BSTR nodename) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcPhysClothVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcPhysCloth * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcPhysCloth * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcPhysCloth * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetAttributes )( 
            IRcPhysCloth * This,
            /* [in] */ struct RtClothAttr *pAttr,
            /* [in] */ IRdIndexArray *pFixation,
            /* [in] */ BSTR nodename);
        
        END_INTERFACE
    } IRcPhysClothVtbl;

    interface IRcPhysCloth
    {
        CONST_VTBL struct IRcPhysClothVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcPhysCloth_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcPhysCloth_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcPhysCloth_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcPhysCloth_SetAttributes(This,pAttr,pFixation,nodename)	\
    (This)->lpVtbl -> SetAttributes(This,pAttr,pFixation,nodename)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcPhysCloth_SetAttributes_Proxy( 
    IRcPhysCloth * This,
    /* [in] */ struct RtClothAttr *pAttr,
    /* [in] */ IRdIndexArray *pFixation,
    /* [in] */ BSTR nodename);


void __RPC_STUB IRcPhysCloth_SetAttributes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcPhysCloth_INTERFACE_DEFINED__ */


#ifndef __IRcResetCloth_INTERFACE_DEFINED__
#define __IRcResetCloth_INTERFACE_DEFINED__

/* interface IRcResetCloth */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcResetCloth;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BBA909C4-2710-43d8-BE9C-CAAA8B92FD4B")
    IRcResetCloth : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcResetClothVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcResetCloth * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcResetCloth * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcResetCloth * This);
        
        END_INTERFACE
    } IRcResetClothVtbl;

    interface IRcResetCloth
    {
        CONST_VTBL struct IRcResetClothVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcResetCloth_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcResetCloth_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcResetCloth_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcResetCloth_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Physics_2620 */
/* [local] */ 

typedef struct RtContinueData
    {
    RtMatrixf init_matrix;
    RtMatrixf matrix;
    RtMatrixf init_parent_matrix;
    RtMatrixf parent_matrix;
    RtPoint init_speed;
    RtPoint speed;
    RtPoint init_rotation;
    RtPoint rotation;
    RtFloat init_frametime;
    RtFloat frametime;
    RtFloat init_charge;
    RtFloat charge;
    RtFloat init_mass;
    RtFloat mass;
    RtUlong init_numfix;
    RtUlong numfix;
    RtPoint init_fix1;
    RtPoint fix1;
    RtPoint init_fix2;
    RtPoint fix2;
    RtBool init_state;
    RtBool state;
    RtBool init_subobj;
    RtBool subobj;
    RtUshort flags;
    } 	RtContinueData;



extern RPC_IF_HANDLE __MIDL_itf__Physics_2620_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Physics_2620_v0_0_s_ifspec;

#ifndef __IRcUpdateInitState_INTERFACE_DEFINED__
#define __IRcUpdateInitState_INTERFACE_DEFINED__

/* interface IRcUpdateInitState */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcUpdateInitState;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("38552647-23FC-4425-850E-734DC5868A7A")
    IRcUpdateInitState : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddNode( 
            /* [in] */ IRsNode *pNode,
            /* [in] */ IRsNode *pPhysNode,
            /* [in] */ RtContinueData *pData,
            /* [in] */ IRdMesh *pMesh) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddEngine( 
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtFloat fInitTime,
            /* [in] */ RtFloat fTime) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcUpdateInitStateVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcUpdateInitState * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcUpdateInitState * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcUpdateInitState * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddNode )( 
            IRcUpdateInitState * This,
            /* [in] */ IRsNode *pNode,
            /* [in] */ IRsNode *pPhysNode,
            /* [in] */ RtContinueData *pData,
            /* [in] */ IRdMesh *pMesh);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddEngine )( 
            IRcUpdateInitState * This,
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtFloat fInitTime,
            /* [in] */ RtFloat fTime);
        
        END_INTERFACE
    } IRcUpdateInitStateVtbl;

    interface IRcUpdateInitState
    {
        CONST_VTBL struct IRcUpdateInitStateVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcUpdateInitState_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcUpdateInitState_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcUpdateInitState_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcUpdateInitState_AddNode(This,pNode,pPhysNode,pData,pMesh)	\
    (This)->lpVtbl -> AddNode(This,pNode,pPhysNode,pData,pMesh)

#define IRcUpdateInitState_AddEngine(This,pNode,fInitTime,fTime)	\
    (This)->lpVtbl -> AddEngine(This,pNode,fInitTime,fTime)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcUpdateInitState_AddNode_Proxy( 
    IRcUpdateInitState * This,
    /* [in] */ IRsNode *pNode,
    /* [in] */ IRsNode *pPhysNode,
    /* [in] */ RtContinueData *pData,
    /* [in] */ IRdMesh *pMesh);


void __RPC_STUB IRcUpdateInitState_AddNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcUpdateInitState_AddEngine_Proxy( 
    IRcUpdateInitState * This,
    /* [in] */ IRsNode *pNode,
    /* [in] */ RtFloat fInitTime,
    /* [in] */ RtFloat fTime);


void __RPC_STUB IRcUpdateInitState_AddEngine_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcUpdateInitState_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Physics_2621 */
/* [local] */ 

typedef 
enum tagRtPhysNtDataType
    {	PHYS_NTDATA_EMPTY	= 0,
	PHYS_NTDATA_MOVETOOL	= 1,
	PHYS_NTDATA_REGISTER	= 2,
	PHYS_NTDATA_UNREGISTER	= 3,
	PHYS_NTDATA_SYNCHRO	= 4,
	PHYS_NTDATA_SYNCHRONIZED	= 5,
	PHYS_NTDATA_CLOTH	= 6
    } 	RtPhysNtDataType;



extern RPC_IF_HANDLE __MIDL_itf__Physics_2621_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Physics_2621_v0_0_s_ifspec;

#ifndef __IRdPhysNtData_INTERFACE_DEFINED__
#define __IRdPhysNtData_INTERFACE_DEFINED__

/* interface IRdPhysNtData */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdPhysNtData;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("11A333DE-25EF-4f43-BDDC-EE2DEAEB4222")
    IRdPhysNtData : public IRsDataObject
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDataType( 
            /* [retval][out] */ RtPhysNtDataType *type) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetDataType( 
            /* [in] */ RtPhysNtDataType type) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMoveToolData( 
            /* [out] */ RtPoint *orig,
            /* [out] */ RtPoint *ray,
            /* [out] */ RtShort *flags,
            /* [out] */ RtShort *axis,
            /* [out] */ RtFloat *power) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMoveToolData( 
            /* [in] */ RtPoint orig,
            /* [in] */ RtPoint ray,
            /* [in] */ RtShort flags,
            /* [in] */ RtShort axis,
            /* [in] */ RtFloat power) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSync( 
            /* [out] */ RtFloat *time,
            /* [out] */ GUID *id) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSync( 
            /* [in] */ RtFloat time,
            /* [in] */ GUID id) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetObjectA( 
            /* [out] */ BSTR *name) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetObject( 
            /* [in] */ BSTR name) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetClothData( 
            /* [in] */ RtPoint *points,
            /* [in] */ RtUlong count) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockClothData( 
            /* [out] */ RtPoint **pPoints,
            /* [out] */ RtUlong *count) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnlockClothData( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdPhysNtDataVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdPhysNtData * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdPhysNtData * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdPhysNtData * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRdPhysNtData * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRdPhysNtData * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDefault )( 
            IRdPhysNtData * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDataType )( 
            IRdPhysNtData * This,
            /* [retval][out] */ RtPhysNtDataType *type);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDataType )( 
            IRdPhysNtData * This,
            /* [in] */ RtPhysNtDataType type);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMoveToolData )( 
            IRdPhysNtData * This,
            /* [out] */ RtPoint *orig,
            /* [out] */ RtPoint *ray,
            /* [out] */ RtShort *flags,
            /* [out] */ RtShort *axis,
            /* [out] */ RtFloat *power);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMoveToolData )( 
            IRdPhysNtData * This,
            /* [in] */ RtPoint orig,
            /* [in] */ RtPoint ray,
            /* [in] */ RtShort flags,
            /* [in] */ RtShort axis,
            /* [in] */ RtFloat power);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSync )( 
            IRdPhysNtData * This,
            /* [out] */ RtFloat *time,
            /* [out] */ GUID *id);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSync )( 
            IRdPhysNtData * This,
            /* [in] */ RtFloat time,
            /* [in] */ GUID id);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetObjectA )( 
            IRdPhysNtData * This,
            /* [out] */ BSTR *name);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetObject )( 
            IRdPhysNtData * This,
            /* [in] */ BSTR name);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetClothData )( 
            IRdPhysNtData * This,
            /* [in] */ RtPoint *points,
            /* [in] */ RtUlong count);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockClothData )( 
            IRdPhysNtData * This,
            /* [out] */ RtPoint **pPoints,
            /* [out] */ RtUlong *count);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnlockClothData )( 
            IRdPhysNtData * This);
        
        END_INTERFACE
    } IRdPhysNtDataVtbl;

    interface IRdPhysNtData
    {
        CONST_VTBL struct IRdPhysNtDataVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdPhysNtData_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdPhysNtData_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdPhysNtData_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdPhysNtData_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRdPhysNtData_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#define IRdPhysNtData_SetDefault(This)	\
    (This)->lpVtbl -> SetDefault(This)


#define IRdPhysNtData_GetDataType(This,type)	\
    (This)->lpVtbl -> GetDataType(This,type)

#define IRdPhysNtData_SetDataType(This,type)	\
    (This)->lpVtbl -> SetDataType(This,type)

#define IRdPhysNtData_GetMoveToolData(This,orig,ray,flags,axis,power)	\
    (This)->lpVtbl -> GetMoveToolData(This,orig,ray,flags,axis,power)

#define IRdPhysNtData_SetMoveToolData(This,orig,ray,flags,axis,power)	\
    (This)->lpVtbl -> SetMoveToolData(This,orig,ray,flags,axis,power)

#define IRdPhysNtData_GetSync(This,time,id)	\
    (This)->lpVtbl -> GetSync(This,time,id)

#define IRdPhysNtData_SetSync(This,time,id)	\
    (This)->lpVtbl -> SetSync(This,time,id)

#define IRdPhysNtData_GetObjectA(This,name)	\
    (This)->lpVtbl -> GetObjectA(This,name)

#define IRdPhysNtData_SetObject(This,name)	\
    (This)->lpVtbl -> SetObject(This,name)

#define IRdPhysNtData_SetClothData(This,points,count)	\
    (This)->lpVtbl -> SetClothData(This,points,count)

#define IRdPhysNtData_LockClothData(This,pPoints,count)	\
    (This)->lpVtbl -> LockClothData(This,pPoints,count)

#define IRdPhysNtData_UnlockClothData(This)	\
    (This)->lpVtbl -> UnlockClothData(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysNtData_GetDataType_Proxy( 
    IRdPhysNtData * This,
    /* [retval][out] */ RtPhysNtDataType *type);


void __RPC_STUB IRdPhysNtData_GetDataType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysNtData_SetDataType_Proxy( 
    IRdPhysNtData * This,
    /* [in] */ RtPhysNtDataType type);


void __RPC_STUB IRdPhysNtData_SetDataType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysNtData_GetMoveToolData_Proxy( 
    IRdPhysNtData * This,
    /* [out] */ RtPoint *orig,
    /* [out] */ RtPoint *ray,
    /* [out] */ RtShort *flags,
    /* [out] */ RtShort *axis,
    /* [out] */ RtFloat *power);


void __RPC_STUB IRdPhysNtData_GetMoveToolData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysNtData_SetMoveToolData_Proxy( 
    IRdPhysNtData * This,
    /* [in] */ RtPoint orig,
    /* [in] */ RtPoint ray,
    /* [in] */ RtShort flags,
    /* [in] */ RtShort axis,
    /* [in] */ RtFloat power);


void __RPC_STUB IRdPhysNtData_SetMoveToolData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysNtData_GetSync_Proxy( 
    IRdPhysNtData * This,
    /* [out] */ RtFloat *time,
    /* [out] */ GUID *id);


void __RPC_STUB IRdPhysNtData_GetSync_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysNtData_SetSync_Proxy( 
    IRdPhysNtData * This,
    /* [in] */ RtFloat time,
    /* [in] */ GUID id);


void __RPC_STUB IRdPhysNtData_SetSync_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysNtData_GetObjectA_Proxy( 
    IRdPhysNtData * This,
    /* [out] */ BSTR *name);


void __RPC_STUB IRdPhysNtData_GetObjectA_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysNtData_SetObject_Proxy( 
    IRdPhysNtData * This,
    /* [in] */ BSTR name);


void __RPC_STUB IRdPhysNtData_SetObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysNtData_SetClothData_Proxy( 
    IRdPhysNtData * This,
    /* [in] */ RtPoint *points,
    /* [in] */ RtUlong count);


void __RPC_STUB IRdPhysNtData_SetClothData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysNtData_LockClothData_Proxy( 
    IRdPhysNtData * This,
    /* [out] */ RtPoint **pPoints,
    /* [out] */ RtUlong *count);


void __RPC_STUB IRdPhysNtData_LockClothData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdPhysNtData_UnlockClothData_Proxy( 
    IRdPhysNtData * This);


void __RPC_STUB IRdPhysNtData_UnlockClothData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdPhysNtData_INTERFACE_DEFINED__ */


#ifndef __IRsPhysUpdateAgent_INTERFACE_DEFINED__
#define __IRsPhysUpdateAgent_INTERFACE_DEFINED__

/* interface IRsPhysUpdateAgent */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsPhysUpdateAgent;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("221A742E-B484-4faf-8A81-2F73FF4BF1E4")
    IRsPhysUpdateAgent : public IRsSimpleUIUpdateAgent
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsPhysUpdateAgentVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsPhysUpdateAgent * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsPhysUpdateAgent * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsPhysUpdateAgent * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRsPhysUpdateAgent * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRsPhysUpdateAgent * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Register )( 
            IRsPhysUpdateAgent * This,
            /* [in] */ IRsUIControl *uictl);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Unregister )( 
            IRsPhysUpdateAgent * This,
            /* [in] */ IRsUIControl *uictl);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DoUpdate )( 
            IRsPhysUpdateAgent * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DoGraphUpdate )( 
            IRsPhysUpdateAgent * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *IsChecked )( 
            IRsPhysUpdateAgent * This,
            /* [in] */ int tag,
            /* [retval][out] */ RtBOOL *state);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *IsEnabled )( 
            IRsPhysUpdateAgent * This,
            /* [in] */ int tag,
            /* [retval][out] */ RtBOOL *state);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTagFromString )( 
            IRsPhysUpdateAgent * This,
            /* [in] */ int tagType,
            /* [in] */ BSTR bszTagString,
            /* [retval][out] */ int *tag);
        
        END_INTERFACE
    } IRsPhysUpdateAgentVtbl;

    interface IRsPhysUpdateAgent
    {
        CONST_VTBL struct IRsPhysUpdateAgentVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsPhysUpdateAgent_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsPhysUpdateAgent_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsPhysUpdateAgent_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsPhysUpdateAgent_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRsPhysUpdateAgent_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#define IRsPhysUpdateAgent_Register(This,uictl)	\
    (This)->lpVtbl -> Register(This,uictl)

#define IRsPhysUpdateAgent_Unregister(This,uictl)	\
    (This)->lpVtbl -> Unregister(This,uictl)

#define IRsPhysUpdateAgent_DoUpdate(This)	\
    (This)->lpVtbl -> DoUpdate(This)

#define IRsPhysUpdateAgent_DoGraphUpdate(This)	\
    (This)->lpVtbl -> DoGraphUpdate(This)


#define IRsPhysUpdateAgent_IsChecked(This,tag,state)	\
    (This)->lpVtbl -> IsChecked(This,tag,state)

#define IRsPhysUpdateAgent_IsEnabled(This,tag,state)	\
    (This)->lpVtbl -> IsEnabled(This,tag,state)

#define IRsPhysUpdateAgent_GetTagFromString(This,tagType,bszTagString,tag)	\
    (This)->lpVtbl -> GetTagFromString(This,tagType,bszTagString,tag)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsPhysUpdateAgent_INTERFACE_DEFINED__ */


#ifndef __IRnCollisionMng_INTERFACE_DEFINED__
#define __IRnCollisionMng_INTERFACE_DEFINED__

/* interface IRnCollisionMng */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnCollisionMng;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("CD38DA9D-7DD3-44F4-A88E-8C0DE727820E")
    IRnCollisionMng : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnCollisionMngVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnCollisionMng * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnCollisionMng * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnCollisionMng * This);
        
        END_INTERFACE
    } IRnCollisionMngVtbl;

    interface IRnCollisionMng
    {
        CONST_VTBL struct IRnCollisionMngVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnCollisionMng_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnCollisionMng_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnCollisionMng_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnCollisionMng_INTERFACE_DEFINED__ */


#ifndef __IRnPhysWind_INTERFACE_DEFINED__
#define __IRnPhysWind_INTERFACE_DEFINED__

/* interface IRnPhysWind */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnPhysWind;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("61474372-C6C5-47E4-8B9E-63ADDE80C252")
    IRnPhysWind : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnPhysWindVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnPhysWind * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnPhysWind * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnPhysWind * This);
        
        END_INTERFACE
    } IRnPhysWindVtbl;

    interface IRnPhysWind
    {
        CONST_VTBL struct IRnPhysWindVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnPhysWind_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnPhysWind_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnPhysWind_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnPhysWind_INTERFACE_DEFINED__ */


#ifndef __IRnPhysConstraint_INTERFACE_DEFINED__
#define __IRnPhysConstraint_INTERFACE_DEFINED__

/* interface IRnPhysConstraint */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnPhysConstraint;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("62454352-E4E5-47E4-8B9E-63ADDE80C252")
    IRnPhysConstraint : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnPhysConstraintVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnPhysConstraint * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnPhysConstraint * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnPhysConstraint * This);
        
        END_INTERFACE
    } IRnPhysConstraintVtbl;

    interface IRnPhysConstraint
    {
        CONST_VTBL struct IRnPhysConstraintVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnPhysConstraint_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnPhysConstraint_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnPhysConstraint_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnPhysConstraint_INTERFACE_DEFINED__ */


#ifndef __IRnSkeletonRoot_INTERFACE_DEFINED__
#define __IRnSkeletonRoot_INTERFACE_DEFINED__

/* interface IRnSkeletonRoot */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnSkeletonRoot;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FBE9A004-DE71-4E02-A7AD-6FF24AC7693A")
    IRnSkeletonRoot : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE AsyncUpdateIkPose( 
            /* [in] */ IRsIkHandle *pHandle) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AsyncUpdateFkPose( 
            /* [in] */ IRsNode *pJoint) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AsyncUpdatePose( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetRootBoneNode( 
            /* [in] */ IRsNode **ppNode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RecalculatePoseSync( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnSkeletonRootVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnSkeletonRoot * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnSkeletonRoot * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnSkeletonRoot * This);
        
        HRESULT ( STDMETHODCALLTYPE *AsyncUpdateIkPose )( 
            IRnSkeletonRoot * This,
            /* [in] */ IRsIkHandle *pHandle);
        
        HRESULT ( STDMETHODCALLTYPE *AsyncUpdateFkPose )( 
            IRnSkeletonRoot * This,
            /* [in] */ IRsNode *pJoint);
        
        HRESULT ( STDMETHODCALLTYPE *AsyncUpdatePose )( 
            IRnSkeletonRoot * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetRootBoneNode )( 
            IRnSkeletonRoot * This,
            /* [in] */ IRsNode **ppNode);
        
        HRESULT ( STDMETHODCALLTYPE *RecalculatePoseSync )( 
            IRnSkeletonRoot * This);
        
        END_INTERFACE
    } IRnSkeletonRootVtbl;

    interface IRnSkeletonRoot
    {
        CONST_VTBL struct IRnSkeletonRootVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnSkeletonRoot_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnSkeletonRoot_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnSkeletonRoot_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnSkeletonRoot_AsyncUpdateIkPose(This,pHandle)	\
    (This)->lpVtbl -> AsyncUpdateIkPose(This,pHandle)

#define IRnSkeletonRoot_AsyncUpdateFkPose(This,pJoint)	\
    (This)->lpVtbl -> AsyncUpdateFkPose(This,pJoint)

#define IRnSkeletonRoot_AsyncUpdatePose(This)	\
    (This)->lpVtbl -> AsyncUpdatePose(This)

#define IRnSkeletonRoot_GetRootBoneNode(This,ppNode)	\
    (This)->lpVtbl -> GetRootBoneNode(This,ppNode)

#define IRnSkeletonRoot_RecalculatePoseSync(This)	\
    (This)->lpVtbl -> RecalculatePoseSync(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRnSkeletonRoot_AsyncUpdateIkPose_Proxy( 
    IRnSkeletonRoot * This,
    /* [in] */ IRsIkHandle *pHandle);


void __RPC_STUB IRnSkeletonRoot_AsyncUpdateIkPose_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRnSkeletonRoot_AsyncUpdateFkPose_Proxy( 
    IRnSkeletonRoot * This,
    /* [in] */ IRsNode *pJoint);


void __RPC_STUB IRnSkeletonRoot_AsyncUpdateFkPose_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRnSkeletonRoot_AsyncUpdatePose_Proxy( 
    IRnSkeletonRoot * This);


void __RPC_STUB IRnSkeletonRoot_AsyncUpdatePose_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRnSkeletonRoot_GetRootBoneNode_Proxy( 
    IRnSkeletonRoot * This,
    /* [in] */ IRsNode **ppNode);


void __RPC_STUB IRnSkeletonRoot_GetRootBoneNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRnSkeletonRoot_RecalculatePoseSync_Proxy( 
    IRnSkeletonRoot * This);


void __RPC_STUB IRnSkeletonRoot_RecalculatePoseSync_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRnSkeletonRoot_INTERFACE_DEFINED__ */


#ifndef __IRnBone_INTERFACE_DEFINED__
#define __IRnBone_INTERFACE_DEFINED__

/* interface IRnBone */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnBone;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F38CE8E3-FC94-4743-B155-DADCA9489AD2")
    IRnBone : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnBoneVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnBone * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnBone * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnBone * This);
        
        END_INTERFACE
    } IRnBoneVtbl;

    interface IRnBone
    {
        CONST_VTBL struct IRnBoneVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnBone_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnBone_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnBone_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnBone_INTERFACE_DEFINED__ */


#ifndef __IRnIkLock_INTERFACE_DEFINED__
#define __IRnIkLock_INTERFACE_DEFINED__

/* interface IRnIkLock */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnIkLock;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1B9DE593-7753-4c2b-B434-590FF1C45353")
    IRnIkLock : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnIkLockVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnIkLock * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnIkLock * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnIkLock * This);
        
        END_INTERFACE
    } IRnIkLockVtbl;

    interface IRnIkLock
    {
        CONST_VTBL struct IRnIkLockVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnIkLock_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnIkLock_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnIkLock_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnIkLock_INTERFACE_DEFINED__ */


#ifndef __IRnIkMotionController_INTERFACE_DEFINED__
#define __IRnIkMotionController_INTERFACE_DEFINED__

/* interface IRnIkMotionController */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnIkMotionController;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2A3EF7AD-A4E5-4BDC-849C-A9C017F38E2E")
    IRnIkMotionController : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnIkMotionControllerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnIkMotionController * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnIkMotionController * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnIkMotionController * This);
        
        END_INTERFACE
    } IRnIkMotionControllerVtbl;

    interface IRnIkMotionController
    {
        CONST_VTBL struct IRnIkMotionControllerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnIkMotionController_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnIkMotionController_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnIkMotionController_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnIkMotionController_INTERFACE_DEFINED__ */


#ifndef __IRnBoneForce_INTERFACE_DEFINED__
#define __IRnBoneForce_INTERFACE_DEFINED__

/* interface IRnBoneForce */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnBoneForce;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FA43B50E-2225-450c-9DE4-E344EA3D778B")
    IRnBoneForce : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnBoneForceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnBoneForce * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnBoneForce * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnBoneForce * This);
        
        END_INTERFACE
    } IRnBoneForceVtbl;

    interface IRnBoneForce
    {
        CONST_VTBL struct IRnBoneForceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnBoneForce_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnBoneForce_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnBoneForce_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnBoneForce_INTERFACE_DEFINED__ */


#ifndef __IRnFixPoint_INTERFACE_DEFINED__
#define __IRnFixPoint_INTERFACE_DEFINED__

/* interface IRnFixPoint */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnFixPoint;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FA43B522-2225-450c-9DE4-E333EA3D778B")
    IRnFixPoint : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnFixPointVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnFixPoint * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnFixPoint * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnFixPoint * This);
        
        END_INTERFACE
    } IRnFixPointVtbl;

    interface IRnFixPoint
    {
        CONST_VTBL struct IRnFixPointVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnFixPoint_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnFixPoint_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnFixPoint_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnFixPoint_INTERFACE_DEFINED__ */


#ifndef __IRnCogPoint_INTERFACE_DEFINED__
#define __IRnCogPoint_INTERFACE_DEFINED__

/* interface IRnCogPoint */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnCogPoint;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9c4b1e55-dbf0-4785-b40e-314a2d6b5609")
    IRnCogPoint : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnCogPointVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnCogPoint * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnCogPoint * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnCogPoint * This);
        
        END_INTERFACE
    } IRnCogPointVtbl;

    interface IRnCogPoint
    {
        CONST_VTBL struct IRnCogPointVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnCogPoint_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnCogPoint_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnCogPoint_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnCogPoint_INTERFACE_DEFINED__ */


#ifndef __IRnGravityForce_INTERFACE_DEFINED__
#define __IRnGravityForce_INTERFACE_DEFINED__

/* interface IRnGravityForce */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnGravityForce;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("fb93fe33-8166-449d-a855-44586d740026")
    IRnGravityForce : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnGravityForceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnGravityForce * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnGravityForce * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnGravityForce * This);
        
        END_INTERFACE
    } IRnGravityForceVtbl;

    interface IRnGravityForce
    {
        CONST_VTBL struct IRnGravityForceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnGravityForce_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnGravityForce_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnGravityForce_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnGravityForce_INTERFACE_DEFINED__ */


#ifndef __IRnEnvForce_INTERFACE_DEFINED__
#define __IRnEnvForce_INTERFACE_DEFINED__

/* interface IRnEnvForce */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnEnvForce;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2b9eb2f5-7ded-4925-9448-d63a84696b9f")
    IRnEnvForce : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnEnvForceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnEnvForce * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnEnvForce * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnEnvForce * This);
        
        END_INTERFACE
    } IRnEnvForceVtbl;

    interface IRnEnvForce
    {
        CONST_VTBL struct IRnEnvForceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnEnvForce_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnEnvForce_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnEnvForce_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnEnvForce_INTERFACE_DEFINED__ */


#ifndef __IRnPhysMovePreferences_INTERFACE_DEFINED__
#define __IRnPhysMovePreferences_INTERFACE_DEFINED__

/* interface IRnPhysMovePreferences */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnPhysMovePreferences;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("d3d3e21a-7c78-43e3-b2e3-c1abec07207a")
    IRnPhysMovePreferences : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnPhysMovePreferencesVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnPhysMovePreferences * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnPhysMovePreferences * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnPhysMovePreferences * This);
        
        END_INTERFACE
    } IRnPhysMovePreferencesVtbl;

    interface IRnPhysMovePreferences
    {
        CONST_VTBL struct IRnPhysMovePreferencesVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnPhysMovePreferences_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnPhysMovePreferences_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnPhysMovePreferences_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnPhysMovePreferences_INTERFACE_DEFINED__ */


#ifndef __IRnPhysMove_INTERFACE_DEFINED__
#define __IRnPhysMove_INTERFACE_DEFINED__

/* interface IRnPhysMove */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnPhysMove;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9c4b2e52-ebf0-e78e-bd0e-313a2d6b6606")
    IRnPhysMove : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnPhysMoveVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnPhysMove * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnPhysMove * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnPhysMove * This);
        
        END_INTERFACE
    } IRnPhysMoveVtbl;

    interface IRnPhysMove
    {
        CONST_VTBL struct IRnPhysMoveVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnPhysMove_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnPhysMove_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnPhysMove_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnPhysMove_INTERFACE_DEFINED__ */


#ifndef __IRnPhysCloth_INTERFACE_DEFINED__
#define __IRnPhysCloth_INTERFACE_DEFINED__

/* interface IRnPhysCloth */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnPhysCloth;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DB76B66C-D8B2-489d-B2E1-605C13EC1A64")
    IRnPhysCloth : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UpdateData( 
            /* [in] */ RtPoint *pPoints,
            /* [in] */ RtUlong size) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ResetData( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddFixation( 
            /* [in] */ RtUlong index) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveFixation( 
            /* [in] */ RtUlong index) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UpdateFixation( 
            /* [in] */ RtUlong index) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnPhysClothVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnPhysCloth * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnPhysCloth * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnPhysCloth * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UpdateData )( 
            IRnPhysCloth * This,
            /* [in] */ RtPoint *pPoints,
            /* [in] */ RtUlong size);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ResetData )( 
            IRnPhysCloth * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddFixation )( 
            IRnPhysCloth * This,
            /* [in] */ RtUlong index);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveFixation )( 
            IRnPhysCloth * This,
            /* [in] */ RtUlong index);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UpdateFixation )( 
            IRnPhysCloth * This,
            /* [in] */ RtUlong index);
        
        END_INTERFACE
    } IRnPhysClothVtbl;

    interface IRnPhysCloth
    {
        CONST_VTBL struct IRnPhysClothVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnPhysCloth_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnPhysCloth_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnPhysCloth_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnPhysCloth_UpdateData(This,pPoints,size)	\
    (This)->lpVtbl -> UpdateData(This,pPoints,size)

#define IRnPhysCloth_ResetData(This)	\
    (This)->lpVtbl -> ResetData(This)

#define IRnPhysCloth_AddFixation(This,index)	\
    (This)->lpVtbl -> AddFixation(This,index)

#define IRnPhysCloth_RemoveFixation(This,index)	\
    (This)->lpVtbl -> RemoveFixation(This,index)

#define IRnPhysCloth_UpdateFixation(This,index)	\
    (This)->lpVtbl -> UpdateFixation(This,index)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysCloth_UpdateData_Proxy( 
    IRnPhysCloth * This,
    /* [in] */ RtPoint *pPoints,
    /* [in] */ RtUlong size);


void __RPC_STUB IRnPhysCloth_UpdateData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysCloth_ResetData_Proxy( 
    IRnPhysCloth * This);


void __RPC_STUB IRnPhysCloth_ResetData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysCloth_AddFixation_Proxy( 
    IRnPhysCloth * This,
    /* [in] */ RtUlong index);


void __RPC_STUB IRnPhysCloth_AddFixation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysCloth_RemoveFixation_Proxy( 
    IRnPhysCloth * This,
    /* [in] */ RtUlong index);


void __RPC_STUB IRnPhysCloth_RemoveFixation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPhysCloth_UpdateFixation_Proxy( 
    IRnPhysCloth * This,
    /* [in] */ RtUlong index);


void __RPC_STUB IRnPhysCloth_UpdateFixation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRnPhysCloth_INTERFACE_DEFINED__ */


#ifndef __IRnClothFixation_INTERFACE_DEFINED__
#define __IRnClothFixation_INTERFACE_DEFINED__

/* interface IRnClothFixation */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnClothFixation;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D70EFDBE-5FB5-4da1-B3B0-C83A5D7599AB")
    IRnClothFixation : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnClothFixationVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnClothFixation * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnClothFixation * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnClothFixation * This);
        
        END_INTERFACE
    } IRnClothFixationVtbl;

    interface IRnClothFixation
    {
        CONST_VTBL struct IRnClothFixationVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnClothFixation_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnClothFixation_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnClothFixation_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnClothFixation_INTERFACE_DEFINED__ */


#ifndef __IRfIkSolver_INTERFACE_DEFINED__
#define __IRfIkSolver_INTERFACE_DEFINED__

/* interface IRfIkSolver */
/* [unique][helpstring][uuid][local][object] */ 


EXTERN_C const IID IID_IRfIkSolver;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F7448489-2775-4ba5-A17F-210D1D797990")
    IRfIkSolver : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE InitFnSet( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSkeleton( 
            /* [in] */ IRsNode *spSkeleton) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UpdateIKPose( 
            /* [in] */ RtVector3f *pMoveAnchor,
            /* [in] */ RtVector3f *pMoveTarget,
            /* [in] */ RtVector3f *pRotAnchor,
            /* [in] */ RtVector3f *pRotTarget,
            /* [in] */ IRdIkLocks *spLocks,
            /* [in] */ IRsNode *spBase,
            /* [in] */ IRsIkHandle *pHandle,
            /* [in] */ RtFloat fQuality,
            /* [in] */ enum ReIkSolverFlags dwFlags) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetResidualErrors( 
            /* [in] */ RtVector3f *pMoveAnchor,
            /* [in] */ RtVector3f *pMoveTarget,
            /* [in] */ IRsNode *spBone,
            /* [in] */ IRsIkHandle *pHandle,
            /* [in] */ enum ReIkSolverFlags flags) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CalculatePose( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Reset( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfIkSolverVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfIkSolver * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfIkSolver * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfIkSolver * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *InitFnSet )( 
            IRfIkSolver * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSkeleton )( 
            IRfIkSolver * This,
            /* [in] */ IRsNode *spSkeleton);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UpdateIKPose )( 
            IRfIkSolver * This,
            /* [in] */ RtVector3f *pMoveAnchor,
            /* [in] */ RtVector3f *pMoveTarget,
            /* [in] */ RtVector3f *pRotAnchor,
            /* [in] */ RtVector3f *pRotTarget,
            /* [in] */ IRdIkLocks *spLocks,
            /* [in] */ IRsNode *spBase,
            /* [in] */ IRsIkHandle *pHandle,
            /* [in] */ RtFloat fQuality,
            /* [in] */ enum ReIkSolverFlags dwFlags);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetResidualErrors )( 
            IRfIkSolver * This,
            /* [in] */ RtVector3f *pMoveAnchor,
            /* [in] */ RtVector3f *pMoveTarget,
            /* [in] */ IRsNode *spBone,
            /* [in] */ IRsIkHandle *pHandle,
            /* [in] */ enum ReIkSolverFlags flags);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CalculatePose )( 
            IRfIkSolver * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Reset )( 
            IRfIkSolver * This);
        
        END_INTERFACE
    } IRfIkSolverVtbl;

    interface IRfIkSolver
    {
        CONST_VTBL struct IRfIkSolverVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfIkSolver_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfIkSolver_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfIkSolver_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfIkSolver_InitFnSet(This)	\
    (This)->lpVtbl -> InitFnSet(This)

#define IRfIkSolver_SetSkeleton(This,spSkeleton)	\
    (This)->lpVtbl -> SetSkeleton(This,spSkeleton)

#define IRfIkSolver_UpdateIKPose(This,pMoveAnchor,pMoveTarget,pRotAnchor,pRotTarget,spLocks,spBase,pHandle,fQuality,dwFlags)	\
    (This)->lpVtbl -> UpdateIKPose(This,pMoveAnchor,pMoveTarget,pRotAnchor,pRotTarget,spLocks,spBase,pHandle,fQuality,dwFlags)

#define IRfIkSolver_SetResidualErrors(This,pMoveAnchor,pMoveTarget,spBone,pHandle,flags)	\
    (This)->lpVtbl -> SetResidualErrors(This,pMoveAnchor,pMoveTarget,spBone,pHandle,flags)

#define IRfIkSolver_CalculatePose(This)	\
    (This)->lpVtbl -> CalculatePose(This)

#define IRfIkSolver_Reset(This)	\
    (This)->lpVtbl -> Reset(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfIkSolver_InitFnSet_Proxy( 
    IRfIkSolver * This);


void __RPC_STUB IRfIkSolver_InitFnSet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfIkSolver_SetSkeleton_Proxy( 
    IRfIkSolver * This,
    /* [in] */ IRsNode *spSkeleton);


void __RPC_STUB IRfIkSolver_SetSkeleton_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfIkSolver_UpdateIKPose_Proxy( 
    IRfIkSolver * This,
    /* [in] */ RtVector3f *pMoveAnchor,
    /* [in] */ RtVector3f *pMoveTarget,
    /* [in] */ RtVector3f *pRotAnchor,
    /* [in] */ RtVector3f *pRotTarget,
    /* [in] */ IRdIkLocks *spLocks,
    /* [in] */ IRsNode *spBase,
    /* [in] */ IRsIkHandle *pHandle,
    /* [in] */ RtFloat fQuality,
    /* [in] */ enum ReIkSolverFlags dwFlags);


void __RPC_STUB IRfIkSolver_UpdateIKPose_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfIkSolver_SetResidualErrors_Proxy( 
    IRfIkSolver * This,
    /* [in] */ RtVector3f *pMoveAnchor,
    /* [in] */ RtVector3f *pMoveTarget,
    /* [in] */ IRsNode *spBone,
    /* [in] */ IRsIkHandle *pHandle,
    /* [in] */ enum ReIkSolverFlags flags);


void __RPC_STUB IRfIkSolver_SetResidualErrors_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfIkSolver_CalculatePose_Proxy( 
    IRfIkSolver * This);


void __RPC_STUB IRfIkSolver_CalculatePose_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfIkSolver_Reset_Proxy( 
    IRfIkSolver * This);


void __RPC_STUB IRfIkSolver_Reset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfIkSolver_INTERFACE_DEFINED__ */


#ifndef __IRfPhysFileHelper_INTERFACE_DEFINED__
#define __IRfPhysFileHelper_INTERFACE_DEFINED__

/* interface IRfPhysFileHelper */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRfPhysFileHelper;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2c01ee84-180c-4a31-93ee-9e3bdde4fe62")
    IRfPhysFileHelper : public IRsObject
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SavePhysObj( 
            /* [in] */ BSTR bstrFileName,
            /* [in] */ BSTR bstrAuthor,
            /* [in] */ BSTR bstrDescr,
            /* [in] */ IRdBitmap *pThumbnail,
            /* [in] */ IRsNode *pPhysObj) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SaveObjNode( 
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [in] */ IRsNode *pPhysObj) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LoadPhysObj( 
            /* [in] */ BSTR bstrFileName) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LoadObjNode( 
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [in] */ IRsNode **ppPhysObj) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfPhysFileHelperVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfPhysFileHelper * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfPhysFileHelper * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfPhysFileHelper * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRfPhysFileHelper * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRfPhysFileHelper * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SavePhysObj )( 
            IRfPhysFileHelper * This,
            /* [in] */ BSTR bstrFileName,
            /* [in] */ BSTR bstrAuthor,
            /* [in] */ BSTR bstrDescr,
            /* [in] */ IRdBitmap *pThumbnail,
            /* [in] */ IRsNode *pPhysObj);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SaveObjNode )( 
            IRfPhysFileHelper * This,
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [in] */ IRsNode *pPhysObj);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LoadPhysObj )( 
            IRfPhysFileHelper * This,
            /* [in] */ BSTR bstrFileName);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LoadObjNode )( 
            IRfPhysFileHelper * This,
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [in] */ IRsNode **ppPhysObj);
        
        END_INTERFACE
    } IRfPhysFileHelperVtbl;

    interface IRfPhysFileHelper
    {
        CONST_VTBL struct IRfPhysFileHelperVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfPhysFileHelper_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfPhysFileHelper_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfPhysFileHelper_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfPhysFileHelper_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRfPhysFileHelper_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#define IRfPhysFileHelper_SavePhysObj(This,bstrFileName,bstrAuthor,bstrDescr,pThumbnail,pPhysObj)	\
    (This)->lpVtbl -> SavePhysObj(This,bstrFileName,bstrAuthor,bstrDescr,pThumbnail,pPhysObj)

#define IRfPhysFileHelper_SaveObjNode(This,pRsFileHandle,pPhysObj)	\
    (This)->lpVtbl -> SaveObjNode(This,pRsFileHandle,pPhysObj)

#define IRfPhysFileHelper_LoadPhysObj(This,bstrFileName)	\
    (This)->lpVtbl -> LoadPhysObj(This,bstrFileName)

#define IRfPhysFileHelper_LoadObjNode(This,pRsFileHandle,ppPhysObj)	\
    (This)->lpVtbl -> LoadObjNode(This,pRsFileHandle,ppPhysObj)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfPhysFileHelper_SavePhysObj_Proxy( 
    IRfPhysFileHelper * This,
    /* [in] */ BSTR bstrFileName,
    /* [in] */ BSTR bstrAuthor,
    /* [in] */ BSTR bstrDescr,
    /* [in] */ IRdBitmap *pThumbnail,
    /* [in] */ IRsNode *pPhysObj);


void __RPC_STUB IRfPhysFileHelper_SavePhysObj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfPhysFileHelper_SaveObjNode_Proxy( 
    IRfPhysFileHelper * This,
    /* [in] */ IRsFileHandle *pRsFileHandle,
    /* [in] */ IRsNode *pPhysObj);


void __RPC_STUB IRfPhysFileHelper_SaveObjNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfPhysFileHelper_LoadPhysObj_Proxy( 
    IRfPhysFileHelper * This,
    /* [in] */ BSTR bstrFileName);


void __RPC_STUB IRfPhysFileHelper_LoadPhysObj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfPhysFileHelper_LoadObjNode_Proxy( 
    IRfPhysFileHelper * This,
    /* [in] */ IRsFileHandle *pRsFileHandle,
    /* [in] */ IRsNode **ppPhysObj);


void __RPC_STUB IRfPhysFileHelper_LoadObjNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfPhysFileHelper_INTERFACE_DEFINED__ */


#ifndef __IRsPhysAnimMng_INTERFACE_DEFINED__
#define __IRsPhysAnimMng_INTERFACE_DEFINED__

/* interface IRsPhysAnimMng */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsPhysAnimMng;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8CF25881-234C-49a8-9DDA-25233F872B08")
    IRsPhysAnimMng : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsPhysAnimMngVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsPhysAnimMng * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsPhysAnimMng * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsPhysAnimMng * This);
        
        END_INTERFACE
    } IRsPhysAnimMngVtbl;

    interface IRsPhysAnimMng
    {
        CONST_VTBL struct IRsPhysAnimMngVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsPhysAnimMng_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsPhysAnimMng_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsPhysAnimMng_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsPhysAnimMng_INTERFACE_DEFINED__ */



#ifndef __Physics_LIBRARY_DEFINED__
#define __Physics_LIBRARY_DEFINED__

/* library Physics */
/* [helpstring][uuid][version] */ 


EXTERN_C const IID LIBID_Physics;

EXTERN_C const CLSID CLSID_CRsList;

#ifdef __cplusplus

class DECLSPEC_UUID("090BEE66-AE8A-403F-AFBC-E812058535CD")
CRsList;
#endif

EXTERN_C const CLSID CLSID_CRdPhysObjAttr;

#ifdef __cplusplus

class DECLSPEC_UUID("dcfe10a9-0178-48f9-841e-d17807f81b5d")
CRdPhysObjAttr;
#endif

EXTERN_C const CLSID CLSID_CRdPhysEnvAttr;

#ifdef __cplusplus

class DECLSPEC_UUID("acfa20a9-0178-48f9-241e-d12807f81b5d")
CRdPhysEnvAttr;
#endif

EXTERN_C const CLSID CLSID_CRdCollInfo;

#ifdef __cplusplus

class DECLSPEC_UUID("8234bbd7-3098-4aef-b0cc-a61aaec64a0b")
CRdCollInfo;
#endif

EXTERN_C const CLSID CLSID_CRdPhysImpulse;

#ifdef __cplusplus

class DECLSPEC_UUID("5b5c0a0f-931a-4384-9053-bd1ce55d1092")
CRdPhysImpulse;
#endif

EXTERN_C const CLSID CLSID_CRdPhysCloth;

#ifdef __cplusplus

class DECLSPEC_UUID("56293389-CC9B-4ad1-B71A-7700452208D9")
CRdPhysCloth;
#endif

EXTERN_C const CLSID CLSID_CRfPhysHelper;

#ifdef __cplusplus

class DECLSPEC_UUID("15F73612-F8F6-44d1-A8F8-05E660EE3E30")
CRfPhysHelper;
#endif

EXTERN_C const CLSID CLSID_CRpPhysics;

#ifdef __cplusplus

class DECLSPEC_UUID("27D27D77-411D-48CE-8D5E-BC958D27AA4D")
CRpPhysics;
#endif

EXTERN_C const CLSID CLSID_CRiPhysicsCommand;

#ifdef __cplusplus

class DECLSPEC_UUID("E8FC90E3-F28B-49A3-82A9-FD03B63A6FD5")
CRiPhysicsCommand;
#endif
#endif /* __Physics_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

unsigned long             __RPC_USER  BSTR_UserSize(     unsigned long *, unsigned long            , BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserMarshal(  unsigned long *, unsigned char *, BSTR * ); 
unsigned char * __RPC_USER  BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR * ); 
void                      __RPC_USER  BSTR_UserFree(     unsigned long *, BSTR * ); 

unsigned long             __RPC_USER  VARIANT_UserSize(     unsigned long *, unsigned long            , VARIANT * ); 
unsigned char * __RPC_USER  VARIANT_UserMarshal(  unsigned long *, unsigned char *, VARIANT * ); 
unsigned char * __RPC_USER  VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT * ); 
void                      __RPC_USER  VARIANT_UserFree(     unsigned long *, VARIANT * ); 

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


