

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


 /* File created by MIDL compiler version 6.00.0366 */
/* at Wed May 20 19:09:39 2009
 */
/* Compiler settings for ..\..\builds\Release_Win32\_Space3D.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 ___Space3D_h__
#define ___Space3D_h__

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

/* Forward Declarations */ 

#ifndef __IRsEnumClsMaterials_FWD_DEFINED__
#define __IRsEnumClsMaterials_FWD_DEFINED__
typedef interface IRsEnumClsMaterials IRsEnumClsMaterials;
#endif 	/* __IRsEnumClsMaterials_FWD_DEFINED__ */


#ifndef __IRdMaterialGeneric_FWD_DEFINED__
#define __IRdMaterialGeneric_FWD_DEFINED__
typedef interface IRdMaterialGeneric IRdMaterialGeneric;
#endif 	/* __IRdMaterialGeneric_FWD_DEFINED__ */


#ifndef __IRsMaterialGeneric_FWD_DEFINED__
#define __IRsMaterialGeneric_FWD_DEFINED__
typedef interface IRsMaterialGeneric IRsMaterialGeneric;
#endif 	/* __IRsMaterialGeneric_FWD_DEFINED__ */


#ifndef __IRsEnumMaterialItems_FWD_DEFINED__
#define __IRsEnumMaterialItems_FWD_DEFINED__
typedef interface IRsEnumMaterialItems IRsEnumMaterialItems;
#endif 	/* __IRsEnumMaterialItems_FWD_DEFINED__ */


#ifndef __IRnEulerTransform_FWD_DEFINED__
#define __IRnEulerTransform_FWD_DEFINED__
typedef interface IRnEulerTransform IRnEulerTransform;
#endif 	/* __IRnEulerTransform_FWD_DEFINED__ */


#ifndef __IRdFloatArray_FWD_DEFINED__
#define __IRdFloatArray_FWD_DEFINED__
typedef interface IRdFloatArray IRdFloatArray;
#endif 	/* __IRdFloatArray_FWD_DEFINED__ */


#ifndef __IRsStreamData_FWD_DEFINED__
#define __IRsStreamData_FWD_DEFINED__
typedef interface IRsStreamData IRsStreamData;
#endif 	/* __IRsStreamData_FWD_DEFINED__ */


#ifndef __IRsGenStream_FWD_DEFINED__
#define __IRsGenStream_FWD_DEFINED__
typedef interface IRsGenStream IRsGenStream;
#endif 	/* __IRsGenStream_FWD_DEFINED__ */


#ifndef __IRdStreamGroup_FWD_DEFINED__
#define __IRdStreamGroup_FWD_DEFINED__
typedef interface IRdStreamGroup IRdStreamGroup;
#endif 	/* __IRdStreamGroup_FWD_DEFINED__ */


#ifndef __IRdStreamGroupDisp_FWD_DEFINED__
#define __IRdStreamGroupDisp_FWD_DEFINED__
typedef interface IRdStreamGroupDisp IRdStreamGroupDisp;
#endif 	/* __IRdStreamGroupDisp_FWD_DEFINED__ */


#ifndef __IRdVertexStream_FWD_DEFINED__
#define __IRdVertexStream_FWD_DEFINED__
typedef interface IRdVertexStream IRdVertexStream;
#endif 	/* __IRdVertexStream_FWD_DEFINED__ */


#ifndef __IRdVertexNormalsStream_FWD_DEFINED__
#define __IRdVertexNormalsStream_FWD_DEFINED__
typedef interface IRdVertexNormalsStream IRdVertexNormalsStream;
#endif 	/* __IRdVertexNormalsStream_FWD_DEFINED__ */


#ifndef __IRdVertexNormalsStreamDisp_FWD_DEFINED__
#define __IRdVertexNormalsStreamDisp_FWD_DEFINED__
typedef interface IRdVertexNormalsStreamDisp IRdVertexNormalsStreamDisp;
#endif 	/* __IRdVertexNormalsStreamDisp_FWD_DEFINED__ */


#ifndef __IRdTriangleStream_FWD_DEFINED__
#define __IRdTriangleStream_FWD_DEFINED__
typedef interface IRdTriangleStream IRdTriangleStream;
#endif 	/* __IRdTriangleStream_FWD_DEFINED__ */


#ifndef __IRdMesh_FWD_DEFINED__
#define __IRdMesh_FWD_DEFINED__
typedef interface IRdMesh IRdMesh;
#endif 	/* __IRdMesh_FWD_DEFINED__ */


#ifndef __IRdMeshDisp_FWD_DEFINED__
#define __IRdMeshDisp_FWD_DEFINED__
typedef interface IRdMeshDisp IRdMeshDisp;
#endif 	/* __IRdMeshDisp_FWD_DEFINED__ */


#ifndef __IRdMatrix_FWD_DEFINED__
#define __IRdMatrix_FWD_DEFINED__
typedef interface IRdMatrix IRdMatrix;
#endif 	/* __IRdMatrix_FWD_DEFINED__ */


#ifndef __IRdMaterial_FWD_DEFINED__
#define __IRdMaterial_FWD_DEFINED__
typedef interface IRdMaterial IRdMaterial;
#endif 	/* __IRdMaterial_FWD_DEFINED__ */


#ifndef __IRsNodeList_FWD_DEFINED__
#define __IRsNodeList_FWD_DEFINED__
typedef interface IRsNodeList IRsNodeList;
#endif 	/* __IRsNodeList_FWD_DEFINED__ */


#ifndef __IRdVolumeTree_FWD_DEFINED__
#define __IRdVolumeTree_FWD_DEFINED__
typedef interface IRdVolumeTree IRdVolumeTree;
#endif 	/* __IRdVolumeTree_FWD_DEFINED__ */


#ifndef __IRsStreamSessionManager_FWD_DEFINED__
#define __IRsStreamSessionManager_FWD_DEFINED__
typedef interface IRsStreamSessionManager IRsStreamSessionManager;
#endif 	/* __IRsStreamSessionManager_FWD_DEFINED__ */


#ifndef __IRsConsistencyCheckMeshStream_FWD_DEFINED__
#define __IRsConsistencyCheckMeshStream_FWD_DEFINED__
typedef interface IRsConsistencyCheckMeshStream IRsConsistencyCheckMeshStream;
#endif 	/* __IRsConsistencyCheckMeshStream_FWD_DEFINED__ */


#ifndef __IRsCachedStream_FWD_DEFINED__
#define __IRsCachedStream_FWD_DEFINED__
typedef interface IRsCachedStream IRsCachedStream;
#endif 	/* __IRsCachedStream_FWD_DEFINED__ */


#ifndef __IRdNormalsStream_FWD_DEFINED__
#define __IRdNormalsStream_FWD_DEFINED__
typedef interface IRdNormalsStream IRdNormalsStream;
#endif 	/* __IRdNormalsStream_FWD_DEFINED__ */


#ifndef __IRdGenCustStream_FWD_DEFINED__
#define __IRdGenCustStream_FWD_DEFINED__
typedef interface IRdGenCustStream IRdGenCustStream;
#endif 	/* __IRdGenCustStream_FWD_DEFINED__ */


#ifndef __IRdMaterialIndexStream_FWD_DEFINED__
#define __IRdMaterialIndexStream_FWD_DEFINED__
typedef interface IRdMaterialIndexStream IRdMaterialIndexStream;
#endif 	/* __IRdMaterialIndexStream_FWD_DEFINED__ */


#ifndef __IRdEdgeNeighborsStream_FWD_DEFINED__
#define __IRdEdgeNeighborsStream_FWD_DEFINED__
typedef interface IRdEdgeNeighborsStream IRdEdgeNeighborsStream;
#endif 	/* __IRdEdgeNeighborsStream_FWD_DEFINED__ */


#ifndef __IRdUVTriangleStream_FWD_DEFINED__
#define __IRdUVTriangleStream_FWD_DEFINED__
typedef interface IRdUVTriangleStream IRdUVTriangleStream;
#endif 	/* __IRdUVTriangleStream_FWD_DEFINED__ */


#ifndef __IRdUVCoordStream_FWD_DEFINED__
#define __IRdUVCoordStream_FWD_DEFINED__
typedef interface IRdUVCoordStream IRdUVCoordStream;
#endif 	/* __IRdUVCoordStream_FWD_DEFINED__ */


#ifndef __IRdUVSecTriangleStream_FWD_DEFINED__
#define __IRdUVSecTriangleStream_FWD_DEFINED__
typedef interface IRdUVSecTriangleStream IRdUVSecTriangleStream;
#endif 	/* __IRdUVSecTriangleStream_FWD_DEFINED__ */


#ifndef __IRdUVSecCoordStream_FWD_DEFINED__
#define __IRdUVSecCoordStream_FWD_DEFINED__
typedef interface IRdUVSecCoordStream IRdUVSecCoordStream;
#endif 	/* __IRdUVSecCoordStream_FWD_DEFINED__ */


#ifndef __IRdFacesStream_FWD_DEFINED__
#define __IRdFacesStream_FWD_DEFINED__
typedef interface IRdFacesStream IRdFacesStream;
#endif 	/* __IRdFacesStream_FWD_DEFINED__ */


#ifndef __IRdFaceTrianglesStream_FWD_DEFINED__
#define __IRdFaceTrianglesStream_FWD_DEFINED__
typedef interface IRdFaceTrianglesStream IRdFaceTrianglesStream;
#endif 	/* __IRdFaceTrianglesStream_FWD_DEFINED__ */


#ifndef __IRdFaceUnityStream_FWD_DEFINED__
#define __IRdFaceUnityStream_FWD_DEFINED__
typedef interface IRdFaceUnityStream IRdFaceUnityStream;
#endif 	/* __IRdFaceUnityStream_FWD_DEFINED__ */


#ifndef __IRdSuperfaceUnityStream_FWD_DEFINED__
#define __IRdSuperfaceUnityStream_FWD_DEFINED__
typedef interface IRdSuperfaceUnityStream IRdSuperfaceUnityStream;
#endif 	/* __IRdSuperfaceUnityStream_FWD_DEFINED__ */


#ifndef __IRdTriangleEdgesStream_FWD_DEFINED__
#define __IRdTriangleEdgesStream_FWD_DEFINED__
typedef interface IRdTriangleEdgesStream IRdTriangleEdgesStream;
#endif 	/* __IRdTriangleEdgesStream_FWD_DEFINED__ */


#ifndef __IRdTriangleNeighboursStream_FWD_DEFINED__
#define __IRdTriangleNeighboursStream_FWD_DEFINED__
typedef interface IRdTriangleNeighboursStream IRdTriangleNeighboursStream;
#endif 	/* __IRdTriangleNeighboursStream_FWD_DEFINED__ */


#ifndef __IRdSSEdgeWeightsStream_FWD_DEFINED__
#define __IRdSSEdgeWeightsStream_FWD_DEFINED__
typedef interface IRdSSEdgeWeightsStream IRdSSEdgeWeightsStream;
#endif 	/* __IRdSSEdgeWeightsStream_FWD_DEFINED__ */


#ifndef __IRdTriangleNormalsStream_FWD_DEFINED__
#define __IRdTriangleNormalsStream_FWD_DEFINED__
typedef interface IRdTriangleNormalsStream IRdTriangleNormalsStream;
#endif 	/* __IRdTriangleNormalsStream_FWD_DEFINED__ */


#ifndef __IRdTrVertColorStream_FWD_DEFINED__
#define __IRdTrVertColorStream_FWD_DEFINED__
typedef interface IRdTrVertColorStream IRdTrVertColorStream;
#endif 	/* __IRdTrVertColorStream_FWD_DEFINED__ */


#ifndef __IRdTangentSpaceStream_FWD_DEFINED__
#define __IRdTangentSpaceStream_FWD_DEFINED__
typedef interface IRdTangentSpaceStream IRdTangentSpaceStream;
#endif 	/* __IRdTangentSpaceStream_FWD_DEFINED__ */


#ifndef __IRdTangentSpaceTriangleStream_FWD_DEFINED__
#define __IRdTangentSpaceTriangleStream_FWD_DEFINED__
typedef interface IRdTangentSpaceTriangleStream IRdTangentSpaceTriangleStream;
#endif 	/* __IRdTangentSpaceTriangleStream_FWD_DEFINED__ */


#ifndef __IRdVertexTopologyInfo_FWD_DEFINED__
#define __IRdVertexTopologyInfo_FWD_DEFINED__
typedef interface IRdVertexTopologyInfo IRdVertexTopologyInfo;
#endif 	/* __IRdVertexTopologyInfo_FWD_DEFINED__ */


#ifndef __IRdVertexTopologyData_FWD_DEFINED__
#define __IRdVertexTopologyData_FWD_DEFINED__
typedef interface IRdVertexTopologyData IRdVertexTopologyData;
#endif 	/* __IRdVertexTopologyData_FWD_DEFINED__ */


#ifndef __IRdCamera_FWD_DEFINED__
#define __IRdCamera_FWD_DEFINED__
typedef interface IRdCamera IRdCamera;
#endif 	/* __IRdCamera_FWD_DEFINED__ */


#ifndef __IRdRenderTarget_FWD_DEFINED__
#define __IRdRenderTarget_FWD_DEFINED__
typedef interface IRdRenderTarget IRdRenderTarget;
#endif 	/* __IRdRenderTarget_FWD_DEFINED__ */


#ifndef __IRdMaterialActiveInfo_FWD_DEFINED__
#define __IRdMaterialActiveInfo_FWD_DEFINED__
typedef interface IRdMaterialActiveInfo IRdMaterialActiveInfo;
#endif 	/* __IRdMaterialActiveInfo_FWD_DEFINED__ */


#ifndef __IRdMaterialChunk_FWD_DEFINED__
#define __IRdMaterialChunk_FWD_DEFINED__
typedef interface IRdMaterialChunk IRdMaterialChunk;
#endif 	/* __IRdMaterialChunk_FWD_DEFINED__ */


#ifndef __IRdMaterialChunkDisp_FWD_DEFINED__
#define __IRdMaterialChunkDisp_FWD_DEFINED__
typedef interface IRdMaterialChunkDisp IRdMaterialChunkDisp;
#endif 	/* __IRdMaterialChunkDisp_FWD_DEFINED__ */


#ifndef __IRdMaterialList_FWD_DEFINED__
#define __IRdMaterialList_FWD_DEFINED__
typedef interface IRdMaterialList IRdMaterialList;
#endif 	/* __IRdMaterialList_FWD_DEFINED__ */


#ifndef __IRdMaterialListDisp_FWD_DEFINED__
#define __IRdMaterialListDisp_FWD_DEFINED__
typedef interface IRdMaterialListDisp IRdMaterialListDisp;
#endif 	/* __IRdMaterialListDisp_FWD_DEFINED__ */


#ifndef __IRdArrayObjInfo_FWD_DEFINED__
#define __IRdArrayObjInfo_FWD_DEFINED__
typedef interface IRdArrayObjInfo IRdArrayObjInfo;
#endif 	/* __IRdArrayObjInfo_FWD_DEFINED__ */


#ifndef __IRdLayersInfo_FWD_DEFINED__
#define __IRdLayersInfo_FWD_DEFINED__
typedef interface IRdLayersInfo IRdLayersInfo;
#endif 	/* __IRdLayersInfo_FWD_DEFINED__ */


#ifndef __IRdLayersInfoDisp_FWD_DEFINED__
#define __IRdLayersInfoDisp_FWD_DEFINED__
typedef interface IRdLayersInfoDisp IRdLayersInfoDisp;
#endif 	/* __IRdLayersInfoDisp_FWD_DEFINED__ */


#ifndef __IRdSphereTree_FWD_DEFINED__
#define __IRdSphereTree_FWD_DEFINED__
typedef interface IRdSphereTree IRdSphereTree;
#endif 	/* __IRdSphereTree_FWD_DEFINED__ */


#ifndef __IRdOBBTree_FWD_DEFINED__
#define __IRdOBBTree_FWD_DEFINED__
typedef interface IRdOBBTree IRdOBBTree;
#endif 	/* __IRdOBBTree_FWD_DEFINED__ */


#ifndef __IRnSpace3D_FWD_DEFINED__
#define __IRnSpace3D_FWD_DEFINED__
typedef interface IRnSpace3D IRnSpace3D;
#endif 	/* __IRnSpace3D_FWD_DEFINED__ */


#ifndef __IRfObjectHelper_FWD_DEFINED__
#define __IRfObjectHelper_FWD_DEFINED__
typedef interface IRfObjectHelper IRfObjectHelper;
#endif 	/* __IRfObjectHelper_FWD_DEFINED__ */


#ifndef __IRfSceneHelper_FWD_DEFINED__
#define __IRfSceneHelper_FWD_DEFINED__
typedef interface IRfSceneHelper IRfSceneHelper;
#endif 	/* __IRfSceneHelper_FWD_DEFINED__ */


#ifndef __IRdGeometryIdentificationTableStream_FWD_DEFINED__
#define __IRdGeometryIdentificationTableStream_FWD_DEFINED__
typedef interface IRdGeometryIdentificationTableStream IRdGeometryIdentificationTableStream;
#endif 	/* __IRdGeometryIdentificationTableStream_FWD_DEFINED__ */


#ifndef __IRfMeshSet_FWD_DEFINED__
#define __IRfMeshSet_FWD_DEFINED__
typedef interface IRfMeshSet IRfMeshSet;
#endif 	/* __IRfMeshSet_FWD_DEFINED__ */


#ifndef __IRfMeshSetDisp_FWD_DEFINED__
#define __IRfMeshSetDisp_FWD_DEFINED__
typedef interface IRfMeshSetDisp IRfMeshSetDisp;
#endif 	/* __IRfMeshSetDisp_FWD_DEFINED__ */


#ifndef __IRdNURBSCurve_FWD_DEFINED__
#define __IRdNURBSCurve_FWD_DEFINED__
typedef interface IRdNURBSCurve IRdNURBSCurve;
#endif 	/* __IRdNURBSCurve_FWD_DEFINED__ */


#ifndef __IRdNURBSPatch_FWD_DEFINED__
#define __IRdNURBSPatch_FWD_DEFINED__
typedef interface IRdNURBSPatch IRdNURBSPatch;
#endif 	/* __IRdNURBSPatch_FWD_DEFINED__ */


#ifndef __IRfNURBSSet_FWD_DEFINED__
#define __IRfNURBSSet_FWD_DEFINED__
typedef interface IRfNURBSSet IRfNURBSSet;
#endif 	/* __IRfNURBSSet_FWD_DEFINED__ */


#ifndef __IRnMaterialListManager_FWD_DEFINED__
#define __IRnMaterialListManager_FWD_DEFINED__
typedef interface IRnMaterialListManager IRnMaterialListManager;
#endif 	/* __IRnMaterialListManager_FWD_DEFINED__ */


#ifndef __IRsMaterialFlavorManager_FWD_DEFINED__
#define __IRsMaterialFlavorManager_FWD_DEFINED__
typedef interface IRsMaterialFlavorManager IRsMaterialFlavorManager;
#endif 	/* __IRsMaterialFlavorManager_FWD_DEFINED__ */


#ifndef __IRnMaterialFlavorManager_FWD_DEFINED__
#define __IRnMaterialFlavorManager_FWD_DEFINED__
typedef interface IRnMaterialFlavorManager IRnMaterialFlavorManager;
#endif 	/* __IRnMaterialFlavorManager_FWD_DEFINED__ */


#ifndef __IRfMaterialListSet_FWD_DEFINED__
#define __IRfMaterialListSet_FWD_DEFINED__
typedef interface IRfMaterialListSet IRfMaterialListSet;
#endif 	/* __IRfMaterialListSet_FWD_DEFINED__ */


#ifndef __IRfTransformSet_FWD_DEFINED__
#define __IRfTransformSet_FWD_DEFINED__
typedef interface IRfTransformSet IRfTransformSet;
#endif 	/* __IRfTransformSet_FWD_DEFINED__ */


#ifndef __IRfVolumeTree_FWD_DEFINED__
#define __IRfVolumeTree_FWD_DEFINED__
typedef interface IRfVolumeTree IRfVolumeTree;
#endif 	/* __IRfVolumeTree_FWD_DEFINED__ */


#ifndef __IRsStreamCache_FWD_DEFINED__
#define __IRsStreamCache_FWD_DEFINED__
typedef interface IRsStreamCache IRsStreamCache;
#endif 	/* __IRsStreamCache_FWD_DEFINED__ */


#ifndef __IRdPositionSnapTool_FWD_DEFINED__
#define __IRdPositionSnapTool_FWD_DEFINED__
typedef interface IRdPositionSnapTool IRdPositionSnapTool;
#endif 	/* __IRdPositionSnapTool_FWD_DEFINED__ */


#ifndef __IRsPositionSnappingManager_FWD_DEFINED__
#define __IRsPositionSnappingManager_FWD_DEFINED__
typedef interface IRsPositionSnappingManager IRsPositionSnappingManager;
#endif 	/* __IRsPositionSnappingManager_FWD_DEFINED__ */


#ifndef __IRdRotationSnapTool_FWD_DEFINED__
#define __IRdRotationSnapTool_FWD_DEFINED__
typedef interface IRdRotationSnapTool IRdRotationSnapTool;
#endif 	/* __IRdRotationSnapTool_FWD_DEFINED__ */


#ifndef __IRsRotationSnappingManager_FWD_DEFINED__
#define __IRsRotationSnappingManager_FWD_DEFINED__
typedef interface IRsRotationSnappingManager IRsRotationSnappingManager;
#endif 	/* __IRsRotationSnappingManager_FWD_DEFINED__ */


#ifndef __IRdScaleSnapTool_FWD_DEFINED__
#define __IRdScaleSnapTool_FWD_DEFINED__
typedef interface IRdScaleSnapTool IRdScaleSnapTool;
#endif 	/* __IRdScaleSnapTool_FWD_DEFINED__ */


#ifndef __IRsScaleSnappingManager_FWD_DEFINED__
#define __IRsScaleSnappingManager_FWD_DEFINED__
typedef interface IRsScaleSnappingManager IRsScaleSnappingManager;
#endif 	/* __IRsScaleSnappingManager_FWD_DEFINED__ */


#ifndef __IRfSnapperSet_FWD_DEFINED__
#define __IRfSnapperSet_FWD_DEFINED__
typedef interface IRfSnapperSet IRfSnapperSet;
#endif 	/* __IRfSnapperSet_FWD_DEFINED__ */


#ifndef __IRfWorkPlane_FWD_DEFINED__
#define __IRfWorkPlane_FWD_DEFINED__
typedef interface IRfWorkPlane IRfWorkPlane;
#endif 	/* __IRfWorkPlane_FWD_DEFINED__ */


#ifndef __IRfSkeletonSet_FWD_DEFINED__
#define __IRfSkeletonSet_FWD_DEFINED__
typedef interface IRfSkeletonSet IRfSkeletonSet;
#endif 	/* __IRfSkeletonSet_FWD_DEFINED__ */


#ifndef __IRdMeshSelection_FWD_DEFINED__
#define __IRdMeshSelection_FWD_DEFINED__
typedef interface IRdMeshSelection IRdMeshSelection;
#endif 	/* __IRdMeshSelection_FWD_DEFINED__ */


#ifndef __IRdMeshSelectionDisp_FWD_DEFINED__
#define __IRdMeshSelectionDisp_FWD_DEFINED__
typedef interface IRdMeshSelectionDisp IRdMeshSelectionDisp;
#endif 	/* __IRdMeshSelectionDisp_FWD_DEFINED__ */


#ifndef __IRfEditableMeshSet_FWD_DEFINED__
#define __IRfEditableMeshSet_FWD_DEFINED__
typedef interface IRfEditableMeshSet IRfEditableMeshSet;
#endif 	/* __IRfEditableMeshSet_FWD_DEFINED__ */


#ifndef __IRdSkinningData_FWD_DEFINED__
#define __IRdSkinningData_FWD_DEFINED__
typedef interface IRdSkinningData IRdSkinningData;
#endif 	/* __IRdSkinningData_FWD_DEFINED__ */


#ifndef __IRdSkinningParameters_FWD_DEFINED__
#define __IRdSkinningParameters_FWD_DEFINED__
typedef interface IRdSkinningParameters IRdSkinningParameters;
#endif 	/* __IRdSkinningParameters_FWD_DEFINED__ */


#ifndef __IRdSkinningParametersDisp_FWD_DEFINED__
#define __IRdSkinningParametersDisp_FWD_DEFINED__
typedef interface IRdSkinningParametersDisp IRdSkinningParametersDisp;
#endif 	/* __IRdSkinningParametersDisp_FWD_DEFINED__ */


#ifndef __IRfSkinSet_FWD_DEFINED__
#define __IRfSkinSet_FWD_DEFINED__
typedef interface IRfSkinSet IRfSkinSet;
#endif 	/* __IRfSkinSet_FWD_DEFINED__ */


#ifndef __IRsTransformOverrideManager_FWD_DEFINED__
#define __IRsTransformOverrideManager_FWD_DEFINED__
typedef interface IRsTransformOverrideManager IRsTransformOverrideManager;
#endif 	/* __IRsTransformOverrideManager_FWD_DEFINED__ */


#ifndef __IRsTransformSession_FWD_DEFINED__
#define __IRsTransformSession_FWD_DEFINED__
typedef interface IRsTransformSession IRsTransformSession;
#endif 	/* __IRsTransformSession_FWD_DEFINED__ */


#ifndef __IRsTransformOverride_FWD_DEFINED__
#define __IRsTransformOverride_FWD_DEFINED__
typedef interface IRsTransformOverride IRsTransformOverride;
#endif 	/* __IRsTransformOverride_FWD_DEFINED__ */


#ifndef __IRsUnknownObjectTypeDetector_FWD_DEFINED__
#define __IRsUnknownObjectTypeDetector_FWD_DEFINED__
typedef interface IRsUnknownObjectTypeDetector IRsUnknownObjectTypeDetector;
#endif 	/* __IRsUnknownObjectTypeDetector_FWD_DEFINED__ */


#ifndef __IRsObjectTypeDetector_FWD_DEFINED__
#define __IRsObjectTypeDetector_FWD_DEFINED__
typedef interface IRsObjectTypeDetector IRsObjectTypeDetector;
#endif 	/* __IRsObjectTypeDetector_FWD_DEFINED__ */


#ifndef __IRsCoordinateSystemEvaluator_FWD_DEFINED__
#define __IRsCoordinateSystemEvaluator_FWD_DEFINED__
typedef interface IRsCoordinateSystemEvaluator IRsCoordinateSystemEvaluator;
#endif 	/* __IRsCoordinateSystemEvaluator_FWD_DEFINED__ */


#ifndef __IRsCoordinateSystemsEventsListener_FWD_DEFINED__
#define __IRsCoordinateSystemsEventsListener_FWD_DEFINED__
typedef interface IRsCoordinateSystemsEventsListener IRsCoordinateSystemsEventsListener;
#endif 	/* __IRsCoordinateSystemsEventsListener_FWD_DEFINED__ */


#ifndef __IRsCoordinateSystemManager_FWD_DEFINED__
#define __IRsCoordinateSystemManager_FWD_DEFINED__
typedef interface IRsCoordinateSystemManager IRsCoordinateSystemManager;
#endif 	/* __IRsCoordinateSystemManager_FWD_DEFINED__ */


#ifndef __IRfMeshRetargetSet_FWD_DEFINED__
#define __IRfMeshRetargetSet_FWD_DEFINED__
typedef interface IRfMeshRetargetSet IRfMeshRetargetSet;
#endif 	/* __IRfMeshRetargetSet_FWD_DEFINED__ */


#ifndef __IRsPanelContainer_FWD_DEFINED__
#define __IRsPanelContainer_FWD_DEFINED__
typedef interface IRsPanelContainer IRsPanelContainer;
#endif 	/* __IRsPanelContainer_FWD_DEFINED__ */


#ifndef __IRsMaterialEditor_FWD_DEFINED__
#define __IRsMaterialEditor_FWD_DEFINED__
typedef interface IRsMaterialEditor IRsMaterialEditor;
#endif 	/* __IRsMaterialEditor_FWD_DEFINED__ */


#ifndef __IRfMaterialEditor_FWD_DEFINED__
#define __IRfMaterialEditor_FWD_DEFINED__
typedef interface IRfMaterialEditor IRfMaterialEditor;
#endif 	/* __IRfMaterialEditor_FWD_DEFINED__ */


#ifndef __IRdVertexMorph_FWD_DEFINED__
#define __IRdVertexMorph_FWD_DEFINED__
typedef interface IRdVertexMorph IRdVertexMorph;
#endif 	/* __IRdVertexMorph_FWD_DEFINED__ */


#ifndef __IRfVertexMorphSet_FWD_DEFINED__
#define __IRfVertexMorphSet_FWD_DEFINED__
typedef interface IRfVertexMorphSet IRfVertexMorphSet;
#endif 	/* __IRfVertexMorphSet_FWD_DEFINED__ */


#ifndef __IRsOfflineRenderer_FWD_DEFINED__
#define __IRsOfflineRenderer_FWD_DEFINED__
typedef interface IRsOfflineRenderer IRsOfflineRenderer;
#endif 	/* __IRsOfflineRenderer_FWD_DEFINED__ */


#ifndef __IRfOfflineRendering_FWD_DEFINED__
#define __IRfOfflineRendering_FWD_DEFINED__
typedef interface IRfOfflineRendering IRfOfflineRendering;
#endif 	/* __IRfOfflineRendering_FWD_DEFINED__ */


#ifndef __IRnMaterialReference_FWD_DEFINED__
#define __IRnMaterialReference_FWD_DEFINED__
typedef interface IRnMaterialReference IRnMaterialReference;
#endif 	/* __IRnMaterialReference_FWD_DEFINED__ */


#ifndef __IRfReferencedMaterials_FWD_DEFINED__
#define __IRfReferencedMaterials_FWD_DEFINED__
typedef interface IRfReferencedMaterials IRfReferencedMaterials;
#endif 	/* __IRfReferencedMaterials_FWD_DEFINED__ */


#ifndef __IRsEditor_FWD_DEFINED__
#define __IRsEditor_FWD_DEFINED__
typedef interface IRsEditor IRsEditor;
#endif 	/* __IRsEditor_FWD_DEFINED__ */


#ifndef __IRpSpace3DPck_FWD_DEFINED__
#define __IRpSpace3DPck_FWD_DEFINED__
typedef interface IRpSpace3DPck IRpSpace3DPck;
#endif 	/* __IRpSpace3DPck_FWD_DEFINED__ */


#ifndef __IRdTripleIndexArray_FWD_DEFINED__
#define __IRdTripleIndexArray_FWD_DEFINED__
typedef interface IRdTripleIndexArray IRdTripleIndexArray;
#endif 	/* __IRdTripleIndexArray_FWD_DEFINED__ */


#ifndef __IRdTripleIndexArrayDisp_FWD_DEFINED__
#define __IRdTripleIndexArrayDisp_FWD_DEFINED__
typedef interface IRdTripleIndexArrayDisp IRdTripleIndexArrayDisp;
#endif 	/* __IRdTripleIndexArrayDisp_FWD_DEFINED__ */


#ifndef __IRdPointArray_FWD_DEFINED__
#define __IRdPointArray_FWD_DEFINED__
typedef interface IRdPointArray IRdPointArray;
#endif 	/* __IRdPointArray_FWD_DEFINED__ */


#ifndef __IRdPointArrayDisp_FWD_DEFINED__
#define __IRdPointArrayDisp_FWD_DEFINED__
typedef interface IRdPointArrayDisp IRdPointArrayDisp;
#endif 	/* __IRdPointArrayDisp_FWD_DEFINED__ */


#ifndef __IRdUvArray_FWD_DEFINED__
#define __IRdUvArray_FWD_DEFINED__
typedef interface IRdUvArray IRdUvArray;
#endif 	/* __IRdUvArray_FWD_DEFINED__ */


#ifndef __IRdUvArrayDisp_FWD_DEFINED__
#define __IRdUvArrayDisp_FWD_DEFINED__
typedef interface IRdUvArrayDisp IRdUvArrayDisp;
#endif 	/* __IRdUvArrayDisp_FWD_DEFINED__ */


#ifndef __IRdIndexArray_FWD_DEFINED__
#define __IRdIndexArray_FWD_DEFINED__
typedef interface IRdIndexArray IRdIndexArray;
#endif 	/* __IRdIndexArray_FWD_DEFINED__ */


#ifndef __IRdIndexArrayDisp_FWD_DEFINED__
#define __IRdIndexArrayDisp_FWD_DEFINED__
typedef interface IRdIndexArrayDisp IRdIndexArrayDisp;
#endif 	/* __IRdIndexArrayDisp_FWD_DEFINED__ */


#ifndef __IRsWidgetRenderingController_FWD_DEFINED__
#define __IRsWidgetRenderingController_FWD_DEFINED__
typedef interface IRsWidgetRenderingController IRsWidgetRenderingController;
#endif 	/* __IRsWidgetRenderingController_FWD_DEFINED__ */


#ifndef __IRdBaseWidget_FWD_DEFINED__
#define __IRdBaseWidget_FWD_DEFINED__
typedef interface IRdBaseWidget IRdBaseWidget;
#endif 	/* __IRdBaseWidget_FWD_DEFINED__ */


#ifndef __IRnShape_FWD_DEFINED__
#define __IRnShape_FWD_DEFINED__
typedef interface IRnShape IRnShape;
#endif 	/* __IRnShape_FWD_DEFINED__ */


#ifndef __IRnTransform_FWD_DEFINED__
#define __IRnTransform_FWD_DEFINED__
typedef interface IRnTransform IRnTransform;
#endif 	/* __IRnTransform_FWD_DEFINED__ */


#ifndef __IRnSphere_FWD_DEFINED__
#define __IRnSphere_FWD_DEFINED__
typedef interface IRnSphere IRnSphere;
#endif 	/* __IRnSphere_FWD_DEFINED__ */


#ifndef __IRnTwist_FWD_DEFINED__
#define __IRnTwist_FWD_DEFINED__
typedef interface IRnTwist IRnTwist;
#endif 	/* __IRnTwist_FWD_DEFINED__ */


#ifndef __IRnTaper_FWD_DEFINED__
#define __IRnTaper_FWD_DEFINED__
typedef interface IRnTaper IRnTaper;
#endif 	/* __IRnTaper_FWD_DEFINED__ */


#ifndef __IRcApplyDeform_FWD_DEFINED__
#define __IRcApplyDeform_FWD_DEFINED__
typedef interface IRcApplyDeform IRcApplyDeform;
#endif 	/* __IRcApplyDeform_FWD_DEFINED__ */


#ifndef __IRcAutoRunActivities_FWD_DEFINED__
#define __IRcAutoRunActivities_FWD_DEFINED__
typedef interface IRcAutoRunActivities IRcAutoRunActivities;
#endif 	/* __IRcAutoRunActivities_FWD_DEFINED__ */


#ifndef __IRnVolumeTree_FWD_DEFINED__
#define __IRnVolumeTree_FWD_DEFINED__
typedef interface IRnVolumeTree IRnVolumeTree;
#endif 	/* __IRnVolumeTree_FWD_DEFINED__ */


#ifndef __IRcConnectTreeToSpace_FWD_DEFINED__
#define __IRcConnectTreeToSpace_FWD_DEFINED__
typedef interface IRcConnectTreeToSpace IRcConnectTreeToSpace;
#endif 	/* __IRcConnectTreeToSpace_FWD_DEFINED__ */


#ifndef __IRcConvertToMatList_FWD_DEFINED__
#define __IRcConvertToMatList_FWD_DEFINED__
typedef interface IRcConvertToMatList IRcConvertToMatList;
#endif 	/* __IRcConvertToMatList_FWD_DEFINED__ */


#ifndef __IRnCube_FWD_DEFINED__
#define __IRnCube_FWD_DEFINED__
typedef interface IRnCube IRnCube;
#endif 	/* __IRnCube_FWD_DEFINED__ */


#ifndef __IRcCube_FWD_DEFINED__
#define __IRcCube_FWD_DEFINED__
typedef interface IRcCube IRcCube;
#endif 	/* __IRcCube_FWD_DEFINED__ */


#ifndef __IRcDisplayAll_FWD_DEFINED__
#define __IRcDisplayAll_FWD_DEFINED__
typedef interface IRcDisplayAll IRcDisplayAll;
#endif 	/* __IRcDisplayAll_FWD_DEFINED__ */


#ifndef __IRcEnableCollision_FWD_DEFINED__
#define __IRcEnableCollision_FWD_DEFINED__
typedef interface IRcEnableCollision IRcEnableCollision;
#endif 	/* __IRcEnableCollision_FWD_DEFINED__ */


#ifndef __IRnCollision_FWD_DEFINED__
#define __IRnCollision_FWD_DEFINED__
typedef interface IRnCollision IRnCollision;
#endif 	/* __IRnCollision_FWD_DEFINED__ */


#ifndef __IRcGetMeshVolume_FWD_DEFINED__
#define __IRcGetMeshVolume_FWD_DEFINED__
typedef interface IRcGetMeshVolume IRcGetMeshVolume;
#endif 	/* __IRcGetMeshVolume_FWD_DEFINED__ */


#ifndef __IRnShapeVolumeInfo_FWD_DEFINED__
#define __IRnShapeVolumeInfo_FWD_DEFINED__
typedef interface IRnShapeVolumeInfo IRnShapeVolumeInfo;
#endif 	/* __IRnShapeVolumeInfo_FWD_DEFINED__ */


#ifndef __IRcNewScene_FWD_DEFINED__
#define __IRcNewScene_FWD_DEFINED__
typedef interface IRcNewScene IRcNewScene;
#endif 	/* __IRcNewScene_FWD_DEFINED__ */


#ifndef __IRcNodeConList_FWD_DEFINED__
#define __IRcNodeConList_FWD_DEFINED__
typedef interface IRcNodeConList IRcNodeConList;
#endif 	/* __IRcNodeConList_FWD_DEFINED__ */


#ifndef __IRnPolygon3D_FWD_DEFINED__
#define __IRnPolygon3D_FWD_DEFINED__
typedef interface IRnPolygon3D IRnPolygon3D;
#endif 	/* __IRnPolygon3D_FWD_DEFINED__ */


#ifndef __IRcPolygon3D_FWD_DEFINED__
#define __IRcPolygon3D_FWD_DEFINED__
typedef interface IRcPolygon3D IRcPolygon3D;
#endif 	/* __IRcPolygon3D_FWD_DEFINED__ */


#ifndef __IRcRemEulerTransform_FWD_DEFINED__
#define __IRcRemEulerTransform_FWD_DEFINED__
typedef interface IRcRemEulerTransform IRcRemEulerTransform;
#endif 	/* __IRcRemEulerTransform_FWD_DEFINED__ */


#ifndef __IRcSceneFile_FWD_DEFINED__
#define __IRcSceneFile_FWD_DEFINED__
typedef interface IRcSceneFile IRcSceneFile;
#endif 	/* __IRcSceneFile_FWD_DEFINED__ */


#ifndef __IRcSphere_FWD_DEFINED__
#define __IRcSphere_FWD_DEFINED__
typedef interface IRcSphere IRcSphere;
#endif 	/* __IRcSphere_FWD_DEFINED__ */


#ifndef __IRnTorus_FWD_DEFINED__
#define __IRnTorus_FWD_DEFINED__
typedef interface IRnTorus IRnTorus;
#endif 	/* __IRnTorus_FWD_DEFINED__ */


#ifndef __IRcTorus_FWD_DEFINED__
#define __IRcTorus_FWD_DEFINED__
typedef interface IRcTorus IRcTorus;
#endif 	/* __IRcTorus_FWD_DEFINED__ */


#ifndef __IRcVolumeScan_FWD_DEFINED__
#define __IRcVolumeScan_FWD_DEFINED__
typedef interface IRcVolumeScan IRcVolumeScan;
#endif 	/* __IRcVolumeScan_FWD_DEFINED__ */


#ifndef __IRdRenderAttributes_FWD_DEFINED__
#define __IRdRenderAttributes_FWD_DEFINED__
typedef interface IRdRenderAttributes IRdRenderAttributes;
#endif 	/* __IRdRenderAttributes_FWD_DEFINED__ */


#ifndef __IRdRenderAttributesDisp_FWD_DEFINED__
#define __IRdRenderAttributesDisp_FWD_DEFINED__
typedef interface IRdRenderAttributesDisp IRdRenderAttributesDisp;
#endif 	/* __IRdRenderAttributesDisp_FWD_DEFINED__ */


#ifndef __IRcSelectByName_FWD_DEFINED__
#define __IRcSelectByName_FWD_DEFINED__
typedef interface IRcSelectByName IRcSelectByName;
#endif 	/* __IRcSelectByName_FWD_DEFINED__ */


#ifndef __IRcDeselectByName_FWD_DEFINED__
#define __IRcDeselectByName_FWD_DEFINED__
typedef interface IRcDeselectByName IRcDeselectByName;
#endif 	/* __IRcDeselectByName_FWD_DEFINED__ */


#ifndef __IRcNURBSCube_FWD_DEFINED__
#define __IRcNURBSCube_FWD_DEFINED__
typedef interface IRcNURBSCube IRcNURBSCube;
#endif 	/* __IRcNURBSCube_FWD_DEFINED__ */


#ifndef __IRcNURBSSphere_FWD_DEFINED__
#define __IRcNURBSSphere_FWD_DEFINED__
typedef interface IRcNURBSSphere IRcNURBSSphere;
#endif 	/* __IRcNURBSSphere_FWD_DEFINED__ */


#ifndef __IRcNURBSTorus_FWD_DEFINED__
#define __IRcNURBSTorus_FWD_DEFINED__
typedef interface IRcNURBSTorus IRcNURBSTorus;
#endif 	/* __IRcNURBSTorus_FWD_DEFINED__ */


#ifndef __IRcNURBSCone_FWD_DEFINED__
#define __IRcNURBSCone_FWD_DEFINED__
typedef interface IRcNURBSCone IRcNURBSCone;
#endif 	/* __IRcNURBSCone_FWD_DEFINED__ */


#ifndef __IRcMatManagerAdjust_FWD_DEFINED__
#define __IRcMatManagerAdjust_FWD_DEFINED__
typedef interface IRcMatManagerAdjust IRcMatManagerAdjust;
#endif 	/* __IRcMatManagerAdjust_FWD_DEFINED__ */


#ifndef __IRcCheckMatLists_FWD_DEFINED__
#define __IRcCheckMatLists_FWD_DEFINED__
typedef interface IRcCheckMatLists IRcCheckMatLists;
#endif 	/* __IRcCheckMatLists_FWD_DEFINED__ */


#ifndef __IRiSpaceCommand_FWD_DEFINED__
#define __IRiSpaceCommand_FWD_DEFINED__
typedef interface IRiSpaceCommand IRiSpaceCommand;
#endif 	/* __IRiSpaceCommand_FWD_DEFINED__ */


#ifndef __IRnExpandInMatrix_FWD_DEFINED__
#define __IRnExpandInMatrix_FWD_DEFINED__
typedef interface IRnExpandInMatrix IRnExpandInMatrix;
#endif 	/* __IRnExpandInMatrix_FWD_DEFINED__ */


#ifndef __IRnArrayObjInfo_FWD_DEFINED__
#define __IRnArrayObjInfo_FWD_DEFINED__
typedef interface IRnArrayObjInfo IRnArrayObjInfo;
#endif 	/* __IRnArrayObjInfo_FWD_DEFINED__ */


#ifndef __IRnFacetizeTriangles_FWD_DEFINED__
#define __IRnFacetizeTriangles_FWD_DEFINED__
typedef interface IRnFacetizeTriangles IRnFacetizeTriangles;
#endif 	/* __IRnFacetizeTriangles_FWD_DEFINED__ */


#ifndef __IRnLattice_FWD_DEFINED__
#define __IRnLattice_FWD_DEFINED__
typedef interface IRnLattice IRnLattice;
#endif 	/* __IRnLattice_FWD_DEFINED__ */


#ifndef __IRnLayersInfo_FWD_DEFINED__
#define __IRnLayersInfo_FWD_DEFINED__
typedef interface IRnLayersInfo IRnLayersInfo;
#endif 	/* __IRnLayersInfo_FWD_DEFINED__ */


#ifndef __IRnRenderAttributes_FWD_DEFINED__
#define __IRnRenderAttributes_FWD_DEFINED__
typedef interface IRnRenderAttributes IRnRenderAttributes;
#endif 	/* __IRnRenderAttributes_FWD_DEFINED__ */


#ifndef __IRnRenderAttributesLayer_FWD_DEFINED__
#define __IRnRenderAttributesLayer_FWD_DEFINED__
typedef interface IRnRenderAttributesLayer IRnRenderAttributesLayer;
#endif 	/* __IRnRenderAttributesLayer_FWD_DEFINED__ */


#ifndef __IRnRenderAttributesObject_FWD_DEFINED__
#define __IRnRenderAttributesObject_FWD_DEFINED__
typedef interface IRnRenderAttributesObject IRnRenderAttributesObject;
#endif 	/* __IRnRenderAttributesObject_FWD_DEFINED__ */


#ifndef __IRnMaterial_FWD_DEFINED__
#define __IRnMaterial_FWD_DEFINED__
typedef interface IRnMaterial IRnMaterial;
#endif 	/* __IRnMaterial_FWD_DEFINED__ */


#ifndef __IRsFileTypeRsScn_FWD_DEFINED__
#define __IRsFileTypeRsScn_FWD_DEFINED__
typedef interface IRsFileTypeRsScn IRsFileTypeRsScn;
#endif 	/* __IRsFileTypeRsScn_FWD_DEFINED__ */


#ifndef __IRsFileTypeHair_FWD_DEFINED__
#define __IRsFileTypeHair_FWD_DEFINED__
typedef interface IRsFileTypeHair IRsFileTypeHair;
#endif 	/* __IRsFileTypeHair_FWD_DEFINED__ */


#ifndef __IRsSpace3DNodeFactory_FWD_DEFINED__
#define __IRsSpace3DNodeFactory_FWD_DEFINED__
typedef interface IRsSpace3DNodeFactory IRsSpace3DNodeFactory;
#endif 	/* __IRsSpace3DNodeFactory_FWD_DEFINED__ */


#ifndef __IRsSpace3DCmdFactory_FWD_DEFINED__
#define __IRsSpace3DCmdFactory_FWD_DEFINED__
typedef interface IRsSpace3DCmdFactory IRsSpace3DCmdFactory;
#endif 	/* __IRsSpace3DCmdFactory_FWD_DEFINED__ */


#ifndef __IRsSpace3DDataObjFactory_FWD_DEFINED__
#define __IRsSpace3DDataObjFactory_FWD_DEFINED__
typedef interface IRsSpace3DDataObjFactory IRsSpace3DDataObjFactory;
#endif 	/* __IRsSpace3DDataObjFactory_FWD_DEFINED__ */


#ifndef __IRsLightDetector_FWD_DEFINED__
#define __IRsLightDetector_FWD_DEFINED__
typedef interface IRsLightDetector IRsLightDetector;
#endif 	/* __IRsLightDetector_FWD_DEFINED__ */


#ifndef __IRsMeshDetector_FWD_DEFINED__
#define __IRsMeshDetector_FWD_DEFINED__
typedef interface IRsMeshDetector IRsMeshDetector;
#endif 	/* __IRsMeshDetector_FWD_DEFINED__ */


#ifndef __IRsCameraDetector_FWD_DEFINED__
#define __IRsCameraDetector_FWD_DEFINED__
typedef interface IRsCameraDetector IRsCameraDetector;
#endif 	/* __IRsCameraDetector_FWD_DEFINED__ */


#ifndef __IRsSkeletonDetector_FWD_DEFINED__
#define __IRsSkeletonDetector_FWD_DEFINED__
typedef interface IRsSkeletonDetector IRsSkeletonDetector;
#endif 	/* __IRsSkeletonDetector_FWD_DEFINED__ */


#ifndef __IRsHairDetector_FWD_DEFINED__
#define __IRsHairDetector_FWD_DEFINED__
typedef interface IRsHairDetector IRsHairDetector;
#endif 	/* __IRsHairDetector_FWD_DEFINED__ */


#ifndef __IRsEncapsulatorDetector_FWD_DEFINED__
#define __IRsEncapsulatorDetector_FWD_DEFINED__
typedef interface IRsEncapsulatorDetector IRsEncapsulatorDetector;
#endif 	/* __IRsEncapsulatorDetector_FWD_DEFINED__ */


#ifndef __IRsWindDetector_FWD_DEFINED__
#define __IRsWindDetector_FWD_DEFINED__
typedef interface IRsWindDetector IRsWindDetector;
#endif 	/* __IRsWindDetector_FWD_DEFINED__ */


#ifndef __IRsDefaultTransformManager_FWD_DEFINED__
#define __IRsDefaultTransformManager_FWD_DEFINED__
typedef interface IRsDefaultTransformManager IRsDefaultTransformManager;
#endif 	/* __IRsDefaultTransformManager_FWD_DEFINED__ */


#ifndef __IRsCameraTransformManager_FWD_DEFINED__
#define __IRsCameraTransformManager_FWD_DEFINED__
typedef interface IRsCameraTransformManager IRsCameraTransformManager;
#endif 	/* __IRsCameraTransformManager_FWD_DEFINED__ */


#ifndef __IRsSpotlightTransformManager_FWD_DEFINED__
#define __IRsSpotlightTransformManager_FWD_DEFINED__
typedef interface IRsSpotlightTransformManager IRsSpotlightTransformManager;
#endif 	/* __IRsSpotlightTransformManager_FWD_DEFINED__ */


#ifndef __IRsIkTransformManager_FWD_DEFINED__
#define __IRsIkTransformManager_FWD_DEFINED__
typedef interface IRsIkTransformManager IRsIkTransformManager;
#endif 	/* __IRsIkTransformManager_FWD_DEFINED__ */


#ifndef __IRsDefaultBBoxCache_FWD_DEFINED__
#define __IRsDefaultBBoxCache_FWD_DEFINED__
typedef interface IRsDefaultBBoxCache IRsDefaultBBoxCache;
#endif 	/* __IRsDefaultBBoxCache_FWD_DEFINED__ */


#ifndef __IRsDefaultCoordSysCache_FWD_DEFINED__
#define __IRsDefaultCoordSysCache_FWD_DEFINED__
typedef interface IRsDefaultCoordSysCache IRsDefaultCoordSysCache;
#endif 	/* __IRsDefaultCoordSysCache_FWD_DEFINED__ */


#ifndef __IRsDefaultCoordinatesEvaluator_FWD_DEFINED__
#define __IRsDefaultCoordinatesEvaluator_FWD_DEFINED__
typedef interface IRsDefaultCoordinatesEvaluator IRsDefaultCoordinatesEvaluator;
#endif 	/* __IRsDefaultCoordinatesEvaluator_FWD_DEFINED__ */


#ifndef __IRsUVTesselation_FWD_DEFINED__
#define __IRsUVTesselation_FWD_DEFINED__
typedef interface IRsUVTesselation IRsUVTesselation;
#endif 	/* __IRsUVTesselation_FWD_DEFINED__ */


#ifndef __IRsWindowToolSet_FWD_DEFINED__
#define __IRsWindowToolSet_FWD_DEFINED__
typedef interface IRsWindowToolSet IRsWindowToolSet;
#endif 	/* __IRsWindowToolSet_FWD_DEFINED__ */


#ifndef __IRdVertexSelectionStream_FWD_DEFINED__
#define __IRdVertexSelectionStream_FWD_DEFINED__
typedef interface IRdVertexSelectionStream IRdVertexSelectionStream;
#endif 	/* __IRdVertexSelectionStream_FWD_DEFINED__ */


#ifndef __IRdEdgeSelectionStream_FWD_DEFINED__
#define __IRdEdgeSelectionStream_FWD_DEFINED__
typedef interface IRdEdgeSelectionStream IRdEdgeSelectionStream;
#endif 	/* __IRdEdgeSelectionStream_FWD_DEFINED__ */


#ifndef __IRdEdgesVisualizationStream_FWD_DEFINED__
#define __IRdEdgesVisualizationStream_FWD_DEFINED__
typedef interface IRdEdgesVisualizationStream IRdEdgesVisualizationStream;
#endif 	/* __IRdEdgesVisualizationStream_FWD_DEFINED__ */


#ifndef __IRdTriangleSelectionStream_FWD_DEFINED__
#define __IRdTriangleSelectionStream_FWD_DEFINED__
typedef interface IRdTriangleSelectionStream IRdTriangleSelectionStream;
#endif 	/* __IRdTriangleSelectionStream_FWD_DEFINED__ */


#ifndef __IRsProceduralStreamEvaluator_FWD_DEFINED__
#define __IRsProceduralStreamEvaluator_FWD_DEFINED__
typedef interface IRsProceduralStreamEvaluator IRsProceduralStreamEvaluator;
#endif 	/* __IRsProceduralStreamEvaluator_FWD_DEFINED__ */


#ifndef __IRdGeometryIdentificationStream_FWD_DEFINED__
#define __IRdGeometryIdentificationStream_FWD_DEFINED__
typedef interface IRdGeometryIdentificationStream IRdGeometryIdentificationStream;
#endif 	/* __IRdGeometryIdentificationStream_FWD_DEFINED__ */


#ifndef __IRdGeometryIdentificationTriangleStream_FWD_DEFINED__
#define __IRdGeometryIdentificationTriangleStream_FWD_DEFINED__
typedef interface IRdGeometryIdentificationTriangleStream IRdGeometryIdentificationTriangleStream;
#endif 	/* __IRdGeometryIdentificationTriangleStream_FWD_DEFINED__ */


#ifndef __IRdTriangleLocatorStream_FWD_DEFINED__
#define __IRdTriangleLocatorStream_FWD_DEFINED__
typedef interface IRdTriangleLocatorStream IRdTriangleLocatorStream;
#endif 	/* __IRdTriangleLocatorStream_FWD_DEFINED__ */


#ifndef __IRdTrianglesVisStream_FWD_DEFINED__
#define __IRdTrianglesVisStream_FWD_DEFINED__
typedef interface IRdTrianglesVisStream IRdTrianglesVisStream;
#endif 	/* __IRdTrianglesVisStream_FWD_DEFINED__ */


#ifndef __IRdTriangleTimestampStream_FWD_DEFINED__
#define __IRdTriangleTimestampStream_FWD_DEFINED__
typedef interface IRdTriangleTimestampStream IRdTriangleTimestampStream;
#endif 	/* __IRdTriangleTimestampStream_FWD_DEFINED__ */


#ifndef __IRdVertexVisualizationStream_FWD_DEFINED__
#define __IRdVertexVisualizationStream_FWD_DEFINED__
typedef interface IRdVertexVisualizationStream IRdVertexVisualizationStream;
#endif 	/* __IRdVertexVisualizationStream_FWD_DEFINED__ */


#ifndef __IRdHairDensityStream_FWD_DEFINED__
#define __IRdHairDensityStream_FWD_DEFINED__
typedef interface IRdHairDensityStream IRdHairDensityStream;
#endif 	/* __IRdHairDensityStream_FWD_DEFINED__ */


#ifndef __IRdHairLengthStream_FWD_DEFINED__
#define __IRdHairLengthStream_FWD_DEFINED__
typedef interface IRdHairLengthStream IRdHairLengthStream;
#endif 	/* __IRdHairLengthStream_FWD_DEFINED__ */


#ifndef __IRdSSVertexStream_FWD_DEFINED__
#define __IRdSSVertexStream_FWD_DEFINED__
typedef interface IRdSSVertexStream IRdSSVertexStream;
#endif 	/* __IRdSSVertexStream_FWD_DEFINED__ */


#ifndef __IRdVertexHairStream_FWD_DEFINED__
#define __IRdVertexHairStream_FWD_DEFINED__
typedef interface IRdVertexHairStream IRdVertexHairStream;
#endif 	/* __IRdVertexHairStream_FWD_DEFINED__ */


#ifndef __IRdObjNamesIndexStream_FWD_DEFINED__
#define __IRdObjNamesIndexStream_FWD_DEFINED__
typedef interface IRdObjNamesIndexStream IRdObjNamesIndexStream;
#endif 	/* __IRdObjNamesIndexStream_FWD_DEFINED__ */


#ifndef __IRdSurfaceIdIndexStream_FWD_DEFINED__
#define __IRdSurfaceIdIndexStream_FWD_DEFINED__
typedef interface IRdSurfaceIdIndexStream IRdSurfaceIdIndexStream;
#endif 	/* __IRdSurfaceIdIndexStream_FWD_DEFINED__ */


#ifndef __IRdNormalsSkinStream_FWD_DEFINED__
#define __IRdNormalsSkinStream_FWD_DEFINED__
typedef interface IRdNormalsSkinStream IRdNormalsSkinStream;
#endif 	/* __IRdNormalsSkinStream_FWD_DEFINED__ */


#ifndef __IRdObjNamesCustStream_FWD_DEFINED__
#define __IRdObjNamesCustStream_FWD_DEFINED__
typedef interface IRdObjNamesCustStream IRdObjNamesCustStream;
#endif 	/* __IRdObjNamesCustStream_FWD_DEFINED__ */


#ifndef __IRdSkinMatrixStream_FWD_DEFINED__
#define __IRdSkinMatrixStream_FWD_DEFINED__
typedef interface IRdSkinMatrixStream IRdSkinMatrixStream;
#endif 	/* __IRdSkinMatrixStream_FWD_DEFINED__ */


#ifndef __IRdCompatibilityNormalsStream_FWD_DEFINED__
#define __IRdCompatibilityNormalsStream_FWD_DEFINED__
typedef interface IRdCompatibilityNormalsStream IRdCompatibilityNormalsStream;
#endif 	/* __IRdCompatibilityNormalsStream_FWD_DEFINED__ */


#ifndef __IRdEdgeSelectionDeprecated_FWD_DEFINED__
#define __IRdEdgeSelectionDeprecated_FWD_DEFINED__
typedef interface IRdEdgeSelectionDeprecated IRdEdgeSelectionDeprecated;
#endif 	/* __IRdEdgeSelectionDeprecated_FWD_DEFINED__ */


#ifndef __IRdTriangleSelectionDeprecated_FWD_DEFINED__
#define __IRdTriangleSelectionDeprecated_FWD_DEFINED__
typedef interface IRdTriangleSelectionDeprecated IRdTriangleSelectionDeprecated;
#endif 	/* __IRdTriangleSelectionDeprecated_FWD_DEFINED__ */


#ifndef __IRdVertexSelectionDeprecated_FWD_DEFINED__
#define __IRdVertexSelectionDeprecated_FWD_DEFINED__
typedef interface IRdVertexSelectionDeprecated IRdVertexSelectionDeprecated;
#endif 	/* __IRdVertexSelectionDeprecated_FWD_DEFINED__ */


#ifndef __IRdMESettings_FWD_DEFINED__
#define __IRdMESettings_FWD_DEFINED__
typedef interface IRdMESettings IRdMESettings;
#endif 	/* __IRdMESettings_FWD_DEFINED__ */


#ifndef __IRdMESettingsDisp_FWD_DEFINED__
#define __IRdMESettingsDisp_FWD_DEFINED__
typedef interface IRdMESettingsDisp IRdMESettingsDisp;
#endif 	/* __IRdMESettingsDisp_FWD_DEFINED__ */


#ifndef __IRsEditableMesh_FWD_DEFINED__
#define __IRsEditableMesh_FWD_DEFINED__
typedef interface IRsEditableMesh IRsEditableMesh;
#endif 	/* __IRsEditableMesh_FWD_DEFINED__ */


#ifndef __IRsUnknownMeshModifier_FWD_DEFINED__
#define __IRsUnknownMeshModifier_FWD_DEFINED__
typedef interface IRsUnknownMeshModifier IRsUnknownMeshModifier;
#endif 	/* __IRsUnknownMeshModifier_FWD_DEFINED__ */


#ifndef __IRnEditableShape_FWD_DEFINED__
#define __IRnEditableShape_FWD_DEFINED__
typedef interface IRnEditableShape IRnEditableShape;
#endif 	/* __IRnEditableShape_FWD_DEFINED__ */


#ifndef __IRnMeshEditRenderAttr_FWD_DEFINED__
#define __IRnMeshEditRenderAttr_FWD_DEFINED__
typedef interface IRnMeshEditRenderAttr IRnMeshEditRenderAttr;
#endif 	/* __IRnMeshEditRenderAttr_FWD_DEFINED__ */


#ifndef __IRnCamera_FWD_DEFINED__
#define __IRnCamera_FWD_DEFINED__
typedef interface IRnCamera IRnCamera;
#endif 	/* __IRnCamera_FWD_DEFINED__ */


#ifndef __IRnCone_FWD_DEFINED__
#define __IRnCone_FWD_DEFINED__
typedef interface IRnCone IRnCone;
#endif 	/* __IRnCone_FWD_DEFINED__ */


#ifndef __IRnCone2_FWD_DEFINED__
#define __IRnCone2_FWD_DEFINED__
typedef interface IRnCone2 IRnCone2;
#endif 	/* __IRnCone2_FWD_DEFINED__ */


#ifndef __IRnCube2_FWD_DEFINED__
#define __IRnCube2_FWD_DEFINED__
typedef interface IRnCube2 IRnCube2;
#endif 	/* __IRnCube2_FWD_DEFINED__ */


#ifndef __IRnCube3_FWD_DEFINED__
#define __IRnCube3_FWD_DEFINED__
typedef interface IRnCube3 IRnCube3;
#endif 	/* __IRnCube3_FWD_DEFINED__ */


#ifndef __IRnCylinder_FWD_DEFINED__
#define __IRnCylinder_FWD_DEFINED__
typedef interface IRnCylinder IRnCylinder;
#endif 	/* __IRnCylinder_FWD_DEFINED__ */


#ifndef __IRnCylinder2_FWD_DEFINED__
#define __IRnCylinder2_FWD_DEFINED__
typedef interface IRnCylinder2 IRnCylinder2;
#endif 	/* __IRnCylinder2_FWD_DEFINED__ */


#ifndef __IRnCylinder3_FWD_DEFINED__
#define __IRnCylinder3_FWD_DEFINED__
typedef interface IRnCylinder3 IRnCylinder3;
#endif 	/* __IRnCylinder3_FWD_DEFINED__ */


#ifndef __IRnPlane_FWD_DEFINED__
#define __IRnPlane_FWD_DEFINED__
typedef interface IRnPlane IRnPlane;
#endif 	/* __IRnPlane_FWD_DEFINED__ */


#ifndef __IRnPlane2_FWD_DEFINED__
#define __IRnPlane2_FWD_DEFINED__
typedef interface IRnPlane2 IRnPlane2;
#endif 	/* __IRnPlane2_FWD_DEFINED__ */


#ifndef __IRnPolygon_FWD_DEFINED__
#define __IRnPolygon_FWD_DEFINED__
typedef interface IRnPolygon IRnPolygon;
#endif 	/* __IRnPolygon_FWD_DEFINED__ */


#ifndef __IRnRect_FWD_DEFINED__
#define __IRnRect_FWD_DEFINED__
typedef interface IRnRect IRnRect;
#endif 	/* __IRnRect_FWD_DEFINED__ */


#ifndef __IRnSphere2_FWD_DEFINED__
#define __IRnSphere2_FWD_DEFINED__
typedef interface IRnSphere2 IRnSphere2;
#endif 	/* __IRnSphere2_FWD_DEFINED__ */


#ifndef __IRnSphere3_FWD_DEFINED__
#define __IRnSphere3_FWD_DEFINED__
typedef interface IRnSphere3 IRnSphere3;
#endif 	/* __IRnSphere3_FWD_DEFINED__ */


#ifndef __IRnText3d_FWD_DEFINED__
#define __IRnText3d_FWD_DEFINED__
typedef interface IRnText3d IRnText3d;
#endif 	/* __IRnText3d_FWD_DEFINED__ */


#ifndef __IRnTorus2_FWD_DEFINED__
#define __IRnTorus2_FWD_DEFINED__
typedef interface IRnTorus2 IRnTorus2;
#endif 	/* __IRnTorus2_FWD_DEFINED__ */


#ifndef __IRnTorus3_FWD_DEFINED__
#define __IRnTorus3_FWD_DEFINED__
typedef interface IRnTorus3 IRnTorus3;
#endif 	/* __IRnTorus3_FWD_DEFINED__ */


#ifndef __IRnTube_FWD_DEFINED__
#define __IRnTube_FWD_DEFINED__
typedef interface IRnTube IRnTube;
#endif 	/* __IRnTube_FWD_DEFINED__ */


#ifndef __IRnTube2_FWD_DEFINED__
#define __IRnTube2_FWD_DEFINED__
typedef interface IRnTube2 IRnTube2;
#endif 	/* __IRnTube2_FWD_DEFINED__ */


#ifndef __IRnTube3_FWD_DEFINED__
#define __IRnTube3_FWD_DEFINED__
typedef interface IRnTube3 IRnTube3;
#endif 	/* __IRnTube3_FWD_DEFINED__ */


#ifndef __IRnNURBSCone_FWD_DEFINED__
#define __IRnNURBSCone_FWD_DEFINED__
typedef interface IRnNURBSCone IRnNURBSCone;
#endif 	/* __IRnNURBSCone_FWD_DEFINED__ */


#ifndef __IRnNURBSToMesh_FWD_DEFINED__
#define __IRnNURBSToMesh_FWD_DEFINED__
typedef interface IRnNURBSToMesh IRnNURBSToMesh;
#endif 	/* __IRnNURBSToMesh_FWD_DEFINED__ */


#ifndef __IRnNURBSBox_FWD_DEFINED__
#define __IRnNURBSBox_FWD_DEFINED__
typedef interface IRnNURBSBox IRnNURBSBox;
#endif 	/* __IRnNURBSBox_FWD_DEFINED__ */


#ifndef __IRnNURBSSphere_FWD_DEFINED__
#define __IRnNURBSSphere_FWD_DEFINED__
typedef interface IRnNURBSSphere IRnNURBSSphere;
#endif 	/* __IRnNURBSSphere_FWD_DEFINED__ */


#ifndef __IRnNURBSTorus_FWD_DEFINED__
#define __IRnNURBSTorus_FWD_DEFINED__
typedef interface IRnNURBSTorus IRnNURBSTorus;
#endif 	/* __IRnNURBSTorus_FWD_DEFINED__ */


#ifndef __IRnNURBSShape_FWD_DEFINED__
#define __IRnNURBSShape_FWD_DEFINED__
typedef interface IRnNURBSShape IRnNURBSShape;
#endif 	/* __IRnNURBSShape_FWD_DEFINED__ */


#ifndef __IRdPrimitiveFactoryState_FWD_DEFINED__
#define __IRdPrimitiveFactoryState_FWD_DEFINED__
typedef interface IRdPrimitiveFactoryState IRdPrimitiveFactoryState;
#endif 	/* __IRdPrimitiveFactoryState_FWD_DEFINED__ */


#ifndef __IRsPrimitiveManager_FWD_DEFINED__
#define __IRsPrimitiveManager_FWD_DEFINED__
typedef interface IRsPrimitiveManager IRsPrimitiveManager;
#endif 	/* __IRsPrimitiveManager_FWD_DEFINED__ */


#ifndef __IRsPrimitiveFactory_FWD_DEFINED__
#define __IRsPrimitiveFactory_FWD_DEFINED__
typedef interface IRsPrimitiveFactory IRsPrimitiveFactory;
#endif 	/* __IRsPrimitiveFactory_FWD_DEFINED__ */


#ifndef __IRsPrimitivePositionTool_FWD_DEFINED__
#define __IRsPrimitivePositionTool_FWD_DEFINED__
typedef interface IRsPrimitivePositionTool IRsPrimitivePositionTool;
#endif 	/* __IRsPrimitivePositionTool_FWD_DEFINED__ */


#ifndef __IRsUnknownCurveTesselator_FWD_DEFINED__
#define __IRsUnknownCurveTesselator_FWD_DEFINED__
typedef interface IRsUnknownCurveTesselator IRsUnknownCurveTesselator;
#endif 	/* __IRsUnknownCurveTesselator_FWD_DEFINED__ */


#ifndef __IRdCurve_FWD_DEFINED__
#define __IRdCurve_FWD_DEFINED__
typedef interface IRdCurve IRdCurve;
#endif 	/* __IRdCurve_FWD_DEFINED__ */


#ifndef __IRiOfflineRender_FWD_DEFINED__
#define __IRiOfflineRender_FWD_DEFINED__
typedef interface IRiOfflineRender IRiOfflineRender;
#endif 	/* __IRiOfflineRender_FWD_DEFINED__ */


#ifndef __IRcTransformIkUndoRedo_FWD_DEFINED__
#define __IRcTransformIkUndoRedo_FWD_DEFINED__
typedef interface IRcTransformIkUndoRedo IRcTransformIkUndoRedo;
#endif 	/* __IRcTransformIkUndoRedo_FWD_DEFINED__ */


#ifndef __IRcTransformUndoRedo_FWD_DEFINED__
#define __IRcTransformUndoRedo_FWD_DEFINED__
typedef interface IRcTransformUndoRedo IRcTransformUndoRedo;
#endif 	/* __IRcTransformUndoRedo_FWD_DEFINED__ */


#ifndef __IRcSelectionUndoRedo_FWD_DEFINED__
#define __IRcSelectionUndoRedo_FWD_DEFINED__
typedef interface IRcSelectionUndoRedo IRcSelectionUndoRedo;
#endif 	/* __IRcSelectionUndoRedo_FWD_DEFINED__ */


#ifndef __IRcSelectMaster_FWD_DEFINED__
#define __IRcSelectMaster_FWD_DEFINED__
typedef interface IRcSelectMaster IRcSelectMaster;
#endif 	/* __IRcSelectMaster_FWD_DEFINED__ */


#ifndef __IRcCameraTransformUndoRedo_FWD_DEFINED__
#define __IRcCameraTransformUndoRedo_FWD_DEFINED__
typedef interface IRcCameraTransformUndoRedo IRcCameraTransformUndoRedo;
#endif 	/* __IRcCameraTransformUndoRedo_FWD_DEFINED__ */


#ifndef __IRcSpotlightTransformUndoRedo_FWD_DEFINED__
#define __IRcSpotlightTransformUndoRedo_FWD_DEFINED__
typedef interface IRcSpotlightTransformUndoRedo IRcSpotlightTransformUndoRedo;
#endif 	/* __IRcSpotlightTransformUndoRedo_FWD_DEFINED__ */


#ifndef __IRcRecorderUndoRedo_FWD_DEFINED__
#define __IRcRecorderUndoRedo_FWD_DEFINED__
typedef interface IRcRecorderUndoRedo IRcRecorderUndoRedo;
#endif 	/* __IRcRecorderUndoRedo_FWD_DEFINED__ */


#ifndef __IRcOpenOfflinePreferences_FWD_DEFINED__
#define __IRcOpenOfflinePreferences_FWD_DEFINED__
typedef interface IRcOpenOfflinePreferences IRcOpenOfflinePreferences;
#endif 	/* __IRcOpenOfflinePreferences_FWD_DEFINED__ */


#ifndef __IRdGridSnapping_FWD_DEFINED__
#define __IRdGridSnapping_FWD_DEFINED__
typedef interface IRdGridSnapping IRdGridSnapping;
#endif 	/* __IRdGridSnapping_FWD_DEFINED__ */


#ifndef __IRdAxisLock_FWD_DEFINED__
#define __IRdAxisLock_FWD_DEFINED__
typedef interface IRdAxisLock IRdAxisLock;
#endif 	/* __IRdAxisLock_FWD_DEFINED__ */


#ifndef __IRdBone_FWD_DEFINED__
#define __IRdBone_FWD_DEFINED__
typedef interface IRdBone IRdBone;
#endif 	/* __IRdBone_FWD_DEFINED__ */


#ifndef __IRdBoneDisp_FWD_DEFINED__
#define __IRdBoneDisp_FWD_DEFINED__
typedef interface IRdBoneDisp IRdBoneDisp;
#endif 	/* __IRdBoneDisp_FWD_DEFINED__ */


#ifndef __IRdBoneTransformParameters_FWD_DEFINED__
#define __IRdBoneTransformParameters_FWD_DEFINED__
typedef interface IRdBoneTransformParameters IRdBoneTransformParameters;
#endif 	/* __IRdBoneTransformParameters_FWD_DEFINED__ */


#ifndef __IRdSkeleton_FWD_DEFINED__
#define __IRdSkeleton_FWD_DEFINED__
typedef interface IRdSkeleton IRdSkeleton;
#endif 	/* __IRdSkeleton_FWD_DEFINED__ */


#ifndef __IRdSkeletonDisp_FWD_DEFINED__
#define __IRdSkeletonDisp_FWD_DEFINED__
typedef interface IRdSkeletonDisp IRdSkeletonDisp;
#endif 	/* __IRdSkeletonDisp_FWD_DEFINED__ */


#ifndef __IRdJoint_FWD_DEFINED__
#define __IRdJoint_FWD_DEFINED__
typedef interface IRdJoint IRdJoint;
#endif 	/* __IRdJoint_FWD_DEFINED__ */


#ifndef __IRdSoftTissuesData_FWD_DEFINED__
#define __IRdSoftTissuesData_FWD_DEFINED__
typedef interface IRdSoftTissuesData IRdSoftTissuesData;
#endif 	/* __IRdSoftTissuesData_FWD_DEFINED__ */


#ifndef __IRdSoftTissue_FWD_DEFINED__
#define __IRdSoftTissue_FWD_DEFINED__
typedef interface IRdSoftTissue IRdSoftTissue;
#endif 	/* __IRdSoftTissue_FWD_DEFINED__ */


#ifndef __IRdJointSkinningFactors_FWD_DEFINED__
#define __IRdJointSkinningFactors_FWD_DEFINED__
typedef interface IRdJointSkinningFactors IRdJointSkinningFactors;
#endif 	/* __IRdJointSkinningFactors_FWD_DEFINED__ */


#ifndef __IRdIkLock_FWD_DEFINED__
#define __IRdIkLock_FWD_DEFINED__
typedef interface IRdIkLock IRdIkLock;
#endif 	/* __IRdIkLock_FWD_DEFINED__ */


#ifndef __IRdIkLocks_FWD_DEFINED__
#define __IRdIkLocks_FWD_DEFINED__
typedef interface IRdIkLocks IRdIkLocks;
#endif 	/* __IRdIkLocks_FWD_DEFINED__ */


#ifndef __IRsHairParameterProvider_FWD_DEFINED__
#define __IRsHairParameterProvider_FWD_DEFINED__
typedef interface IRsHairParameterProvider IRsHairParameterProvider;
#endif 	/* __IRsHairParameterProvider_FWD_DEFINED__ */


#ifndef __IRsHairStrandGeneratorAlg_FWD_DEFINED__
#define __IRsHairStrandGeneratorAlg_FWD_DEFINED__
typedef interface IRsHairStrandGeneratorAlg IRsHairStrandGeneratorAlg;
#endif 	/* __IRsHairStrandGeneratorAlg_FWD_DEFINED__ */


#ifndef __IRdHair_FWD_DEFINED__
#define __IRdHair_FWD_DEFINED__
typedef interface IRdHair IRdHair;
#endif 	/* __IRdHair_FWD_DEFINED__ */


#ifndef __IRdDefaultPose_FWD_DEFINED__
#define __IRdDefaultPose_FWD_DEFINED__
typedef interface IRdDefaultPose IRdDefaultPose;
#endif 	/* __IRdDefaultPose_FWD_DEFINED__ */


#ifndef __IRdSkeletonProperties_FWD_DEFINED__
#define __IRdSkeletonProperties_FWD_DEFINED__
typedef interface IRdSkeletonProperties IRdSkeletonProperties;
#endif 	/* __IRdSkeletonProperties_FWD_DEFINED__ */


#ifndef __IRdVertexSkinStream_FWD_DEFINED__
#define __IRdVertexSkinStream_FWD_DEFINED__
typedef interface IRdVertexSkinStream IRdVertexSkinStream;
#endif 	/* __IRdVertexSkinStream_FWD_DEFINED__ */


#ifndef __IRdSkinWeightDirect_FWD_DEFINED__
#define __IRdSkinWeightDirect_FWD_DEFINED__
typedef interface IRdSkinWeightDirect IRdSkinWeightDirect;
#endif 	/* __IRdSkinWeightDirect_FWD_DEFINED__ */


#ifndef __IRdSkinWeightIndexed_FWD_DEFINED__
#define __IRdSkinWeightIndexed_FWD_DEFINED__
typedef interface IRdSkinWeightIndexed IRdSkinWeightIndexed;
#endif 	/* __IRdSkinWeightIndexed_FWD_DEFINED__ */


#ifndef __IRdProceduralSkinVertexStream_FWD_DEFINED__
#define __IRdProceduralSkinVertexStream_FWD_DEFINED__
typedef interface IRdProceduralSkinVertexStream IRdProceduralSkinVertexStream;
#endif 	/* __IRdProceduralSkinVertexStream_FWD_DEFINED__ */


#ifndef __IRdVertexSkinVerticesCache_FWD_DEFINED__
#define __IRdVertexSkinVerticesCache_FWD_DEFINED__
typedef interface IRdVertexSkinVerticesCache IRdVertexSkinVerticesCache;
#endif 	/* __IRdVertexSkinVerticesCache_FWD_DEFINED__ */


#ifndef __IRdProceduralSkinNormalsStream_FWD_DEFINED__
#define __IRdProceduralSkinNormalsStream_FWD_DEFINED__
typedef interface IRdProceduralSkinNormalsStream IRdProceduralSkinNormalsStream;
#endif 	/* __IRdProceduralSkinNormalsStream_FWD_DEFINED__ */


#ifndef __IRdVertexSkinNormalsCache_FWD_DEFINED__
#define __IRdVertexSkinNormalsCache_FWD_DEFINED__
typedef interface IRdVertexSkinNormalsCache IRdVertexSkinNormalsCache;
#endif 	/* __IRdVertexSkinNormalsCache_FWD_DEFINED__ */


#ifndef __IRdVertexMorphStream_FWD_DEFINED__
#define __IRdVertexMorphStream_FWD_DEFINED__
typedef interface IRdVertexMorphStream IRdVertexMorphStream;
#endif 	/* __IRdVertexMorphStream_FWD_DEFINED__ */


#ifndef __IRdReferencedMaterialInfo_FWD_DEFINED__
#define __IRdReferencedMaterialInfo_FWD_DEFINED__
typedef interface IRdReferencedMaterialInfo IRdReferencedMaterialInfo;
#endif 	/* __IRdReferencedMaterialInfo_FWD_DEFINED__ */


#ifndef __IRnCylindricalUV_FWD_DEFINED__
#define __IRnCylindricalUV_FWD_DEFINED__
typedef interface IRnCylindricalUV IRnCylindricalUV;
#endif 	/* __IRnCylindricalUV_FWD_DEFINED__ */


#ifndef __IRnPlanarUV_FWD_DEFINED__
#define __IRnPlanarUV_FWD_DEFINED__
typedef interface IRnPlanarUV IRnPlanarUV;
#endif 	/* __IRnPlanarUV_FWD_DEFINED__ */


#ifndef __IRnPivot_FWD_DEFINED__
#define __IRnPivot_FWD_DEFINED__
typedef interface IRnPivot IRnPivot;
#endif 	/* __IRnPivot_FWD_DEFINED__ */


#ifndef __IRnGridSnapping_FWD_DEFINED__
#define __IRnGridSnapping_FWD_DEFINED__
typedef interface IRnGridSnapping IRnGridSnapping;
#endif 	/* __IRnGridSnapping_FWD_DEFINED__ */


#ifndef __IRnAxisLock_FWD_DEFINED__
#define __IRnAxisLock_FWD_DEFINED__
typedef interface IRnAxisLock IRnAxisLock;
#endif 	/* __IRnAxisLock_FWD_DEFINED__ */


#ifndef __IRnBoneTransform_FWD_DEFINED__
#define __IRnBoneTransform_FWD_DEFINED__
typedef interface IRnBoneTransform IRnBoneTransform;
#endif 	/* __IRnBoneTransform_FWD_DEFINED__ */


#ifndef __IRdIkStyle_FWD_DEFINED__
#define __IRdIkStyle_FWD_DEFINED__
typedef interface IRdIkStyle IRdIkStyle;
#endif 	/* __IRdIkStyle_FWD_DEFINED__ */


#ifndef __IRnHair_FWD_DEFINED__
#define __IRnHair_FWD_DEFINED__
typedef interface IRnHair IRnHair;
#endif 	/* __IRnHair_FWD_DEFINED__ */


#ifndef __IRnVertexMorphs_FWD_DEFINED__
#define __IRnVertexMorphs_FWD_DEFINED__
typedef interface IRnVertexMorphs IRnVertexMorphs;
#endif 	/* __IRnVertexMorphs_FWD_DEFINED__ */


#ifndef __IRsMeshEditorUiAgent_FWD_DEFINED__
#define __IRsMeshEditorUiAgent_FWD_DEFINED__
typedef interface IRsMeshEditorUiAgent IRsMeshEditorUiAgent;
#endif 	/* __IRsMeshEditorUiAgent_FWD_DEFINED__ */


#ifndef __IRsMeshModifierNotify_FWD_DEFINED__
#define __IRsMeshModifierNotify_FWD_DEFINED__
typedef interface IRsMeshModifierNotify IRsMeshModifierNotify;
#endif 	/* __IRsMeshModifierNotify_FWD_DEFINED__ */


#ifndef __IRsVertexMorpher_FWD_DEFINED__
#define __IRsVertexMorpher_FWD_DEFINED__
typedef interface IRsVertexMorpher IRsVertexMorpher;
#endif 	/* __IRsVertexMorpher_FWD_DEFINED__ */


#ifndef __IRsGeometryIdentificationNotify_FWD_DEFINED__
#define __IRsGeometryIdentificationNotify_FWD_DEFINED__
typedef interface IRsGeometryIdentificationNotify IRsGeometryIdentificationNotify;
#endif 	/* __IRsGeometryIdentificationNotify_FWD_DEFINED__ */


#ifndef __IRnVertexMorpher_FWD_DEFINED__
#define __IRnVertexMorpher_FWD_DEFINED__
typedef interface IRnVertexMorpher IRnVertexMorpher;
#endif 	/* __IRnVertexMorpher_FWD_DEFINED__ */


#ifndef __IRnMaterialEditorHandler_FWD_DEFINED__
#define __IRnMaterialEditorHandler_FWD_DEFINED__
typedef interface IRnMaterialEditorHandler IRnMaterialEditorHandler;
#endif 	/* __IRnMaterialEditorHandler_FWD_DEFINED__ */


#ifndef __IRnOfflineRenderers_FWD_DEFINED__
#define __IRnOfflineRenderers_FWD_DEFINED__
typedef interface IRnOfflineRenderers IRnOfflineRenderers;
#endif 	/* __IRnOfflineRenderers_FWD_DEFINED__ */


#ifndef __IRnMatListInspect_FWD_DEFINED__
#define __IRnMatListInspect_FWD_DEFINED__
typedef interface IRnMatListInspect IRnMatListInspect;
#endif 	/* __IRnMatListInspect_FWD_DEFINED__ */


#ifndef __IRnExpandOutMatrix_FWD_DEFINED__
#define __IRnExpandOutMatrix_FWD_DEFINED__
typedef interface IRnExpandOutMatrix IRnExpandOutMatrix;
#endif 	/* __IRnExpandOutMatrix_FWD_DEFINED__ */


#ifndef __IRsDialogSettingsStore_FWD_DEFINED__
#define __IRsDialogSettingsStore_FWD_DEFINED__
typedef interface IRsDialogSettingsStore IRsDialogSettingsStore;
#endif 	/* __IRsDialogSettingsStore_FWD_DEFINED__ */


#ifndef __IRnDialogSettings_FWD_DEFINED__
#define __IRnDialogSettings_FWD_DEFINED__
typedef interface IRnDialogSettings IRnDialogSettings;
#endif 	/* __IRnDialogSettings_FWD_DEFINED__ */


#ifndef __IRnReferencedMaterials_FWD_DEFINED__
#define __IRnReferencedMaterials_FWD_DEFINED__
typedef interface IRnReferencedMaterials IRnReferencedMaterials;
#endif 	/* __IRnReferencedMaterials_FWD_DEFINED__ */


#ifndef __IRnHairPreferences_FWD_DEFINED__
#define __IRnHairPreferences_FWD_DEFINED__
typedef interface IRnHairPreferences IRnHairPreferences;
#endif 	/* __IRnHairPreferences_FWD_DEFINED__ */


#ifndef __IRnHairWigMapper_FWD_DEFINED__
#define __IRnHairWigMapper_FWD_DEFINED__
typedef interface IRnHairWigMapper IRnHairWigMapper;
#endif 	/* __IRnHairWigMapper_FWD_DEFINED__ */


#ifndef __IRdPositionSnapEventNotify_FWD_DEFINED__
#define __IRdPositionSnapEventNotify_FWD_DEFINED__
typedef interface IRdPositionSnapEventNotify IRdPositionSnapEventNotify;
#endif 	/* __IRdPositionSnapEventNotify_FWD_DEFINED__ */


#ifndef __IRsBoneDependentObject_FWD_DEFINED__
#define __IRsBoneDependentObject_FWD_DEFINED__
typedef interface IRsBoneDependentObject IRsBoneDependentObject;
#endif 	/* __IRsBoneDependentObject_FWD_DEFINED__ */


#ifndef __IRsCustomSkeletonNode_FWD_DEFINED__
#define __IRsCustomSkeletonNode_FWD_DEFINED__
typedef interface IRsCustomSkeletonNode IRsCustomSkeletonNode;
#endif 	/* __IRsCustomSkeletonNode_FWD_DEFINED__ */


#ifndef __IRsIkHandle_FWD_DEFINED__
#define __IRsIkHandle_FWD_DEFINED__
typedef interface IRsIkHandle IRsIkHandle;
#endif 	/* __IRsIkHandle_FWD_DEFINED__ */


#ifndef __IRsUnknownBone_FWD_DEFINED__
#define __IRsUnknownBone_FWD_DEFINED__
typedef interface IRsUnknownBone IRsUnknownBone;
#endif 	/* __IRsUnknownBone_FWD_DEFINED__ */


#ifndef __IRsUnknownIkLock_FWD_DEFINED__
#define __IRsUnknownIkLock_FWD_DEFINED__
typedef interface IRsUnknownIkLock IRsUnknownIkLock;
#endif 	/* __IRsUnknownIkLock_FWD_DEFINED__ */


#ifndef __IRsUnknownJoint_FWD_DEFINED__
#define __IRsUnknownJoint_FWD_DEFINED__
typedef interface IRsUnknownJoint IRsUnknownJoint;
#endif 	/* __IRsUnknownJoint_FWD_DEFINED__ */


#ifndef __IRsSkeletonEventsListener_FWD_DEFINED__
#define __IRsSkeletonEventsListener_FWD_DEFINED__
typedef interface IRsSkeletonEventsListener IRsSkeletonEventsListener;
#endif 	/* __IRsSkeletonEventsListener_FWD_DEFINED__ */


#ifndef __IRsCustomPickHandling_FWD_DEFINED__
#define __IRsCustomPickHandling_FWD_DEFINED__
typedef interface IRsCustomPickHandling IRsCustomPickHandling;
#endif 	/* __IRsCustomPickHandling_FWD_DEFINED__ */


#ifndef __IRcME2UpdateFromGeneric_FWD_DEFINED__
#define __IRcME2UpdateFromGeneric_FWD_DEFINED__
typedef interface IRcME2UpdateFromGeneric IRcME2UpdateFromGeneric;
#endif 	/* __IRcME2UpdateFromGeneric_FWD_DEFINED__ */


#ifndef __IRcOpenMultiplePanels_FWD_DEFINED__
#define __IRcOpenMultiplePanels_FWD_DEFINED__
typedef interface IRcOpenMultiplePanels IRcOpenMultiplePanels;
#endif 	/* __IRcOpenMultiplePanels_FWD_DEFINED__ */


#ifndef __IRcChangeActiveVertexMorph_FWD_DEFINED__
#define __IRcChangeActiveVertexMorph_FWD_DEFINED__
typedef interface IRcChangeActiveVertexMorph IRcChangeActiveVertexMorph;
#endif 	/* __IRcChangeActiveVertexMorph_FWD_DEFINED__ */


#ifndef __CRdStreamGroup_FWD_DEFINED__
#define __CRdStreamGroup_FWD_DEFINED__

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

#endif 	/* __CRdStreamGroup_FWD_DEFINED__ */


#ifndef __CRdMesh_FWD_DEFINED__
#define __CRdMesh_FWD_DEFINED__

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

#endif 	/* __CRdMesh_FWD_DEFINED__ */


#ifndef __CRdMaterial_FWD_DEFINED__
#define __CRdMaterial_FWD_DEFINED__

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

#endif 	/* __CRdMaterial_FWD_DEFINED__ */


#ifndef __CRsNodeList_FWD_DEFINED__
#define __CRsNodeList_FWD_DEFINED__

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

#endif 	/* __CRsNodeList_FWD_DEFINED__ */


#ifndef __CRdVertexStream_FWD_DEFINED__
#define __CRdVertexStream_FWD_DEFINED__

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

#endif 	/* __CRdVertexStream_FWD_DEFINED__ */


#ifndef __CRdTriangleStream_FWD_DEFINED__
#define __CRdTriangleStream_FWD_DEFINED__

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

#endif 	/* __CRdTriangleStream_FWD_DEFINED__ */


#ifndef __CRdNormalsStream_FWD_DEFINED__
#define __CRdNormalsStream_FWD_DEFINED__

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

#endif 	/* __CRdNormalsStream_FWD_DEFINED__ */


#ifndef __CRdVertexNormalsStream_FWD_DEFINED__
#define __CRdVertexNormalsStream_FWD_DEFINED__

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

#endif 	/* __CRdVertexNormalsStream_FWD_DEFINED__ */


#ifndef __CRdGenCustStream_FWD_DEFINED__
#define __CRdGenCustStream_FWD_DEFINED__

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

#endif 	/* __CRdGenCustStream_FWD_DEFINED__ */


#ifndef __CRdMaterialIndexStream_FWD_DEFINED__
#define __CRdMaterialIndexStream_FWD_DEFINED__

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

#endif 	/* __CRdMaterialIndexStream_FWD_DEFINED__ */


#ifndef __CRdEdgeNeighborsStream_FWD_DEFINED__
#define __CRdEdgeNeighborsStream_FWD_DEFINED__

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

#endif 	/* __CRdEdgeNeighborsStream_FWD_DEFINED__ */


#ifndef __CRdUVTriangleStream_FWD_DEFINED__
#define __CRdUVTriangleStream_FWD_DEFINED__

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

#endif 	/* __CRdUVTriangleStream_FWD_DEFINED__ */


#ifndef __CRdUVCoordStream_FWD_DEFINED__
#define __CRdUVCoordStream_FWD_DEFINED__

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

#endif 	/* __CRdUVCoordStream_FWD_DEFINED__ */


#ifndef __CRdUVSecTriangleStream_FWD_DEFINED__
#define __CRdUVSecTriangleStream_FWD_DEFINED__

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

#endif 	/* __CRdUVSecTriangleStream_FWD_DEFINED__ */


#ifndef __CRdUVSecCoordStream_FWD_DEFINED__
#define __CRdUVSecCoordStream_FWD_DEFINED__

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

#endif 	/* __CRdUVSecCoordStream_FWD_DEFINED__ */


#ifndef __CRdFacesStream_FWD_DEFINED__
#define __CRdFacesStream_FWD_DEFINED__

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

#endif 	/* __CRdFacesStream_FWD_DEFINED__ */


#ifndef __CRdFaceTrianglesStream_FWD_DEFINED__
#define __CRdFaceTrianglesStream_FWD_DEFINED__

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

#endif 	/* __CRdFaceTrianglesStream_FWD_DEFINED__ */


#ifndef __CRdFaceUnityStream_FWD_DEFINED__
#define __CRdFaceUnityStream_FWD_DEFINED__

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

#endif 	/* __CRdFaceUnityStream_FWD_DEFINED__ */


#ifndef __CRdSuperfaceUnityStream_FWD_DEFINED__
#define __CRdSuperfaceUnityStream_FWD_DEFINED__

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

#endif 	/* __CRdSuperfaceUnityStream_FWD_DEFINED__ */


#ifndef __CRdTriangleEdgesStream_FWD_DEFINED__
#define __CRdTriangleEdgesStream_FWD_DEFINED__

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

#endif 	/* __CRdTriangleEdgesStream_FWD_DEFINED__ */


#ifndef __CRdTriangleNeighboursStream_FWD_DEFINED__
#define __CRdTriangleNeighboursStream_FWD_DEFINED__

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

#endif 	/* __CRdTriangleNeighboursStream_FWD_DEFINED__ */


#ifndef __CRdSSEdgeWeightsStream_FWD_DEFINED__
#define __CRdSSEdgeWeightsStream_FWD_DEFINED__

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

#endif 	/* __CRdSSEdgeWeightsStream_FWD_DEFINED__ */


#ifndef __CRdTriangleNormalsStream_FWD_DEFINED__
#define __CRdTriangleNormalsStream_FWD_DEFINED__

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

#endif 	/* __CRdTriangleNormalsStream_FWD_DEFINED__ */


#ifndef __CRdTrVertColorStream_FWD_DEFINED__
#define __CRdTrVertColorStream_FWD_DEFINED__

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

#endif 	/* __CRdTrVertColorStream_FWD_DEFINED__ */


#ifndef __CRdTangentSpaceStream_FWD_DEFINED__
#define __CRdTangentSpaceStream_FWD_DEFINED__

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

#endif 	/* __CRdTangentSpaceStream_FWD_DEFINED__ */


#ifndef __CRdTangentSpaceTriangleStream_FWD_DEFINED__
#define __CRdTangentSpaceTriangleStream_FWD_DEFINED__

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

#endif 	/* __CRdTangentSpaceTriangleStream_FWD_DEFINED__ */


#ifndef __CRdVertexTopologyInfo_FWD_DEFINED__
#define __CRdVertexTopologyInfo_FWD_DEFINED__

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

#endif 	/* __CRdVertexTopologyInfo_FWD_DEFINED__ */


#ifndef __CRdVertexTopologyData_FWD_DEFINED__
#define __CRdVertexTopologyData_FWD_DEFINED__

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

#endif 	/* __CRdVertexTopologyData_FWD_DEFINED__ */


#ifndef __CRdCamera_FWD_DEFINED__
#define __CRdCamera_FWD_DEFINED__

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

#endif 	/* __CRdCamera_FWD_DEFINED__ */


#ifndef __CRdMaterialActiveInfo_FWD_DEFINED__
#define __CRdMaterialActiveInfo_FWD_DEFINED__

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

#endif 	/* __CRdMaterialActiveInfo_FWD_DEFINED__ */


#ifndef __CRdMaterialChunk_FWD_DEFINED__
#define __CRdMaterialChunk_FWD_DEFINED__

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

#endif 	/* __CRdMaterialChunk_FWD_DEFINED__ */


#ifndef __CRdMaterialList_FWD_DEFINED__
#define __CRdMaterialList_FWD_DEFINED__

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

#endif 	/* __CRdMaterialList_FWD_DEFINED__ */


#ifndef __CRdArrayObjInfo_FWD_DEFINED__
#define __CRdArrayObjInfo_FWD_DEFINED__

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

#endif 	/* __CRdArrayObjInfo_FWD_DEFINED__ */


#ifndef __CRdLayersInfo_FWD_DEFINED__
#define __CRdLayersInfo_FWD_DEFINED__

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

#endif 	/* __CRdLayersInfo_FWD_DEFINED__ */


#ifndef __CRfObjectHelper_FWD_DEFINED__
#define __CRfObjectHelper_FWD_DEFINED__

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

#endif 	/* __CRfObjectHelper_FWD_DEFINED__ */


#ifndef __CRfSceneHelper_FWD_DEFINED__
#define __CRfSceneHelper_FWD_DEFINED__

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

#endif 	/* __CRfSceneHelper_FWD_DEFINED__ */


#ifndef __CRdGeometryIdentificationTableStream_FWD_DEFINED__
#define __CRdGeometryIdentificationTableStream_FWD_DEFINED__

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

#endif 	/* __CRdGeometryIdentificationTableStream_FWD_DEFINED__ */


#ifndef __CRfMeshSet_FWD_DEFINED__
#define __CRfMeshSet_FWD_DEFINED__

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

#endif 	/* __CRfMeshSet_FWD_DEFINED__ */


#ifndef __CRfTransformSet_FWD_DEFINED__
#define __CRfTransformSet_FWD_DEFINED__

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

#endif 	/* __CRfTransformSet_FWD_DEFINED__ */


#ifndef __CRfSkeletonSet_FWD_DEFINED__
#define __CRfSkeletonSet_FWD_DEFINED__

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

#endif 	/* __CRfSkeletonSet_FWD_DEFINED__ */


#ifndef __CRdMeshSelection_FWD_DEFINED__
#define __CRdMeshSelection_FWD_DEFINED__

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

#endif 	/* __CRdMeshSelection_FWD_DEFINED__ */


#ifndef __CRdSkinningData_FWD_DEFINED__
#define __CRdSkinningData_FWD_DEFINED__

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

#endif 	/* __CRdSkinningData_FWD_DEFINED__ */


#ifndef __CRdSkinningParameters_FWD_DEFINED__
#define __CRdSkinningParameters_FWD_DEFINED__

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

#endif 	/* __CRdSkinningParameters_FWD_DEFINED__ */


#ifndef __CRfSkinSet_FWD_DEFINED__
#define __CRfSkinSet_FWD_DEFINED__

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

#endif 	/* __CRfSkinSet_FWD_DEFINED__ */


#ifndef __CRsTransformOverride_FWD_DEFINED__
#define __CRsTransformOverride_FWD_DEFINED__

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

#endif 	/* __CRsTransformOverride_FWD_DEFINED__ */


#ifndef __CRfMeshRetargetSet_FWD_DEFINED__
#define __CRfMeshRetargetSet_FWD_DEFINED__

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

#endif 	/* __CRfMeshRetargetSet_FWD_DEFINED__ */


#ifndef __CRfMaterialEditor_FWD_DEFINED__
#define __CRfMaterialEditor_FWD_DEFINED__

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

#endif 	/* __CRfMaterialEditor_FWD_DEFINED__ */


#ifndef __CRdVertexMorph_FWD_DEFINED__
#define __CRdVertexMorph_FWD_DEFINED__

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

#endif 	/* __CRdVertexMorph_FWD_DEFINED__ */


#ifndef __CRfVertexMorphSet_FWD_DEFINED__
#define __CRfVertexMorphSet_FWD_DEFINED__

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

#endif 	/* __CRfVertexMorphSet_FWD_DEFINED__ */


#ifndef __CRpSpace3DPck_FWD_DEFINED__
#define __CRpSpace3DPck_FWD_DEFINED__

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

#endif 	/* __CRpSpace3DPck_FWD_DEFINED__ */


#ifndef __CRdTripleIndexArray_FWD_DEFINED__
#define __CRdTripleIndexArray_FWD_DEFINED__

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

#endif 	/* __CRdTripleIndexArray_FWD_DEFINED__ */


#ifndef __CRdPointArray_FWD_DEFINED__
#define __CRdPointArray_FWD_DEFINED__

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

#endif 	/* __CRdPointArray_FWD_DEFINED__ */


#ifndef __CRdUvArray_FWD_DEFINED__
#define __CRdUvArray_FWD_DEFINED__

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

#endif 	/* __CRdUvArray_FWD_DEFINED__ */


#ifndef __CRdIndexArray_FWD_DEFINED__
#define __CRdIndexArray_FWD_DEFINED__

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

#endif 	/* __CRdIndexArray_FWD_DEFINED__ */


#ifndef __CRdRenderAttributes_FWD_DEFINED__
#define __CRdRenderAttributes_FWD_DEFINED__

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

#endif 	/* __CRdRenderAttributes_FWD_DEFINED__ */


#ifndef __CRiSpaceCommand_FWD_DEFINED__
#define __CRiSpaceCommand_FWD_DEFINED__

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

#endif 	/* __CRiSpaceCommand_FWD_DEFINED__ */


#ifndef __CRsUVTesselation_FWD_DEFINED__
#define __CRsUVTesselation_FWD_DEFINED__

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

#endif 	/* __CRsUVTesselation_FWD_DEFINED__ */


#ifndef __CRsWindowToolSet_FWD_DEFINED__
#define __CRsWindowToolSet_FWD_DEFINED__

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

#endif 	/* __CRsWindowToolSet_FWD_DEFINED__ */


#ifndef __CRdVertexSelectionStream_FWD_DEFINED__
#define __CRdVertexSelectionStream_FWD_DEFINED__

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

#endif 	/* __CRdVertexSelectionStream_FWD_DEFINED__ */


#ifndef __CRdEdgeSelectionStream_FWD_DEFINED__
#define __CRdEdgeSelectionStream_FWD_DEFINED__

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

#endif 	/* __CRdEdgeSelectionStream_FWD_DEFINED__ */


#ifndef __CRdEdgesVisualizationStream_FWD_DEFINED__
#define __CRdEdgesVisualizationStream_FWD_DEFINED__

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

#endif 	/* __CRdEdgesVisualizationStream_FWD_DEFINED__ */


#ifndef __CRdTriangleSelectionStream_FWD_DEFINED__
#define __CRdTriangleSelectionStream_FWD_DEFINED__

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

#endif 	/* __CRdTriangleSelectionStream_FWD_DEFINED__ */


#ifndef __CRdGeometryIdentificationStream_FWD_DEFINED__
#define __CRdGeometryIdentificationStream_FWD_DEFINED__

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

#endif 	/* __CRdGeometryIdentificationStream_FWD_DEFINED__ */


#ifndef __CRdGeometryIdentificationTriangleStream_FWD_DEFINED__
#define __CRdGeometryIdentificationTriangleStream_FWD_DEFINED__

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

#endif 	/* __CRdGeometryIdentificationTriangleStream_FWD_DEFINED__ */


#ifndef __CRdTriangleLocatorStream_FWD_DEFINED__
#define __CRdTriangleLocatorStream_FWD_DEFINED__

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

#endif 	/* __CRdTriangleLocatorStream_FWD_DEFINED__ */


#ifndef __CRdTrianglesVisStream_FWD_DEFINED__
#define __CRdTrianglesVisStream_FWD_DEFINED__

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

#endif 	/* __CRdTrianglesVisStream_FWD_DEFINED__ */


#ifndef __CRdTriangleTimestampStream_FWD_DEFINED__
#define __CRdTriangleTimestampStream_FWD_DEFINED__

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

#endif 	/* __CRdTriangleTimestampStream_FWD_DEFINED__ */


#ifndef __CRdVertexVisualizationStream_FWD_DEFINED__
#define __CRdVertexVisualizationStream_FWD_DEFINED__

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

#endif 	/* __CRdVertexVisualizationStream_FWD_DEFINED__ */


#ifndef __CRdHairDensityStream_FWD_DEFINED__
#define __CRdHairDensityStream_FWD_DEFINED__

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

#endif 	/* __CRdHairDensityStream_FWD_DEFINED__ */


#ifndef __CRdHairLengthStream_FWD_DEFINED__
#define __CRdHairLengthStream_FWD_DEFINED__

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

#endif 	/* __CRdHairLengthStream_FWD_DEFINED__ */


#ifndef __CRdSSVertexStream_FWD_DEFINED__
#define __CRdSSVertexStream_FWD_DEFINED__

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

#endif 	/* __CRdSSVertexStream_FWD_DEFINED__ */


#ifndef __CRdVertexHairStream_FWD_DEFINED__
#define __CRdVertexHairStream_FWD_DEFINED__

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

#endif 	/* __CRdVertexHairStream_FWD_DEFINED__ */


#ifndef __CRdObjNamesIndexStream_FWD_DEFINED__
#define __CRdObjNamesIndexStream_FWD_DEFINED__

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

#endif 	/* __CRdObjNamesIndexStream_FWD_DEFINED__ */


#ifndef __CRdSurfaceIdIndexStream_FWD_DEFINED__
#define __CRdSurfaceIdIndexStream_FWD_DEFINED__

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

#endif 	/* __CRdSurfaceIdIndexStream_FWD_DEFINED__ */


#ifndef __CRdNormalsSkinStream_FWD_DEFINED__
#define __CRdNormalsSkinStream_FWD_DEFINED__

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

#endif 	/* __CRdNormalsSkinStream_FWD_DEFINED__ */


#ifndef __CRdObjNamesCustStream_FWD_DEFINED__
#define __CRdObjNamesCustStream_FWD_DEFINED__

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

#endif 	/* __CRdObjNamesCustStream_FWD_DEFINED__ */


#ifndef __CRdSkinMatrixStream_FWD_DEFINED__
#define __CRdSkinMatrixStream_FWD_DEFINED__

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

#endif 	/* __CRdSkinMatrixStream_FWD_DEFINED__ */


#ifndef __CRdCompatibilityNormalsStream_FWD_DEFINED__
#define __CRdCompatibilityNormalsStream_FWD_DEFINED__

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

#endif 	/* __CRdCompatibilityNormalsStream_FWD_DEFINED__ */


#ifndef __CRdEdgeSelectionDeprecated_FWD_DEFINED__
#define __CRdEdgeSelectionDeprecated_FWD_DEFINED__

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

#endif 	/* __CRdEdgeSelectionDeprecated_FWD_DEFINED__ */


#ifndef __CRdTriangleSelectionDeprecated_FWD_DEFINED__
#define __CRdTriangleSelectionDeprecated_FWD_DEFINED__

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

#endif 	/* __CRdTriangleSelectionDeprecated_FWD_DEFINED__ */


#ifndef __CRdVertexSelectionDeprecated_FWD_DEFINED__
#define __CRdVertexSelectionDeprecated_FWD_DEFINED__

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

#endif 	/* __CRdVertexSelectionDeprecated_FWD_DEFINED__ */


#ifndef __CRdMESettings_FWD_DEFINED__
#define __CRdMESettings_FWD_DEFINED__

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

#endif 	/* __CRdMESettings_FWD_DEFINED__ */


#ifndef __CRdCurve_FWD_DEFINED__
#define __CRdCurve_FWD_DEFINED__

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

#endif 	/* __CRdCurve_FWD_DEFINED__ */


#ifndef __CRiOfflineRender_FWD_DEFINED__
#define __CRiOfflineRender_FWD_DEFINED__

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

#endif 	/* __CRiOfflineRender_FWD_DEFINED__ */


#ifndef __CRdBone_FWD_DEFINED__
#define __CRdBone_FWD_DEFINED__

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

#endif 	/* __CRdBone_FWD_DEFINED__ */


#ifndef __CRdBoneTransformParameters_FWD_DEFINED__
#define __CRdBoneTransformParameters_FWD_DEFINED__

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

#endif 	/* __CRdBoneTransformParameters_FWD_DEFINED__ */


#ifndef __CRdSkeleton_FWD_DEFINED__
#define __CRdSkeleton_FWD_DEFINED__

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

#endif 	/* __CRdSkeleton_FWD_DEFINED__ */


#ifndef __CRdJoint_FWD_DEFINED__
#define __CRdJoint_FWD_DEFINED__

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

#endif 	/* __CRdJoint_FWD_DEFINED__ */


#ifndef __CRdSoftTissuesData_FWD_DEFINED__
#define __CRdSoftTissuesData_FWD_DEFINED__

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

#endif 	/* __CRdSoftTissuesData_FWD_DEFINED__ */


#ifndef __CRdIkLocks_FWD_DEFINED__
#define __CRdIkLocks_FWD_DEFINED__

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

#endif 	/* __CRdIkLocks_FWD_DEFINED__ */


#ifndef __CRdHair_FWD_DEFINED__
#define __CRdHair_FWD_DEFINED__

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

#endif 	/* __CRdHair_FWD_DEFINED__ */


#ifndef __CRdSkeletonProperties_FWD_DEFINED__
#define __CRdSkeletonProperties_FWD_DEFINED__

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

#endif 	/* __CRdSkeletonProperties_FWD_DEFINED__ */


#ifndef __CRdVertexSkinStream_FWD_DEFINED__
#define __CRdVertexSkinStream_FWD_DEFINED__

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

#endif 	/* __CRdVertexSkinStream_FWD_DEFINED__ */


#ifndef __CRdSkinWeightDirect_FWD_DEFINED__
#define __CRdSkinWeightDirect_FWD_DEFINED__

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

#endif 	/* __CRdSkinWeightDirect_FWD_DEFINED__ */


#ifndef __CRdSkinWeightIndexed_FWD_DEFINED__
#define __CRdSkinWeightIndexed_FWD_DEFINED__

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

#endif 	/* __CRdSkinWeightIndexed_FWD_DEFINED__ */


#ifndef __CRdProceduralSkinVertexStream_FWD_DEFINED__
#define __CRdProceduralSkinVertexStream_FWD_DEFINED__

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

#endif 	/* __CRdProceduralSkinVertexStream_FWD_DEFINED__ */


#ifndef __CRdVertexSkinVerticesCache_FWD_DEFINED__
#define __CRdVertexSkinVerticesCache_FWD_DEFINED__

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

#endif 	/* __CRdVertexSkinVerticesCache_FWD_DEFINED__ */


#ifndef __CRdProceduralSkinNormalsStream_FWD_DEFINED__
#define __CRdProceduralSkinNormalsStream_FWD_DEFINED__

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

#endif 	/* __CRdProceduralSkinNormalsStream_FWD_DEFINED__ */


#ifndef __CRdVertexSkinNormalsCache_FWD_DEFINED__
#define __CRdVertexSkinNormalsCache_FWD_DEFINED__

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

#endif 	/* __CRdVertexSkinNormalsCache_FWD_DEFINED__ */


#ifndef __CRdVertexMorphStream_FWD_DEFINED__
#define __CRdVertexMorphStream_FWD_DEFINED__

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

#endif 	/* __CRdVertexMorphStream_FWD_DEFINED__ */


#ifndef __CRdMaterialGeneric_FWD_DEFINED__
#define __CRdMaterialGeneric_FWD_DEFINED__

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

#endif 	/* __CRdMaterialGeneric_FWD_DEFINED__ */


#ifndef __CRdReferencedMaterialInfo_FWD_DEFINED__
#define __CRdReferencedMaterialInfo_FWD_DEFINED__

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

#endif 	/* __CRdReferencedMaterialInfo_FWD_DEFINED__ */


#ifndef __CRdIkStyle_FWD_DEFINED__
#define __CRdIkStyle_FWD_DEFINED__

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

#endif 	/* __CRdIkStyle_FWD_DEFINED__ */


/* header files for imported files */
#include "prsht.h"
#include "mshtml.h"
#include "mshtmhst.h"
#include "exdisp.h"
#include "objsafe.h"
#include "_kernel.h"
#include "_commondata.h"
#include "_math.h"
#include "_graph.h"

#ifdef __cplusplus
extern "C"{
#endif 

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

/* interface __MIDL_itf__Space3D_0000 */
/* [local] */ 

typedef GUID RtMatClsId;



extern RPC_IF_HANDLE __MIDL_itf__Space3D_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_0000_v0_0_s_ifspec;

#ifndef __IRsEnumClsMaterials_INTERFACE_DEFINED__
#define __IRsEnumClsMaterials_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRsEnumClsMaterials;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7886D6D3-ECFB-4459-AEB8-F66EE41841AA")
    IRsEnumClsMaterials : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Next( 
            /* [in] */ ULONG cShapes,
            /* [out] */ RtMatClsId *pMatClsId,
            /* [out] */ ULONG *pcFetched) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Skip( 
            /* [in] */ ULONG cShapes) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Reset( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Clone( 
            /* [out] */ IRsEnumClsMaterials **ppEnum) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsEnumClsMaterialsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsEnumClsMaterials * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsEnumClsMaterials * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsEnumClsMaterials * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Next )( 
            IRsEnumClsMaterials * This,
            /* [in] */ ULONG cShapes,
            /* [out] */ RtMatClsId *pMatClsId,
            /* [out] */ ULONG *pcFetched);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Skip )( 
            IRsEnumClsMaterials * This,
            /* [in] */ ULONG cShapes);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Reset )( 
            IRsEnumClsMaterials * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Clone )( 
            IRsEnumClsMaterials * This,
            /* [out] */ IRsEnumClsMaterials **ppEnum);
        
        END_INTERFACE
    } IRsEnumClsMaterialsVtbl;

    interface IRsEnumClsMaterials
    {
        CONST_VTBL struct IRsEnumClsMaterialsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IRsEnumClsMaterials_Next(This,cShapes,pMatClsId,pcFetched)	\
    (This)->lpVtbl -> Next(This,cShapes,pMatClsId,pcFetched)

#define IRsEnumClsMaterials_Skip(This,cShapes)	\
    (This)->lpVtbl -> Skip(This,cShapes)

#define IRsEnumClsMaterials_Reset(This)	\
    (This)->lpVtbl -> Reset(This)

#define IRsEnumClsMaterials_Clone(This,ppEnum)	\
    (This)->lpVtbl -> Clone(This,ppEnum)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsEnumClsMaterials_Next_Proxy( 
    IRsEnumClsMaterials * This,
    /* [in] */ ULONG cShapes,
    /* [out] */ RtMatClsId *pMatClsId,
    /* [out] */ ULONG *pcFetched);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsEnumClsMaterials_Skip_Proxy( 
    IRsEnumClsMaterials * This,
    /* [in] */ ULONG cShapes);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsEnumClsMaterials_Reset_Proxy( 
    IRsEnumClsMaterials * This);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsEnumClsMaterials_Clone_Proxy( 
    IRsEnumClsMaterials * This,
    /* [out] */ IRsEnumClsMaterials **ppEnum);


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



#endif 	/* __IRsEnumClsMaterials_INTERFACE_DEFINED__ */


#ifndef __IRdMaterialGeneric_INTERFACE_DEFINED__
#define __IRdMaterialGeneric_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdMaterialGeneric;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F47420A0-18AC-46c4-984B-625240F560AD")
    IRdMaterialGeneric : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetColorShaderItems( 
            /* [retval][out] */ RtUlong *pdwItems) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetColorItem( 
            /* [in] */ RtUlong dwIndex,
            /* [out] */ BSTR *pszName,
            /* [out] */ VARIANT *pItem) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE QueryColorShader( 
            /* [in] */ LPCWSTR szKey,
            /* [retval][out] */ VARIANT *pItem) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetColorItem( 
            /* [in] */ BSTR szKey,
            /* [in] */ VARIANT vItem) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ClearColorShader( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetTransparencyShaderItems( 
            /* [retval][out] */ RtUlong *pdwItems) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetTransparencyItem( 
            /* [in] */ RtUlong dwIndex,
            /* [out] */ BSTR *pszName,
            /* [out] */ VARIANT *pItem) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE QueryTransparencyShader( 
            /* [in] */ LPCWSTR szKey,
            /* [retval][out] */ VARIANT *pItem) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetTransparencyItem( 
            /* [in] */ BSTR szKey,
            /* [in] */ VARIANT vItem) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ClearTransparencyShader( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetReflectanceShaderItems( 
            /* [retval][out] */ RtUlong *pdwItems) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetReflectanceItem( 
            /* [in] */ RtUlong dwIndex,
            /* [out] */ BSTR *pszName,
            /* [out] */ VARIANT *pItem) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE QueryReflectanceShader( 
            /* [in] */ LPCWSTR szKey,
            /* [retval][out] */ VARIANT *pItem) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetReflectanceItem( 
            /* [in] */ BSTR szKey,
            /* [in] */ VARIANT vItem) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ClearReflectanceShader( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetDisplacementShaderItems( 
            /* [retval][out] */ RtUlong *pdwItems) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetDisplacementItem( 
            /* [in] */ RtUlong dwIndex,
            /* [out] */ BSTR *pszName,
            /* [out] */ VARIANT *pItem) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE QueryDisplacementShader( 
            /* [in] */ LPCWSTR szKey,
            /* [retval][out] */ VARIANT *pItem) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetDisplacementItem( 
            /* [in] */ BSTR szKey,
            /* [in] */ VARIANT vItem) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ClearDisplacementShader( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetDefaultMaterial( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetFallbackMaterial( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdMaterialGenericVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdMaterialGeneric * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdMaterialGeneric * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdMaterialGeneric * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetColorShaderItems )( 
            IRdMaterialGeneric * This,
            /* [retval][out] */ RtUlong *pdwItems);
        
        HRESULT ( STDMETHODCALLTYPE *GetColorItem )( 
            IRdMaterialGeneric * This,
            /* [in] */ RtUlong dwIndex,
            /* [out] */ BSTR *pszName,
            /* [out] */ VARIANT *pItem);
        
        HRESULT ( STDMETHODCALLTYPE *QueryColorShader )( 
            IRdMaterialGeneric * This,
            /* [in] */ LPCWSTR szKey,
            /* [retval][out] */ VARIANT *pItem);
        
        HRESULT ( STDMETHODCALLTYPE *SetColorItem )( 
            IRdMaterialGeneric * This,
            /* [in] */ BSTR szKey,
            /* [in] */ VARIANT vItem);
        
        HRESULT ( STDMETHODCALLTYPE *ClearColorShader )( 
            IRdMaterialGeneric * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTransparencyShaderItems )( 
            IRdMaterialGeneric * This,
            /* [retval][out] */ RtUlong *pdwItems);
        
        HRESULT ( STDMETHODCALLTYPE *GetTransparencyItem )( 
            IRdMaterialGeneric * This,
            /* [in] */ RtUlong dwIndex,
            /* [out] */ BSTR *pszName,
            /* [out] */ VARIANT *pItem);
        
        HRESULT ( STDMETHODCALLTYPE *QueryTransparencyShader )( 
            IRdMaterialGeneric * This,
            /* [in] */ LPCWSTR szKey,
            /* [retval][out] */ VARIANT *pItem);
        
        HRESULT ( STDMETHODCALLTYPE *SetTransparencyItem )( 
            IRdMaterialGeneric * This,
            /* [in] */ BSTR szKey,
            /* [in] */ VARIANT vItem);
        
        HRESULT ( STDMETHODCALLTYPE *ClearTransparencyShader )( 
            IRdMaterialGeneric * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetReflectanceShaderItems )( 
            IRdMaterialGeneric * This,
            /* [retval][out] */ RtUlong *pdwItems);
        
        HRESULT ( STDMETHODCALLTYPE *GetReflectanceItem )( 
            IRdMaterialGeneric * This,
            /* [in] */ RtUlong dwIndex,
            /* [out] */ BSTR *pszName,
            /* [out] */ VARIANT *pItem);
        
        HRESULT ( STDMETHODCALLTYPE *QueryReflectanceShader )( 
            IRdMaterialGeneric * This,
            /* [in] */ LPCWSTR szKey,
            /* [retval][out] */ VARIANT *pItem);
        
        HRESULT ( STDMETHODCALLTYPE *SetReflectanceItem )( 
            IRdMaterialGeneric * This,
            /* [in] */ BSTR szKey,
            /* [in] */ VARIANT vItem);
        
        HRESULT ( STDMETHODCALLTYPE *ClearReflectanceShader )( 
            IRdMaterialGeneric * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetDisplacementShaderItems )( 
            IRdMaterialGeneric * This,
            /* [retval][out] */ RtUlong *pdwItems);
        
        HRESULT ( STDMETHODCALLTYPE *GetDisplacementItem )( 
            IRdMaterialGeneric * This,
            /* [in] */ RtUlong dwIndex,
            /* [out] */ BSTR *pszName,
            /* [out] */ VARIANT *pItem);
        
        HRESULT ( STDMETHODCALLTYPE *QueryDisplacementShader )( 
            IRdMaterialGeneric * This,
            /* [in] */ LPCWSTR szKey,
            /* [retval][out] */ VARIANT *pItem);
        
        HRESULT ( STDMETHODCALLTYPE *SetDisplacementItem )( 
            IRdMaterialGeneric * This,
            /* [in] */ BSTR szKey,
            /* [in] */ VARIANT vItem);
        
        HRESULT ( STDMETHODCALLTYPE *ClearDisplacementShader )( 
            IRdMaterialGeneric * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetDefaultMaterial )( 
            IRdMaterialGeneric * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetFallbackMaterial )( 
            IRdMaterialGeneric * This);
        
        END_INTERFACE
    } IRdMaterialGenericVtbl;

    interface IRdMaterialGeneric
    {
        CONST_VTBL struct IRdMaterialGenericVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IRdMaterialGeneric_GetColorShaderItems(This,pdwItems)	\
    (This)->lpVtbl -> GetColorShaderItems(This,pdwItems)

#define IRdMaterialGeneric_GetColorItem(This,dwIndex,pszName,pItem)	\
    (This)->lpVtbl -> GetColorItem(This,dwIndex,pszName,pItem)

#define IRdMaterialGeneric_QueryColorShader(This,szKey,pItem)	\
    (This)->lpVtbl -> QueryColorShader(This,szKey,pItem)

#define IRdMaterialGeneric_SetColorItem(This,szKey,vItem)	\
    (This)->lpVtbl -> SetColorItem(This,szKey,vItem)

#define IRdMaterialGeneric_ClearColorShader(This)	\
    (This)->lpVtbl -> ClearColorShader(This)

#define IRdMaterialGeneric_GetTransparencyShaderItems(This,pdwItems)	\
    (This)->lpVtbl -> GetTransparencyShaderItems(This,pdwItems)

#define IRdMaterialGeneric_GetTransparencyItem(This,dwIndex,pszName,pItem)	\
    (This)->lpVtbl -> GetTransparencyItem(This,dwIndex,pszName,pItem)

#define IRdMaterialGeneric_QueryTransparencyShader(This,szKey,pItem)	\
    (This)->lpVtbl -> QueryTransparencyShader(This,szKey,pItem)

#define IRdMaterialGeneric_SetTransparencyItem(This,szKey,vItem)	\
    (This)->lpVtbl -> SetTransparencyItem(This,szKey,vItem)

#define IRdMaterialGeneric_ClearTransparencyShader(This)	\
    (This)->lpVtbl -> ClearTransparencyShader(This)

#define IRdMaterialGeneric_GetReflectanceShaderItems(This,pdwItems)	\
    (This)->lpVtbl -> GetReflectanceShaderItems(This,pdwItems)

#define IRdMaterialGeneric_GetReflectanceItem(This,dwIndex,pszName,pItem)	\
    (This)->lpVtbl -> GetReflectanceItem(This,dwIndex,pszName,pItem)

#define IRdMaterialGeneric_QueryReflectanceShader(This,szKey,pItem)	\
    (This)->lpVtbl -> QueryReflectanceShader(This,szKey,pItem)

#define IRdMaterialGeneric_SetReflectanceItem(This,szKey,vItem)	\
    (This)->lpVtbl -> SetReflectanceItem(This,szKey,vItem)

#define IRdMaterialGeneric_ClearReflectanceShader(This)	\
    (This)->lpVtbl -> ClearReflectanceShader(This)

#define IRdMaterialGeneric_GetDisplacementShaderItems(This,pdwItems)	\
    (This)->lpVtbl -> GetDisplacementShaderItems(This,pdwItems)

#define IRdMaterialGeneric_GetDisplacementItem(This,dwIndex,pszName,pItem)	\
    (This)->lpVtbl -> GetDisplacementItem(This,dwIndex,pszName,pItem)

#define IRdMaterialGeneric_QueryDisplacementShader(This,szKey,pItem)	\
    (This)->lpVtbl -> QueryDisplacementShader(This,szKey,pItem)

#define IRdMaterialGeneric_SetDisplacementItem(This,szKey,vItem)	\
    (This)->lpVtbl -> SetDisplacementItem(This,szKey,vItem)

#define IRdMaterialGeneric_ClearDisplacementShader(This)	\
    (This)->lpVtbl -> ClearDisplacementShader(This)

#define IRdMaterialGeneric_SetDefaultMaterial(This)	\
    (This)->lpVtbl -> SetDefaultMaterial(This)

#define IRdMaterialGeneric_SetFallbackMaterial(This)	\
    (This)->lpVtbl -> SetFallbackMaterial(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRdMaterialGeneric_GetColorShaderItems_Proxy( 
    IRdMaterialGeneric * This,
    /* [retval][out] */ RtUlong *pdwItems);


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


HRESULT STDMETHODCALLTYPE IRdMaterialGeneric_GetColorItem_Proxy( 
    IRdMaterialGeneric * This,
    /* [in] */ RtUlong dwIndex,
    /* [out] */ BSTR *pszName,
    /* [out] */ VARIANT *pItem);


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


HRESULT STDMETHODCALLTYPE IRdMaterialGeneric_QueryColorShader_Proxy( 
    IRdMaterialGeneric * This,
    /* [in] */ LPCWSTR szKey,
    /* [retval][out] */ VARIANT *pItem);


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


HRESULT STDMETHODCALLTYPE IRdMaterialGeneric_SetColorItem_Proxy( 
    IRdMaterialGeneric * This,
    /* [in] */ BSTR szKey,
    /* [in] */ VARIANT vItem);


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


HRESULT STDMETHODCALLTYPE IRdMaterialGeneric_ClearColorShader_Proxy( 
    IRdMaterialGeneric * This);


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


HRESULT STDMETHODCALLTYPE IRdMaterialGeneric_GetTransparencyShaderItems_Proxy( 
    IRdMaterialGeneric * This,
    /* [retval][out] */ RtUlong *pdwItems);


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


HRESULT STDMETHODCALLTYPE IRdMaterialGeneric_GetTransparencyItem_Proxy( 
    IRdMaterialGeneric * This,
    /* [in] */ RtUlong dwIndex,
    /* [out] */ BSTR *pszName,
    /* [out] */ VARIANT *pItem);


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


HRESULT STDMETHODCALLTYPE IRdMaterialGeneric_QueryTransparencyShader_Proxy( 
    IRdMaterialGeneric * This,
    /* [in] */ LPCWSTR szKey,
    /* [retval][out] */ VARIANT *pItem);


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


HRESULT STDMETHODCALLTYPE IRdMaterialGeneric_SetTransparencyItem_Proxy( 
    IRdMaterialGeneric * This,
    /* [in] */ BSTR szKey,
    /* [in] */ VARIANT vItem);


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


HRESULT STDMETHODCALLTYPE IRdMaterialGeneric_ClearTransparencyShader_Proxy( 
    IRdMaterialGeneric * This);


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


HRESULT STDMETHODCALLTYPE IRdMaterialGeneric_GetReflectanceShaderItems_Proxy( 
    IRdMaterialGeneric * This,
    /* [retval][out] */ RtUlong *pdwItems);


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


HRESULT STDMETHODCALLTYPE IRdMaterialGeneric_GetReflectanceItem_Proxy( 
    IRdMaterialGeneric * This,
    /* [in] */ RtUlong dwIndex,
    /* [out] */ BSTR *pszName,
    /* [out] */ VARIANT *pItem);


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


HRESULT STDMETHODCALLTYPE IRdMaterialGeneric_QueryReflectanceShader_Proxy( 
    IRdMaterialGeneric * This,
    /* [in] */ LPCWSTR szKey,
    /* [retval][out] */ VARIANT *pItem);


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


HRESULT STDMETHODCALLTYPE IRdMaterialGeneric_SetReflectanceItem_Proxy( 
    IRdMaterialGeneric * This,
    /* [in] */ BSTR szKey,
    /* [in] */ VARIANT vItem);


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


HRESULT STDMETHODCALLTYPE IRdMaterialGeneric_ClearReflectanceShader_Proxy( 
    IRdMaterialGeneric * This);


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


HRESULT STDMETHODCALLTYPE IRdMaterialGeneric_GetDisplacementShaderItems_Proxy( 
    IRdMaterialGeneric * This,
    /* [retval][out] */ RtUlong *pdwItems);


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


HRESULT STDMETHODCALLTYPE IRdMaterialGeneric_GetDisplacementItem_Proxy( 
    IRdMaterialGeneric * This,
    /* [in] */ RtUlong dwIndex,
    /* [out] */ BSTR *pszName,
    /* [out] */ VARIANT *pItem);


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


HRESULT STDMETHODCALLTYPE IRdMaterialGeneric_QueryDisplacementShader_Proxy( 
    IRdMaterialGeneric * This,
    /* [in] */ LPCWSTR szKey,
    /* [retval][out] */ VARIANT *pItem);


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


HRESULT STDMETHODCALLTYPE IRdMaterialGeneric_SetDisplacementItem_Proxy( 
    IRdMaterialGeneric * This,
    /* [in] */ BSTR szKey,
    /* [in] */ VARIANT vItem);


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


HRESULT STDMETHODCALLTYPE IRdMaterialGeneric_ClearDisplacementShader_Proxy( 
    IRdMaterialGeneric * This);


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


HRESULT STDMETHODCALLTYPE IRdMaterialGeneric_SetDefaultMaterial_Proxy( 
    IRdMaterialGeneric * This);


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


HRESULT STDMETHODCALLTYPE IRdMaterialGeneric_SetFallbackMaterial_Proxy( 
    IRdMaterialGeneric * This);


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



#endif 	/* __IRdMaterialGeneric_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1272 */
/* [local] */ 


enum RtMaterialGenColorType
    {	GENMAT_COLOR_PLAIN	= 0,
	GENMAT_COLOR_TEXTURE	= 1,
	GENMAT_COLOR_PROCEDURAL	= 2
    } ;

enum RtMaterialGenTransparencyType
    {	GENMAT_TRANSP_NONE	= 0,
	GENMAT_TRANSP_ALPHA	= 1,
	GENMAT_TRANSP_MAP	= 2,
	GENMAT_TRANSP_PROCEDURAL	= 3
    } ;

enum RtMaterialGenDisplacementType
    {	GENMAT_DISPLAC_NONE	= 0,
	GENMAT_DISPLAC_BUMPMAP	= 1,
	GENMAT_DISPLAC_NORMALMAP	= 2,
	GENMAT_DISPLAC_PROCEDURAL_BUMPMAP	= 3,
	GENMAT_DISPLAC_PROCEDURAL_NORMALMAP	= 4
    } ;

enum RtMaterialGenReflectanceType
    {	GENMAT_REFLECT_FLAT	= 0,
	GENMAT_REFLECT_DIFFUSE	= 1,
	GENMAT_REFLECT_PHONG	= 2,
	GENMAT_REFLECT_METAL	= 3,
	GENMAT_REFLECT_MIRROR	= 4,
	GENMAT_REFLECT_GLASS	= 5
    } ;

enum RtMaterialGenComponent
    {	GENMAT_COMPONENT_NONE	= 0,
	GENMAT_COMPONENT_COLOR	= 1,
	GENMAT_COMPONENT_REFLECTANCE	= 2,
	GENMAT_COMPONENT_TRANSPARENCY	= 4,
	GENMAT_COMPONENT_DISPLACEMENT	= 8,
	GENMAT_COMPONENT_ALL	= 15
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1272_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1272_v0_0_s_ifspec;

#ifndef __IRsMaterialGeneric_INTERFACE_DEFINED__
#define __IRsMaterialGeneric_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRsMaterialGeneric;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("297BEE4D-F35F-49e7-A12A-F076BD173C53")
    IRsMaterialGeneric : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMatClsId( 
            /* [in] */ RtMatClsId *pMatClsId) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetGenericDesc( 
            /* [out] */ IRdMaterialGeneric **pMaterialGen) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetUpdateCmdId( 
            /* [out] */ GUID *pCmdId) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockObject( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnlockObject( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE IsEqual( 
            /* [in] */ IRsMaterialGeneric *pGenericMat) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsMaterialGenericVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsMaterialGeneric * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsMaterialGeneric * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsMaterialGeneric * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMatClsId )( 
            IRsMaterialGeneric * This,
            /* [in] */ RtMatClsId *pMatClsId);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetGenericDesc )( 
            IRsMaterialGeneric * This,
            /* [out] */ IRdMaterialGeneric **pMaterialGen);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetUpdateCmdId )( 
            IRsMaterialGeneric * This,
            /* [out] */ GUID *pCmdId);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockObject )( 
            IRsMaterialGeneric * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnlockObject )( 
            IRsMaterialGeneric * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *IsEqual )( 
            IRsMaterialGeneric * This,
            /* [in] */ IRsMaterialGeneric *pGenericMat);
        
        END_INTERFACE
    } IRsMaterialGenericVtbl;

    interface IRsMaterialGeneric
    {
        CONST_VTBL struct IRsMaterialGenericVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IRsMaterialGeneric_GetMatClsId(This,pMatClsId)	\
    (This)->lpVtbl -> GetMatClsId(This,pMatClsId)

#define IRsMaterialGeneric_GetGenericDesc(This,pMaterialGen)	\
    (This)->lpVtbl -> GetGenericDesc(This,pMaterialGen)

#define IRsMaterialGeneric_GetUpdateCmdId(This,pCmdId)	\
    (This)->lpVtbl -> GetUpdateCmdId(This,pCmdId)

#define IRsMaterialGeneric_LockObject(This)	\
    (This)->lpVtbl -> LockObject(This)

#define IRsMaterialGeneric_UnlockObject(This)	\
    (This)->lpVtbl -> UnlockObject(This)

#define IRsMaterialGeneric_IsEqual(This,pGenericMat)	\
    (This)->lpVtbl -> IsEqual(This,pGenericMat)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsMaterialGeneric_GetMatClsId_Proxy( 
    IRsMaterialGeneric * This,
    /* [in] */ RtMatClsId *pMatClsId);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsMaterialGeneric_GetGenericDesc_Proxy( 
    IRsMaterialGeneric * This,
    /* [out] */ IRdMaterialGeneric **pMaterialGen);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsMaterialGeneric_GetUpdateCmdId_Proxy( 
    IRsMaterialGeneric * This,
    /* [out] */ GUID *pCmdId);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsMaterialGeneric_LockObject_Proxy( 
    IRsMaterialGeneric * This);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsMaterialGeneric_UnlockObject_Proxy( 
    IRsMaterialGeneric * This);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsMaterialGeneric_IsEqual_Proxy( 
    IRsMaterialGeneric * This,
    /* [in] */ IRsMaterialGeneric *pGenericMat);


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



#endif 	/* __IRsMaterialGeneric_INTERFACE_DEFINED__ */


#ifndef __IRsEnumMaterialItems_INTERFACE_DEFINED__
#define __IRsEnumMaterialItems_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRsEnumMaterialItems;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8C55BAF0-F059-4573-B6C1-1CE76300851F")
    IRsEnumMaterialItems : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Next( 
            /* [in] */ ULONG cShapes,
            /* [out] */ IRsMaterialGeneric **pMatGeneric,
            /* [out] */ ULONG *pcFetched) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Skip( 
            /* [in] */ ULONG cShapes) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Reset( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Clone( 
            /* [out] */ IRsEnumMaterialItems **ppEnum) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsEnumMaterialItemsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsEnumMaterialItems * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsEnumMaterialItems * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsEnumMaterialItems * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Next )( 
            IRsEnumMaterialItems * This,
            /* [in] */ ULONG cShapes,
            /* [out] */ IRsMaterialGeneric **pMatGeneric,
            /* [out] */ ULONG *pcFetched);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Skip )( 
            IRsEnumMaterialItems * This,
            /* [in] */ ULONG cShapes);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Reset )( 
            IRsEnumMaterialItems * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Clone )( 
            IRsEnumMaterialItems * This,
            /* [out] */ IRsEnumMaterialItems **ppEnum);
        
        END_INTERFACE
    } IRsEnumMaterialItemsVtbl;

    interface IRsEnumMaterialItems
    {
        CONST_VTBL struct IRsEnumMaterialItemsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IRsEnumMaterialItems_Next(This,cShapes,pMatGeneric,pcFetched)	\
    (This)->lpVtbl -> Next(This,cShapes,pMatGeneric,pcFetched)

#define IRsEnumMaterialItems_Skip(This,cShapes)	\
    (This)->lpVtbl -> Skip(This,cShapes)

#define IRsEnumMaterialItems_Reset(This)	\
    (This)->lpVtbl -> Reset(This)

#define IRsEnumMaterialItems_Clone(This,ppEnum)	\
    (This)->lpVtbl -> Clone(This,ppEnum)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsEnumMaterialItems_Next_Proxy( 
    IRsEnumMaterialItems * This,
    /* [in] */ ULONG cShapes,
    /* [out] */ IRsMaterialGeneric **pMatGeneric,
    /* [out] */ ULONG *pcFetched);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsEnumMaterialItems_Skip_Proxy( 
    IRsEnumMaterialItems * This,
    /* [in] */ ULONG cShapes);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsEnumMaterialItems_Reset_Proxy( 
    IRsEnumMaterialItems * This);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsEnumMaterialItems_Clone_Proxy( 
    IRsEnumMaterialItems * This,
    /* [out] */ IRsEnumMaterialItems **ppEnum);


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



#endif 	/* __IRsEnumMaterialItems_INTERFACE_DEFINED__ */


#ifndef __IRnEulerTransform_INTERFACE_DEFINED__
#define __IRnEulerTransform_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRnEulerTransform;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B386099D-8ADA-4130-A0BC-7F7F75D437C9")
    IRnEulerTransform : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ExportTranslation( 
            /* [in] */ IRsNode *spRootNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ExportRotation( 
            /* [in] */ IRsNode *spRootNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ExportScaling( 
            /* [in] */ IRsNode *spRootNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ExportShear( 
            /* [in] */ IRsNode *spRootNode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnEulerTransformVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnEulerTransform * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnEulerTransform * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnEulerTransform * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ExportTranslation )( 
            IRnEulerTransform * This,
            /* [in] */ IRsNode *spRootNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ExportRotation )( 
            IRnEulerTransform * This,
            /* [in] */ IRsNode *spRootNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ExportScaling )( 
            IRnEulerTransform * This,
            /* [in] */ IRsNode *spRootNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ExportShear )( 
            IRnEulerTransform * This,
            /* [in] */ IRsNode *spRootNode);
        
        END_INTERFACE
    } IRnEulerTransformVtbl;

    interface IRnEulerTransform
    {
        CONST_VTBL struct IRnEulerTransformVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IRnEulerTransform_ExportTranslation(This,spRootNode)	\
    (This)->lpVtbl -> ExportTranslation(This,spRootNode)

#define IRnEulerTransform_ExportRotation(This,spRootNode)	\
    (This)->lpVtbl -> ExportRotation(This,spRootNode)

#define IRnEulerTransform_ExportScaling(This,spRootNode)	\
    (This)->lpVtbl -> ExportScaling(This,spRootNode)

#define IRnEulerTransform_ExportShear(This,spRootNode)	\
    (This)->lpVtbl -> ExportShear(This,spRootNode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnEulerTransform_ExportTranslation_Proxy( 
    IRnEulerTransform * This,
    /* [in] */ IRsNode *spRootNode);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnEulerTransform_ExportRotation_Proxy( 
    IRnEulerTransform * This,
    /* [in] */ IRsNode *spRootNode);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnEulerTransform_ExportScaling_Proxy( 
    IRnEulerTransform * This,
    /* [in] */ IRsNode *spRootNode);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnEulerTransform_ExportShear_Proxy( 
    IRnEulerTransform * This,
    /* [in] */ IRsNode *spRootNode);


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



#endif 	/* __IRnEulerTransform_INTERFACE_DEFINED__ */


#ifndef __IRdFloatArray_INTERFACE_DEFINED__
#define __IRdFloatArray_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdFloatArray;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("511DA278-E5B9-496B-8CC2-BD6177881E05")
    IRdFloatArray : public IRsObject
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockData( 
            /* [retval][out] */ RtFloat **ppfData) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnLockData( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDesc( 
            /* [out] */ RtNumArrayDesc *pDesc) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSize( 
            /* [in] */ RtUlong cNewSize) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FreeExtra( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ RtUlong index,
            /* [retval][out] */ RtFloat *pData) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetAt( 
            /* [in] */ RtUlong index,
            /* [in] */ RtFloat value) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSize( 
            /* [retval][out] */ RtUlong *pSize) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ RtFloat newVal,
            /* [retval][out] */ RtUlong *index) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdFloatArrayVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdFloatArray * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdFloatArray * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdFloatArray * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRdFloatArray * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRdFloatArray * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockData )( 
            IRdFloatArray * This,
            /* [retval][out] */ RtFloat **ppfData);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnLockData )( 
            IRdFloatArray * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDesc )( 
            IRdFloatArray * This,
            /* [out] */ RtNumArrayDesc *pDesc);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSize )( 
            IRdFloatArray * This,
            /* [in] */ RtUlong cNewSize);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FreeExtra )( 
            IRdFloatArray * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdFloatArray * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            IRdFloatArray * This,
            /* [in] */ RtUlong index,
            /* [retval][out] */ RtFloat *pData);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetAt )( 
            IRdFloatArray * This,
            /* [in] */ RtUlong index,
            /* [in] */ RtFloat value);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSize )( 
            IRdFloatArray * This,
            /* [retval][out] */ RtUlong *pSize);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            IRdFloatArray * This,
            /* [in] */ RtFloat newVal,
            /* [retval][out] */ RtUlong *index);
        
        END_INTERFACE
    } IRdFloatArrayVtbl;

    interface IRdFloatArray
    {
        CONST_VTBL struct IRdFloatArrayVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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


#define IRdFloatArray_LockData(This,ppfData)	\
    (This)->lpVtbl -> LockData(This,ppfData)

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

#define IRdFloatArray_GetDesc(This,pDesc)	\
    (This)->lpVtbl -> GetDesc(This,pDesc)

#define IRdFloatArray_SetSize(This,cNewSize)	\
    (This)->lpVtbl -> SetSize(This,cNewSize)

#define IRdFloatArray_FreeExtra(This)	\
    (This)->lpVtbl -> FreeExtra(This)

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

#define IRdFloatArray_GetAt(This,index,pData)	\
    (This)->lpVtbl -> GetAt(This,index,pData)

#define IRdFloatArray_SetAt(This,index,value)	\
    (This)->lpVtbl -> SetAt(This,index,value)

#define IRdFloatArray_GetSize(This,pSize)	\
    (This)->lpVtbl -> GetSize(This,pSize)

#define IRdFloatArray_Add(This,newVal,index)	\
    (This)->lpVtbl -> Add(This,newVal,index)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdFloatArray_LockData_Proxy( 
    IRdFloatArray * This,
    /* [retval][out] */ RtFloat **ppfData);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdFloatArray_UnLockData_Proxy( 
    IRdFloatArray * This);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdFloatArray_GetDesc_Proxy( 
    IRdFloatArray * This,
    /* [out] */ RtNumArrayDesc *pDesc);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdFloatArray_SetSize_Proxy( 
    IRdFloatArray * This,
    /* [in] */ RtUlong cNewSize);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdFloatArray_FreeExtra_Proxy( 
    IRdFloatArray * This);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdFloatArray_Clear_Proxy( 
    IRdFloatArray * This);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdFloatArray_GetAt_Proxy( 
    IRdFloatArray * This,
    /* [in] */ RtUlong index,
    /* [retval][out] */ RtFloat *pData);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdFloatArray_SetAt_Proxy( 
    IRdFloatArray * This,
    /* [in] */ RtUlong index,
    /* [in] */ RtFloat value);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdFloatArray_GetSize_Proxy( 
    IRdFloatArray * This,
    /* [retval][out] */ RtUlong *pSize);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdFloatArray_Add_Proxy( 
    IRdFloatArray * This,
    /* [in] */ RtFloat newVal,
    /* [retval][out] */ RtUlong *index);


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



#endif 	/* __IRdFloatArray_INTERFACE_DEFINED__ */


#ifndef __IRsStreamData_INTERFACE_DEFINED__
#define __IRsStreamData_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRsStreamData;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("AFF2C1E1-2077-4ea4-849D-D0FC05DBF98F")
    IRsStreamData : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

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

    interface IRsStreamData
    {
        CONST_VTBL struct IRsStreamDataVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsStreamData_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1277 */
/* [local] */ 

typedef 
enum _tagRtMeshStreamFlags
    {	MFLG_DEFAULT	= 0,
	MFLG_READONLY	= 1,
	MFLG_WILLOVERWRITE	= 2,
	MFLG_FORCE_DWORD	= -1
    } 	RtMeshStreamFlags;



extern RPC_IF_HANDLE __MIDL_itf__Space3D_1277_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1277_v0_0_s_ifspec;

#ifndef __IRsGenStream_INTERFACE_DEFINED__
#define __IRsGenStream_INTERFACE_DEFINED__

/* interface IRsGenStream */
/* [unique][helpstring][uuid][local][object] */ 


EXTERN_C const IID IID_IRsGenStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("139D4F46-9E46-4c1c-959A-36F630E1188C")
    IRsGenStream : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Reset( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetStreamId( 
            /* [retval][out] */ RtStreamId *pStreamId) = 0;
        
        virtual /* [helpstring] */ RtDWORD STDMETHODCALLTYPE GetNumItems( void) = 0;
        
        virtual /* [helpstring] */ RtDWORD STDMETHODCALLTYPE GetItemSize( void) = 0;
        
        virtual /* [helpstring] */ RtDWORD STDMETHODCALLTYPE GetTimeStamp( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Manage( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Unmanage( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetNumItems( 
            /* [in] */ RtDWORD dwNumElems) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockStream( 
            /* [in] */ RtDWORD dwFlags,
            /* [out] */ void **ppData) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnLockStream( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsGenStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsGenStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsGenStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsGenStream * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Reset )( 
            IRsGenStream * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetStreamId )( 
            IRsGenStream * This,
            /* [retval][out] */ RtStreamId *pStreamId);
        
        /* [helpstring] */ RtDWORD ( STDMETHODCALLTYPE *GetNumItems )( 
            IRsGenStream * This);
        
        /* [helpstring] */ RtDWORD ( STDMETHODCALLTYPE *GetItemSize )( 
            IRsGenStream * This);
        
        /* [helpstring] */ RtDWORD ( STDMETHODCALLTYPE *GetTimeStamp )( 
            IRsGenStream * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Manage )( 
            IRsGenStream * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Unmanage )( 
            IRsGenStream * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetNumItems )( 
            IRsGenStream * This,
            /* [in] */ RtDWORD dwNumElems);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockStream )( 
            IRsGenStream * This,
            /* [in] */ RtDWORD dwFlags,
            /* [out] */ void **ppData);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnLockStream )( 
            IRsGenStream * This);
        
        END_INTERFACE
    } IRsGenStreamVtbl;

    interface IRsGenStream
    {
        CONST_VTBL struct IRsGenStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IRsGenStream_Reset(This)	\
    (This)->lpVtbl -> Reset(This)

#define IRsGenStream_GetStreamId(This,pStreamId)	\
    (This)->lpVtbl -> GetStreamId(This,pStreamId)

#define IRsGenStream_GetNumItems(This)	\
    (This)->lpVtbl -> GetNumItems(This)

#define IRsGenStream_GetItemSize(This)	\
    (This)->lpVtbl -> GetItemSize(This)

#define IRsGenStream_GetTimeStamp(This)	\
    (This)->lpVtbl -> GetTimeStamp(This)

#define IRsGenStream_Manage(This)	\
    (This)->lpVtbl -> Manage(This)

#define IRsGenStream_Unmanage(This)	\
    (This)->lpVtbl -> Unmanage(This)

#define IRsGenStream_SetNumItems(This,dwNumElems)	\
    (This)->lpVtbl -> SetNumItems(This,dwNumElems)

#define IRsGenStream_LockStream(This,dwFlags,ppData)	\
    (This)->lpVtbl -> LockStream(This,dwFlags,ppData)

#define IRsGenStream_UnLockStream(This)	\
    (This)->lpVtbl -> UnLockStream(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsGenStream_Reset_Proxy( 
    IRsGenStream * This);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsGenStream_GetStreamId_Proxy( 
    IRsGenStream * This,
    /* [retval][out] */ RtStreamId *pStreamId);


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


/* [helpstring] */ RtDWORD STDMETHODCALLTYPE IRsGenStream_GetNumItems_Proxy( 
    IRsGenStream * This);


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


/* [helpstring] */ RtDWORD STDMETHODCALLTYPE IRsGenStream_GetItemSize_Proxy( 
    IRsGenStream * This);


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


/* [helpstring] */ RtDWORD STDMETHODCALLTYPE IRsGenStream_GetTimeStamp_Proxy( 
    IRsGenStream * This);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsGenStream_Manage_Proxy( 
    IRsGenStream * This);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsGenStream_Unmanage_Proxy( 
    IRsGenStream * This);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsGenStream_SetNumItems_Proxy( 
    IRsGenStream * This,
    /* [in] */ RtDWORD dwNumElems);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsGenStream_LockStream_Proxy( 
    IRsGenStream * This,
    /* [in] */ RtDWORD dwFlags,
    /* [out] */ void **ppData);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsGenStream_UnLockStream_Proxy( 
    IRsGenStream * This);


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



#endif 	/* __IRsGenStream_INTERFACE_DEFINED__ */


#ifndef __IRdStreamGroup_INTERFACE_DEFINED__
#define __IRdStreamGroup_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdStreamGroup;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("AF2D3828-F7D2-4873-A5C9-280F5B0FA256")
    IRdStreamGroup : public IUnknown
    {
    public:
        virtual /* [helpstring][local] */ HRESULT STDMETHODCALLTYPE LockStream( 
            /* [in] */ RtStreamId idStream,
            /* [in] */ RtDWORD dwFlags,
            /* [out] */ void **ppDataStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnLockStream( 
            /* [in] */ RtStreamId idStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AttachStream( 
            /* [in] */ IRsGenStream *pGenStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DetachStream( 
            /* [in] */ RtStreamId idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteStream( 
            /* [in] */ RtStreamId idStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetStream( 
            /* [in] */ RtStreamId idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetStreamByName( 
            /* [in] */ BSTR idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNumElements( 
            /* [retval][out] */ RtDWORD *dwNumElements) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetNumElements( 
            /* [in] */ RtDWORD dwNumElements) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNumStreams( 
            /* [retval][out] */ RtDWORD *pdwNumElements) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetStreamByIndex( 
            /* [in] */ RtDWORD dwStreamIndex,
            /* [retval][out] */ IRsGenStream **ppGenStream) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdStreamGroupVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdStreamGroup * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdStreamGroup * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdStreamGroup * This);
        
        /* [helpstring][local] */ HRESULT ( STDMETHODCALLTYPE *LockStream )( 
            IRdStreamGroup * This,
            /* [in] */ RtStreamId idStream,
            /* [in] */ RtDWORD dwFlags,
            /* [out] */ void **ppDataStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnLockStream )( 
            IRdStreamGroup * This,
            /* [in] */ RtStreamId idStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AttachStream )( 
            IRdStreamGroup * This,
            /* [in] */ IRsGenStream *pGenStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DetachStream )( 
            IRdStreamGroup * This,
            /* [in] */ RtStreamId idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteStream )( 
            IRdStreamGroup * This,
            /* [in] */ RtStreamId idStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetStream )( 
            IRdStreamGroup * This,
            /* [in] */ RtStreamId idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetStreamByName )( 
            IRdStreamGroup * This,
            /* [in] */ BSTR idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNumElements )( 
            IRdStreamGroup * This,
            /* [retval][out] */ RtDWORD *dwNumElements);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetNumElements )( 
            IRdStreamGroup * This,
            /* [in] */ RtDWORD dwNumElements);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNumStreams )( 
            IRdStreamGroup * This,
            /* [retval][out] */ RtDWORD *pdwNumElements);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetStreamByIndex )( 
            IRdStreamGroup * This,
            /* [in] */ RtDWORD dwStreamIndex,
            /* [retval][out] */ IRsGenStream **ppGenStream);
        
        END_INTERFACE
    } IRdStreamGroupVtbl;

    interface IRdStreamGroup
    {
        CONST_VTBL struct IRdStreamGroupVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IRdStreamGroup_LockStream(This,idStream,dwFlags,ppDataStream)	\
    (This)->lpVtbl -> LockStream(This,idStream,dwFlags,ppDataStream)

#define IRdStreamGroup_UnLockStream(This,idStream)	\
    (This)->lpVtbl -> UnLockStream(This,idStream)

#define IRdStreamGroup_AttachStream(This,pGenStream)	\
    (This)->lpVtbl -> AttachStream(This,pGenStream)

#define IRdStreamGroup_DetachStream(This,idStream,ppGenStream)	\
    (This)->lpVtbl -> DetachStream(This,idStream,ppGenStream)

#define IRdStreamGroup_DeleteStream(This,idStream)	\
    (This)->lpVtbl -> DeleteStream(This,idStream)

#define IRdStreamGroup_GetStream(This,idStream,ppGenStream)	\
    (This)->lpVtbl -> GetStream(This,idStream,ppGenStream)

#define IRdStreamGroup_GetStreamByName(This,idStream,ppGenStream)	\
    (This)->lpVtbl -> GetStreamByName(This,idStream,ppGenStream)

#define IRdStreamGroup_GetNumElements(This,dwNumElements)	\
    (This)->lpVtbl -> GetNumElements(This,dwNumElements)

#define IRdStreamGroup_SetNumElements(This,dwNumElements)	\
    (This)->lpVtbl -> SetNumElements(This,dwNumElements)

#define IRdStreamGroup_GetNumStreams(This,pdwNumElements)	\
    (This)->lpVtbl -> GetNumStreams(This,pdwNumElements)

#define IRdStreamGroup_GetStreamByIndex(This,dwStreamIndex,ppGenStream)	\
    (This)->lpVtbl -> GetStreamByIndex(This,dwStreamIndex,ppGenStream)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][local] */ HRESULT STDMETHODCALLTYPE IRdStreamGroup_LockStream_Proxy( 
    IRdStreamGroup * This,
    /* [in] */ RtStreamId idStream,
    /* [in] */ RtDWORD dwFlags,
    /* [out] */ void **ppDataStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdStreamGroup_UnLockStream_Proxy( 
    IRdStreamGroup * This,
    /* [in] */ RtStreamId idStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdStreamGroup_AttachStream_Proxy( 
    IRdStreamGroup * This,
    /* [in] */ IRsGenStream *pGenStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdStreamGroup_DetachStream_Proxy( 
    IRdStreamGroup * This,
    /* [in] */ RtStreamId idStream,
    /* [retval][out] */ IRsGenStream **ppGenStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdStreamGroup_DeleteStream_Proxy( 
    IRdStreamGroup * This,
    /* [in] */ RtStreamId idStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdStreamGroup_GetStream_Proxy( 
    IRdStreamGroup * This,
    /* [in] */ RtStreamId idStream,
    /* [retval][out] */ IRsGenStream **ppGenStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdStreamGroup_GetStreamByName_Proxy( 
    IRdStreamGroup * This,
    /* [in] */ BSTR idStream,
    /* [retval][out] */ IRsGenStream **ppGenStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdStreamGroup_GetNumElements_Proxy( 
    IRdStreamGroup * This,
    /* [retval][out] */ RtDWORD *dwNumElements);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdStreamGroup_SetNumElements_Proxy( 
    IRdStreamGroup * This,
    /* [in] */ RtDWORD dwNumElements);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdStreamGroup_GetNumStreams_Proxy( 
    IRdStreamGroup * This,
    /* [retval][out] */ RtDWORD *pdwNumElements);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdStreamGroup_GetStreamByIndex_Proxy( 
    IRdStreamGroup * This,
    /* [in] */ RtDWORD dwStreamIndex,
    /* [retval][out] */ IRsGenStream **ppGenStream);


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



#endif 	/* __IRdStreamGroup_INTERFACE_DEFINED__ */


#ifndef __IRdStreamGroupDisp_INTERFACE_DEFINED__
#define __IRdStreamGroupDisp_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdStreamGroupDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8c2d05a4-6495-471a-8af1-bdeb885968ff")
    IRdStreamGroupDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumElements( 
            /* [retval][out] */ RtDWORD *dwNumElements) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumElements( 
            /* [in] */ RtDWORD dwNumElements) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumStreams( 
            /* [retval][out] */ RtDWORD *pdwNumElements) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdStreamGroupDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdStreamGroupDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdStreamGroupDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdStreamGroupDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdStreamGroupDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdStreamGroupDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdStreamGroupDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdStreamGroupDisp * 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 *GetNumElements )( 
            IRdStreamGroupDisp * This,
            /* [retval][out] */ RtDWORD *dwNumElements);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumElements )( 
            IRdStreamGroupDisp * This,
            /* [in] */ RtDWORD dwNumElements);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNumStreams )( 
            IRdStreamGroupDisp * This,
            /* [retval][out] */ RtDWORD *pdwNumElements);
        
        END_INTERFACE
    } IRdStreamGroupDispVtbl;

    interface IRdStreamGroupDisp
    {
        CONST_VTBL struct IRdStreamGroupDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdStreamGroupDisp_GetNumElements(This,dwNumElements)	\
    (This)->lpVtbl -> GetNumElements(This,dwNumElements)

#define IRdStreamGroupDisp_SetNumElements(This,dwNumElements)	\
    (This)->lpVtbl -> SetNumElements(This,dwNumElements)

#define IRdStreamGroupDisp_GetNumStreams(This,pdwNumElements)	\
    (This)->lpVtbl -> GetNumStreams(This,pdwNumElements)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdStreamGroupDisp_GetNumElements_Proxy( 
    IRdStreamGroupDisp * This,
    /* [retval][out] */ RtDWORD *dwNumElements);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdStreamGroupDisp_SetNumElements_Proxy( 
    IRdStreamGroupDisp * This,
    /* [in] */ RtDWORD dwNumElements);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdStreamGroupDisp_GetNumStreams_Proxy( 
    IRdStreamGroupDisp * This,
    /* [retval][out] */ RtDWORD *pdwNumElements);


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



#endif 	/* __IRdStreamGroupDisp_INTERFACE_DEFINED__ */


#ifndef __IRdVertexStream_INTERFACE_DEFINED__
#define __IRdVertexStream_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdVertexStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2A8AB8D9-87C4-49FB-BFA8-11EA0EC44337")
    IRdVertexStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumVertices( 
            /* [retval][out] */ RtDWORD *dwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumVertices( 
            /* [in] */ RtDWORD dwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE BeginWrite( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EndWrite( void) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_x( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_x( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_y( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_y( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_z( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_z( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdVertexStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdVertexStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdVertexStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdVertexStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdVertexStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdVertexStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdVertexStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdVertexStream * 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 *GetNumVertices )( 
            IRdVertexStream * This,
            /* [retval][out] */ RtDWORD *dwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumVertices )( 
            IRdVertexStream * This,
            /* [in] */ RtDWORD dwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *BeginWrite )( 
            IRdVertexStream * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EndWrite )( 
            IRdVertexStream * This);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_x )( 
            IRdVertexStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_x )( 
            IRdVertexStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_y )( 
            IRdVertexStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_y )( 
            IRdVertexStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_z )( 
            IRdVertexStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_z )( 
            IRdVertexStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        END_INTERFACE
    } IRdVertexStreamVtbl;

    interface IRdVertexStream
    {
        CONST_VTBL struct IRdVertexStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdVertexStream_GetNumVertices(This,dwNumVertices)	\
    (This)->lpVtbl -> GetNumVertices(This,dwNumVertices)

#define IRdVertexStream_SetNumVertices(This,dwNumVertices)	\
    (This)->lpVtbl -> SetNumVertices(This,dwNumVertices)

#define IRdVertexStream_BeginWrite(This)	\
    (This)->lpVtbl -> BeginWrite(This)

#define IRdVertexStream_EndWrite(This)	\
    (This)->lpVtbl -> EndWrite(This)

#define IRdVertexStream_get_x(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_x(This,dwIndex,pVal)

#define IRdVertexStream_put_x(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_x(This,dwIndex,newVal)

#define IRdVertexStream_get_y(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_y(This,dwIndex,pVal)

#define IRdVertexStream_put_y(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_y(This,dwIndex,newVal)

#define IRdVertexStream_get_z(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_z(This,dwIndex,pVal)

#define IRdVertexStream_put_z(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_z(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexStream_GetNumVertices_Proxy( 
    IRdVertexStream * This,
    /* [retval][out] */ RtDWORD *dwNumVertices);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexStream_SetNumVertices_Proxy( 
    IRdVertexStream * This,
    /* [in] */ RtDWORD dwNumVertices);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexStream_BeginWrite_Proxy( 
    IRdVertexStream * This);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexStream_EndWrite_Proxy( 
    IRdVertexStream * This);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexStream_get_x_Proxy( 
    IRdVertexStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexStream_put_x_Proxy( 
    IRdVertexStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexStream_get_y_Proxy( 
    IRdVertexStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexStream_put_y_Proxy( 
    IRdVertexStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexStream_get_z_Proxy( 
    IRdVertexStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexStream_put_z_Proxy( 
    IRdVertexStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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



#endif 	/* __IRdVertexStream_INTERFACE_DEFINED__ */


#ifndef __IRdVertexNormalsStream_INTERFACE_DEFINED__
#define __IRdVertexNormalsStream_INTERFACE_DEFINED__

/* interface IRdVertexNormalsStream */
/* [unique][helpstring][object][uuid][local] */ 


EXTERN_C const IID IID_IRdVertexNormalsStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2A36F570-648D-4b36-A75E-F43C36EFAADB")
    IRdVertexNormalsStream : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNumVertexNormals( 
            /* [retval][out] */ RtDWORD *dwNumVertices) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetNumVertexNormals( 
            /* [in] */ RtDWORD dwNumVertexNormals) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_x( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_x( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_y( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_y( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_z( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_z( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetupTimestamps( 
            /* [in] */ IUnknown *pMesh) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdVertexNormalsStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdVertexNormalsStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdVertexNormalsStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdVertexNormalsStream * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNumVertexNormals )( 
            IRdVertexNormalsStream * This,
            /* [retval][out] */ RtDWORD *dwNumVertices);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetNumVertexNormals )( 
            IRdVertexNormalsStream * This,
            /* [in] */ RtDWORD dwNumVertexNormals);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_x )( 
            IRdVertexNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_x )( 
            IRdVertexNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_y )( 
            IRdVertexNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_y )( 
            IRdVertexNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_z )( 
            IRdVertexNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_z )( 
            IRdVertexNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetupTimestamps )( 
            IRdVertexNormalsStream * This,
            /* [in] */ IUnknown *pMesh);
        
        END_INTERFACE
    } IRdVertexNormalsStreamVtbl;

    interface IRdVertexNormalsStream
    {
        CONST_VTBL struct IRdVertexNormalsStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IRdVertexNormalsStream_GetNumVertexNormals(This,dwNumVertices)	\
    (This)->lpVtbl -> GetNumVertexNormals(This,dwNumVertices)

#define IRdVertexNormalsStream_SetNumVertexNormals(This,dwNumVertexNormals)	\
    (This)->lpVtbl -> SetNumVertexNormals(This,dwNumVertexNormals)

#define IRdVertexNormalsStream_get_x(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_x(This,dwIndex,pVal)

#define IRdVertexNormalsStream_put_x(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_x(This,dwIndex,newVal)

#define IRdVertexNormalsStream_get_y(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_y(This,dwIndex,pVal)

#define IRdVertexNormalsStream_put_y(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_y(This,dwIndex,newVal)

#define IRdVertexNormalsStream_get_z(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_z(This,dwIndex,pVal)

#define IRdVertexNormalsStream_put_z(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_z(This,dwIndex,newVal)

#define IRdVertexNormalsStream_SetupTimestamps(This,pMesh)	\
    (This)->lpVtbl -> SetupTimestamps(This,pMesh)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdVertexNormalsStream_GetNumVertexNormals_Proxy( 
    IRdVertexNormalsStream * This,
    /* [retval][out] */ RtDWORD *dwNumVertices);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdVertexNormalsStream_SetNumVertexNormals_Proxy( 
    IRdVertexNormalsStream * This,
    /* [in] */ RtDWORD dwNumVertexNormals);


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


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexNormalsStream_get_x_Proxy( 
    IRdVertexNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexNormalsStream_put_x_Proxy( 
    IRdVertexNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexNormalsStream_get_y_Proxy( 
    IRdVertexNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexNormalsStream_put_y_Proxy( 
    IRdVertexNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexNormalsStream_get_z_Proxy( 
    IRdVertexNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexNormalsStream_put_z_Proxy( 
    IRdVertexNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [local] */ HRESULT STDMETHODCALLTYPE IRdVertexNormalsStream_SetupTimestamps_Proxy( 
    IRdVertexNormalsStream * This,
    /* [in] */ IUnknown *pMesh);


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



#endif 	/* __IRdVertexNormalsStream_INTERFACE_DEFINED__ */


#ifndef __IRdVertexNormalsStreamDisp_INTERFACE_DEFINED__
#define __IRdVertexNormalsStreamDisp_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdVertexNormalsStreamDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A6893CF3-AFB0-4ce7-805A-97EF2D38FEA3")
    IRdVertexNormalsStreamDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumVertexNormals( 
            /* [retval][out] */ RtDWORD *dwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumVertexNormals( 
            /* [in] */ RtDWORD dwNumVertexNormals) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_x( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_x( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_y( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_y( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_z( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_z( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdVertexNormalsStreamDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdVertexNormalsStreamDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdVertexNormalsStreamDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdVertexNormalsStreamDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdVertexNormalsStreamDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdVertexNormalsStreamDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdVertexNormalsStreamDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdVertexNormalsStreamDisp * 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 *GetNumVertexNormals )( 
            IRdVertexNormalsStreamDisp * This,
            /* [retval][out] */ RtDWORD *dwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumVertexNormals )( 
            IRdVertexNormalsStreamDisp * This,
            /* [in] */ RtDWORD dwNumVertexNormals);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_x )( 
            IRdVertexNormalsStreamDisp * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_x )( 
            IRdVertexNormalsStreamDisp * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_y )( 
            IRdVertexNormalsStreamDisp * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_y )( 
            IRdVertexNormalsStreamDisp * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_z )( 
            IRdVertexNormalsStreamDisp * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_z )( 
            IRdVertexNormalsStreamDisp * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        END_INTERFACE
    } IRdVertexNormalsStreamDispVtbl;

    interface IRdVertexNormalsStreamDisp
    {
        CONST_VTBL struct IRdVertexNormalsStreamDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdVertexNormalsStreamDisp_GetNumVertexNormals(This,dwNumVertices)	\
    (This)->lpVtbl -> GetNumVertexNormals(This,dwNumVertices)

#define IRdVertexNormalsStreamDisp_SetNumVertexNormals(This,dwNumVertexNormals)	\
    (This)->lpVtbl -> SetNumVertexNormals(This,dwNumVertexNormals)

#define IRdVertexNormalsStreamDisp_get_x(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_x(This,dwIndex,pVal)

#define IRdVertexNormalsStreamDisp_put_x(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_x(This,dwIndex,newVal)

#define IRdVertexNormalsStreamDisp_get_y(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_y(This,dwIndex,pVal)

#define IRdVertexNormalsStreamDisp_put_y(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_y(This,dwIndex,newVal)

#define IRdVertexNormalsStreamDisp_get_z(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_z(This,dwIndex,pVal)

#define IRdVertexNormalsStreamDisp_put_z(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_z(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexNormalsStreamDisp_GetNumVertexNormals_Proxy( 
    IRdVertexNormalsStreamDisp * This,
    /* [retval][out] */ RtDWORD *dwNumVertices);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexNormalsStreamDisp_SetNumVertexNormals_Proxy( 
    IRdVertexNormalsStreamDisp * This,
    /* [in] */ RtDWORD dwNumVertexNormals);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexNormalsStreamDisp_get_x_Proxy( 
    IRdVertexNormalsStreamDisp * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexNormalsStreamDisp_put_x_Proxy( 
    IRdVertexNormalsStreamDisp * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexNormalsStreamDisp_get_y_Proxy( 
    IRdVertexNormalsStreamDisp * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexNormalsStreamDisp_put_y_Proxy( 
    IRdVertexNormalsStreamDisp * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexNormalsStreamDisp_get_z_Proxy( 
    IRdVertexNormalsStreamDisp * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexNormalsStreamDisp_put_z_Proxy( 
    IRdVertexNormalsStreamDisp * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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



#endif 	/* __IRdVertexNormalsStreamDisp_INTERFACE_DEFINED__ */


#ifndef __IRdTriangleStream_INTERFACE_DEFINED__
#define __IRdTriangleStream_INTERFACE_DEFINED__

/* interface IRdTriangleStream */
/* [unique][helpstring][dual][uuid][local][object] */ 


EXTERN_C const IID IID_IRdTriangleStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0B2A680A-369C-48c7-B3F4-3F424A13ACF6")
    IRdTriangleStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumTripleIndices( 
            /* [retval][out] */ RtDWORD *dwNumTripleIndices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumTripleIndices( 
            /* [in] */ RtDWORD dwNumTripleIndices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE BeginWrite( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EndWrite( void) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_i( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_i( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_j( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_j( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_k( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_k( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdTriangleStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdTriangleStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdTriangleStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdTriangleStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdTriangleStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdTriangleStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdTriangleStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdTriangleStream * 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 *GetNumTripleIndices )( 
            IRdTriangleStream * This,
            /* [retval][out] */ RtDWORD *dwNumTripleIndices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumTripleIndices )( 
            IRdTriangleStream * This,
            /* [in] */ RtDWORD dwNumTripleIndices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *BeginWrite )( 
            IRdTriangleStream * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EndWrite )( 
            IRdTriangleStream * This);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_i )( 
            IRdTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_i )( 
            IRdTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_j )( 
            IRdTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_j )( 
            IRdTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_k )( 
            IRdTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_k )( 
            IRdTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        END_INTERFACE
    } IRdTriangleStreamVtbl;

    interface IRdTriangleStream
    {
        CONST_VTBL struct IRdTriangleStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdTriangleStream_GetNumTripleIndices(This,dwNumTripleIndices)	\
    (This)->lpVtbl -> GetNumTripleIndices(This,dwNumTripleIndices)

#define IRdTriangleStream_SetNumTripleIndices(This,dwNumTripleIndices)	\
    (This)->lpVtbl -> SetNumTripleIndices(This,dwNumTripleIndices)

#define IRdTriangleStream_BeginWrite(This)	\
    (This)->lpVtbl -> BeginWrite(This)

#define IRdTriangleStream_EndWrite(This)	\
    (This)->lpVtbl -> EndWrite(This)

#define IRdTriangleStream_get_i(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_i(This,dwIndex,pVal)

#define IRdTriangleStream_put_i(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_i(This,dwIndex,newVal)

#define IRdTriangleStream_get_j(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_j(This,dwIndex,pVal)

#define IRdTriangleStream_put_j(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_j(This,dwIndex,newVal)

#define IRdTriangleStream_get_k(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_k(This,dwIndex,pVal)

#define IRdTriangleStream_put_k(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_k(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleStream_GetNumTripleIndices_Proxy( 
    IRdTriangleStream * This,
    /* [retval][out] */ RtDWORD *dwNumTripleIndices);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleStream_SetNumTripleIndices_Proxy( 
    IRdTriangleStream * This,
    /* [in] */ RtDWORD dwNumTripleIndices);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleStream_BeginWrite_Proxy( 
    IRdTriangleStream * This);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleStream_EndWrite_Proxy( 
    IRdTriangleStream * This);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTriangleStream_get_i_Proxy( 
    IRdTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTriangleStream_put_i_Proxy( 
    IRdTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTriangleStream_get_j_Proxy( 
    IRdTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTriangleStream_put_j_Proxy( 
    IRdTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTriangleStream_get_k_Proxy( 
    IRdTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTriangleStream_put_k_Proxy( 
    IRdTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


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



#endif 	/* __IRdTriangleStream_INTERFACE_DEFINED__ */


#ifndef __IRdMesh_INTERFACE_DEFINED__
#define __IRdMesh_INTERFACE_DEFINED__

/* interface IRdMesh */
/* [unique][helpstring][object][uuid][local] */ 


EXTERN_C const IID IID_IRdMesh;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FC933ED4-3557-4066-8F9D-2896E49088C9")
    IRdMesh : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Create( 
            /* [in] */ IRsGenStream *pVerticesStream,
            /* [in] */ IRsGenStream *pTrianglesStream,
            /* [in] */ IRsGenStream *pFacesStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetVerticesStreamGroup( 
            /* [retval][out] */ IRdStreamGroup **ppVerticesStreamGrp) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetVerticesStreamGroup( 
            /* [in] */ IRdStreamGroup *pVerticesStreamGrp) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetTrianglesStreamGroup( 
            /* [retval][out] */ IRdStreamGroup **ppTrianglesStreamGrp) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetTrianglesStreamGroup( 
            /* [in] */ IRdStreamGroup *pTrianglesStreamGrp) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFacesStreamGroup( 
            /* [retval][out] */ IRdStreamGroup **ppFacesStreamGrp) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetFacesStreamGroup( 
            /* [in] */ IRdStreamGroup *pFacesStreamGrp) = 0;
        
        virtual /* [helpstring] */ RtDWORD STDMETHODCALLTYPE GetNumVertices( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetNumVertices( 
            /* [in] */ RtDWORD dwNumVertices) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockVerticesStream( 
            /* [in] */ RtStreamId idStream,
            /* [in] */ RtDWORD dwFlags,
            /* [retval][out] */ void **ppVerticesStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnLockVerticesStream( 
            /* [in] */ RtStreamId idStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AttachVerticesStream( 
            /* [in] */ IRsGenStream *pGenStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteVerticesStream( 
            /* [in] */ RtStreamId idStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DetachVerticesStream( 
            /* [in] */ RtStreamId idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetVerticesStream( 
            /* [in] */ RtStreamId idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetVerticesStreamByName( 
            /* [in] */ BSTR idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream) = 0;
        
        virtual /* [helpstring] */ RtDWORD STDMETHODCALLTYPE GetNumTriangles( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetNumTriangles( 
            /* [in] */ RtDWORD dwNumTriangles) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockTrianglesStream( 
            /* [in] */ RtStreamId idStream,
            /* [in] */ RtDWORD dwFlags,
            /* [retval][out] */ void **ppTrianglesStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnLockTrianglesStream( 
            /* [in] */ RtStreamId idStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AttachTrianglesStream( 
            /* [in] */ IRsGenStream *pGenStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteTrianglesStream( 
            /* [in] */ RtStreamId idStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DetachTrianglesStream( 
            /* [in] */ RtStreamId idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetTrianglesStream( 
            /* [in] */ RtStreamId idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetTrianglesStreamByName( 
            /* [in] */ BSTR idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream) = 0;
        
        virtual /* [helpstring] */ RtDWORD STDMETHODCALLTYPE GetNumFaces( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetNumFaces( 
            /* [in] */ RtDWORD dwNumFaces) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockFacesStream( 
            /* [in] */ RtStreamId idStream,
            /* [in] */ RtDWORD dwFlags,
            /* [retval][out] */ void **ppFacesStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnLockFacesStream( 
            /* [in] */ RtStreamId idStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AttachFacesStream( 
            /* [in] */ IRsGenStream *pGenStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteFacesStream( 
            /* [in] */ RtStreamId idStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DetachFacesStream( 
            /* [in] */ RtStreamId idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFacesStream( 
            /* [in] */ RtStreamId idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockCustStream( 
            /* [in] */ RtStreamId idStream,
            /* [in] */ RtDWORD dwFlags,
            /* [out] */ void **ppCustStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnLockCustStream( 
            /* [in] */ RtStreamId idStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteCustStream( 
            /* [in] */ RtStreamId idStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AttachCustStream( 
            /* [in] */ IRsGenStream *pGenStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DetachCustStream( 
            /* [in] */ RtStreamId idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCustStream( 
            /* [in] */ RtStreamId idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCustStreamByName( 
            /* [in] */ BSTR idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCustStreamCount( 
            /* [retval][out] */ RtDWORD *pdwCount) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCustStreamByIndex( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ IRsGenStream **ppGenStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetVertices( 
            /* [retval][out] */ IRdVertexStream **pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNormals( 
            /* [retval][out] */ IRdVertexNormalsStream **pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetTriangles( 
            /* [retval][out] */ IRdTriangleStream **pVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdMeshVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdMesh * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdMesh * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdMesh * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdMesh * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Create )( 
            IRdMesh * This,
            /* [in] */ IRsGenStream *pVerticesStream,
            /* [in] */ IRsGenStream *pTrianglesStream,
            /* [in] */ IRsGenStream *pFacesStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetVerticesStreamGroup )( 
            IRdMesh * This,
            /* [retval][out] */ IRdStreamGroup **ppVerticesStreamGrp);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetVerticesStreamGroup )( 
            IRdMesh * This,
            /* [in] */ IRdStreamGroup *pVerticesStreamGrp);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTrianglesStreamGroup )( 
            IRdMesh * This,
            /* [retval][out] */ IRdStreamGroup **ppTrianglesStreamGrp);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetTrianglesStreamGroup )( 
            IRdMesh * This,
            /* [in] */ IRdStreamGroup *pTrianglesStreamGrp);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFacesStreamGroup )( 
            IRdMesh * This,
            /* [retval][out] */ IRdStreamGroup **ppFacesStreamGrp);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetFacesStreamGroup )( 
            IRdMesh * This,
            /* [in] */ IRdStreamGroup *pFacesStreamGrp);
        
        /* [helpstring] */ RtDWORD ( STDMETHODCALLTYPE *GetNumVertices )( 
            IRdMesh * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetNumVertices )( 
            IRdMesh * This,
            /* [in] */ RtDWORD dwNumVertices);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockVerticesStream )( 
            IRdMesh * This,
            /* [in] */ RtStreamId idStream,
            /* [in] */ RtDWORD dwFlags,
            /* [retval][out] */ void **ppVerticesStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnLockVerticesStream )( 
            IRdMesh * This,
            /* [in] */ RtStreamId idStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AttachVerticesStream )( 
            IRdMesh * This,
            /* [in] */ IRsGenStream *pGenStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteVerticesStream )( 
            IRdMesh * This,
            /* [in] */ RtStreamId idStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DetachVerticesStream )( 
            IRdMesh * This,
            /* [in] */ RtStreamId idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetVerticesStream )( 
            IRdMesh * This,
            /* [in] */ RtStreamId idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetVerticesStreamByName )( 
            IRdMesh * This,
            /* [in] */ BSTR idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream);
        
        /* [helpstring] */ RtDWORD ( STDMETHODCALLTYPE *GetNumTriangles )( 
            IRdMesh * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetNumTriangles )( 
            IRdMesh * This,
            /* [in] */ RtDWORD dwNumTriangles);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockTrianglesStream )( 
            IRdMesh * This,
            /* [in] */ RtStreamId idStream,
            /* [in] */ RtDWORD dwFlags,
            /* [retval][out] */ void **ppTrianglesStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnLockTrianglesStream )( 
            IRdMesh * This,
            /* [in] */ RtStreamId idStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AttachTrianglesStream )( 
            IRdMesh * This,
            /* [in] */ IRsGenStream *pGenStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteTrianglesStream )( 
            IRdMesh * This,
            /* [in] */ RtStreamId idStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DetachTrianglesStream )( 
            IRdMesh * This,
            /* [in] */ RtStreamId idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTrianglesStream )( 
            IRdMesh * This,
            /* [in] */ RtStreamId idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTrianglesStreamByName )( 
            IRdMesh * This,
            /* [in] */ BSTR idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream);
        
        /* [helpstring] */ RtDWORD ( STDMETHODCALLTYPE *GetNumFaces )( 
            IRdMesh * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetNumFaces )( 
            IRdMesh * This,
            /* [in] */ RtDWORD dwNumFaces);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockFacesStream )( 
            IRdMesh * This,
            /* [in] */ RtStreamId idStream,
            /* [in] */ RtDWORD dwFlags,
            /* [retval][out] */ void **ppFacesStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnLockFacesStream )( 
            IRdMesh * This,
            /* [in] */ RtStreamId idStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AttachFacesStream )( 
            IRdMesh * This,
            /* [in] */ IRsGenStream *pGenStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteFacesStream )( 
            IRdMesh * This,
            /* [in] */ RtStreamId idStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DetachFacesStream )( 
            IRdMesh * This,
            /* [in] */ RtStreamId idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFacesStream )( 
            IRdMesh * This,
            /* [in] */ RtStreamId idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockCustStream )( 
            IRdMesh * This,
            /* [in] */ RtStreamId idStream,
            /* [in] */ RtDWORD dwFlags,
            /* [out] */ void **ppCustStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnLockCustStream )( 
            IRdMesh * This,
            /* [in] */ RtStreamId idStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteCustStream )( 
            IRdMesh * This,
            /* [in] */ RtStreamId idStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AttachCustStream )( 
            IRdMesh * This,
            /* [in] */ IRsGenStream *pGenStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DetachCustStream )( 
            IRdMesh * This,
            /* [in] */ RtStreamId idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCustStream )( 
            IRdMesh * This,
            /* [in] */ RtStreamId idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCustStreamByName )( 
            IRdMesh * This,
            /* [in] */ BSTR idStream,
            /* [retval][out] */ IRsGenStream **ppGenStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCustStreamCount )( 
            IRdMesh * This,
            /* [retval][out] */ RtDWORD *pdwCount);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCustStreamByIndex )( 
            IRdMesh * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ IRsGenStream **ppGenStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetVertices )( 
            IRdMesh * This,
            /* [retval][out] */ IRdVertexStream **pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNormals )( 
            IRdMesh * This,
            /* [retval][out] */ IRdVertexNormalsStream **pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTriangles )( 
            IRdMesh * This,
            /* [retval][out] */ IRdTriangleStream **pVal);
        
        END_INTERFACE
    } IRdMeshVtbl;

    interface IRdMesh
    {
        CONST_VTBL struct IRdMeshVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

#define IRdMesh_Create(This,pVerticesStream,pTrianglesStream,pFacesStream)	\
    (This)->lpVtbl -> Create(This,pVerticesStream,pTrianglesStream,pFacesStream)

#define IRdMesh_GetVerticesStreamGroup(This,ppVerticesStreamGrp)	\
    (This)->lpVtbl -> GetVerticesStreamGroup(This,ppVerticesStreamGrp)

#define IRdMesh_SetVerticesStreamGroup(This,pVerticesStreamGrp)	\
    (This)->lpVtbl -> SetVerticesStreamGroup(This,pVerticesStreamGrp)

#define IRdMesh_GetTrianglesStreamGroup(This,ppTrianglesStreamGrp)	\
    (This)->lpVtbl -> GetTrianglesStreamGroup(This,ppTrianglesStreamGrp)

#define IRdMesh_SetTrianglesStreamGroup(This,pTrianglesStreamGrp)	\
    (This)->lpVtbl -> SetTrianglesStreamGroup(This,pTrianglesStreamGrp)

#define IRdMesh_GetFacesStreamGroup(This,ppFacesStreamGrp)	\
    (This)->lpVtbl -> GetFacesStreamGroup(This,ppFacesStreamGrp)

#define IRdMesh_SetFacesStreamGroup(This,pFacesStreamGrp)	\
    (This)->lpVtbl -> SetFacesStreamGroup(This,pFacesStreamGrp)

#define IRdMesh_GetNumVertices(This)	\
    (This)->lpVtbl -> GetNumVertices(This)

#define IRdMesh_SetNumVertices(This,dwNumVertices)	\
    (This)->lpVtbl -> SetNumVertices(This,dwNumVertices)

#define IRdMesh_LockVerticesStream(This,idStream,dwFlags,ppVerticesStream)	\
    (This)->lpVtbl -> LockVerticesStream(This,idStream,dwFlags,ppVerticesStream)

#define IRdMesh_UnLockVerticesStream(This,idStream)	\
    (This)->lpVtbl -> UnLockVerticesStream(This,idStream)

#define IRdMesh_AttachVerticesStream(This,pGenStream)	\
    (This)->lpVtbl -> AttachVerticesStream(This,pGenStream)

#define IRdMesh_DeleteVerticesStream(This,idStream)	\
    (This)->lpVtbl -> DeleteVerticesStream(This,idStream)

#define IRdMesh_DetachVerticesStream(This,idStream,ppGenStream)	\
    (This)->lpVtbl -> DetachVerticesStream(This,idStream,ppGenStream)

#define IRdMesh_GetVerticesStream(This,idStream,ppGenStream)	\
    (This)->lpVtbl -> GetVerticesStream(This,idStream,ppGenStream)

#define IRdMesh_GetVerticesStreamByName(This,idStream,ppGenStream)	\
    (This)->lpVtbl -> GetVerticesStreamByName(This,idStream,ppGenStream)

#define IRdMesh_GetNumTriangles(This)	\
    (This)->lpVtbl -> GetNumTriangles(This)

#define IRdMesh_SetNumTriangles(This,dwNumTriangles)	\
    (This)->lpVtbl -> SetNumTriangles(This,dwNumTriangles)

#define IRdMesh_LockTrianglesStream(This,idStream,dwFlags,ppTrianglesStream)	\
    (This)->lpVtbl -> LockTrianglesStream(This,idStream,dwFlags,ppTrianglesStream)

#define IRdMesh_UnLockTrianglesStream(This,idStream)	\
    (This)->lpVtbl -> UnLockTrianglesStream(This,idStream)

#define IRdMesh_AttachTrianglesStream(This,pGenStream)	\
    (This)->lpVtbl -> AttachTrianglesStream(This,pGenStream)

#define IRdMesh_DeleteTrianglesStream(This,idStream)	\
    (This)->lpVtbl -> DeleteTrianglesStream(This,idStream)

#define IRdMesh_DetachTrianglesStream(This,idStream,ppGenStream)	\
    (This)->lpVtbl -> DetachTrianglesStream(This,idStream,ppGenStream)

#define IRdMesh_GetTrianglesStream(This,idStream,ppGenStream)	\
    (This)->lpVtbl -> GetTrianglesStream(This,idStream,ppGenStream)

#define IRdMesh_GetTrianglesStreamByName(This,idStream,ppGenStream)	\
    (This)->lpVtbl -> GetTrianglesStreamByName(This,idStream,ppGenStream)

#define IRdMesh_GetNumFaces(This)	\
    (This)->lpVtbl -> GetNumFaces(This)

#define IRdMesh_SetNumFaces(This,dwNumFaces)	\
    (This)->lpVtbl -> SetNumFaces(This,dwNumFaces)

#define IRdMesh_LockFacesStream(This,idStream,dwFlags,ppFacesStream)	\
    (This)->lpVtbl -> LockFacesStream(This,idStream,dwFlags,ppFacesStream)

#define IRdMesh_UnLockFacesStream(This,idStream)	\
    (This)->lpVtbl -> UnLockFacesStream(This,idStream)

#define IRdMesh_AttachFacesStream(This,pGenStream)	\
    (This)->lpVtbl -> AttachFacesStream(This,pGenStream)

#define IRdMesh_DeleteFacesStream(This,idStream)	\
    (This)->lpVtbl -> DeleteFacesStream(This,idStream)

#define IRdMesh_DetachFacesStream(This,idStream,ppGenStream)	\
    (This)->lpVtbl -> DetachFacesStream(This,idStream,ppGenStream)

#define IRdMesh_GetFacesStream(This,idStream,ppGenStream)	\
    (This)->lpVtbl -> GetFacesStream(This,idStream,ppGenStream)

#define IRdMesh_LockCustStream(This,idStream,dwFlags,ppCustStream)	\
    (This)->lpVtbl -> LockCustStream(This,idStream,dwFlags,ppCustStream)

#define IRdMesh_UnLockCustStream(This,idStream)	\
    (This)->lpVtbl -> UnLockCustStream(This,idStream)

#define IRdMesh_DeleteCustStream(This,idStream)	\
    (This)->lpVtbl -> DeleteCustStream(This,idStream)

#define IRdMesh_AttachCustStream(This,pGenStream)	\
    (This)->lpVtbl -> AttachCustStream(This,pGenStream)

#define IRdMesh_DetachCustStream(This,idStream,ppGenStream)	\
    (This)->lpVtbl -> DetachCustStream(This,idStream,ppGenStream)

#define IRdMesh_GetCustStream(This,idStream,ppGenStream)	\
    (This)->lpVtbl -> GetCustStream(This,idStream,ppGenStream)

#define IRdMesh_GetCustStreamByName(This,idStream,ppGenStream)	\
    (This)->lpVtbl -> GetCustStreamByName(This,idStream,ppGenStream)

#define IRdMesh_GetCustStreamCount(This,pdwCount)	\
    (This)->lpVtbl -> GetCustStreamCount(This,pdwCount)

#define IRdMesh_GetCustStreamByIndex(This,dwIndex,ppGenStream)	\
    (This)->lpVtbl -> GetCustStreamByIndex(This,dwIndex,ppGenStream)

#define IRdMesh_GetVertices(This,pVal)	\
    (This)->lpVtbl -> GetVertices(This,pVal)

#define IRdMesh_GetNormals(This,pVal)	\
    (This)->lpVtbl -> GetNormals(This,pVal)

#define IRdMesh_GetTriangles(This,pVal)	\
    (This)->lpVtbl -> GetTriangles(This,pVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_Clear_Proxy( 
    IRdMesh * This);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_Create_Proxy( 
    IRdMesh * This,
    /* [in] */ IRsGenStream *pVerticesStream,
    /* [in] */ IRsGenStream *pTrianglesStream,
    /* [in] */ IRsGenStream *pFacesStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_GetVerticesStreamGroup_Proxy( 
    IRdMesh * This,
    /* [retval][out] */ IRdStreamGroup **ppVerticesStreamGrp);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_SetVerticesStreamGroup_Proxy( 
    IRdMesh * This,
    /* [in] */ IRdStreamGroup *pVerticesStreamGrp);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_GetTrianglesStreamGroup_Proxy( 
    IRdMesh * This,
    /* [retval][out] */ IRdStreamGroup **ppTrianglesStreamGrp);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_SetTrianglesStreamGroup_Proxy( 
    IRdMesh * This,
    /* [in] */ IRdStreamGroup *pTrianglesStreamGrp);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_GetFacesStreamGroup_Proxy( 
    IRdMesh * This,
    /* [retval][out] */ IRdStreamGroup **ppFacesStreamGrp);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_SetFacesStreamGroup_Proxy( 
    IRdMesh * This,
    /* [in] */ IRdStreamGroup *pFacesStreamGrp);


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


/* [helpstring] */ RtDWORD STDMETHODCALLTYPE IRdMesh_GetNumVertices_Proxy( 
    IRdMesh * This);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_SetNumVertices_Proxy( 
    IRdMesh * This,
    /* [in] */ RtDWORD dwNumVertices);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_LockVerticesStream_Proxy( 
    IRdMesh * This,
    /* [in] */ RtStreamId idStream,
    /* [in] */ RtDWORD dwFlags,
    /* [retval][out] */ void **ppVerticesStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_UnLockVerticesStream_Proxy( 
    IRdMesh * This,
    /* [in] */ RtStreamId idStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_AttachVerticesStream_Proxy( 
    IRdMesh * This,
    /* [in] */ IRsGenStream *pGenStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_DeleteVerticesStream_Proxy( 
    IRdMesh * This,
    /* [in] */ RtStreamId idStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_DetachVerticesStream_Proxy( 
    IRdMesh * This,
    /* [in] */ RtStreamId idStream,
    /* [retval][out] */ IRsGenStream **ppGenStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_GetVerticesStream_Proxy( 
    IRdMesh * This,
    /* [in] */ RtStreamId idStream,
    /* [retval][out] */ IRsGenStream **ppGenStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_GetVerticesStreamByName_Proxy( 
    IRdMesh * This,
    /* [in] */ BSTR idStream,
    /* [retval][out] */ IRsGenStream **ppGenStream);


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


/* [helpstring] */ RtDWORD STDMETHODCALLTYPE IRdMesh_GetNumTriangles_Proxy( 
    IRdMesh * This);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_SetNumTriangles_Proxy( 
    IRdMesh * This,
    /* [in] */ RtDWORD dwNumTriangles);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_LockTrianglesStream_Proxy( 
    IRdMesh * This,
    /* [in] */ RtStreamId idStream,
    /* [in] */ RtDWORD dwFlags,
    /* [retval][out] */ void **ppTrianglesStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_UnLockTrianglesStream_Proxy( 
    IRdMesh * This,
    /* [in] */ RtStreamId idStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_AttachTrianglesStream_Proxy( 
    IRdMesh * This,
    /* [in] */ IRsGenStream *pGenStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_DeleteTrianglesStream_Proxy( 
    IRdMesh * This,
    /* [in] */ RtStreamId idStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_DetachTrianglesStream_Proxy( 
    IRdMesh * This,
    /* [in] */ RtStreamId idStream,
    /* [retval][out] */ IRsGenStream **ppGenStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_GetTrianglesStream_Proxy( 
    IRdMesh * This,
    /* [in] */ RtStreamId idStream,
    /* [retval][out] */ IRsGenStream **ppGenStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_GetTrianglesStreamByName_Proxy( 
    IRdMesh * This,
    /* [in] */ BSTR idStream,
    /* [retval][out] */ IRsGenStream **ppGenStream);


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


/* [helpstring] */ RtDWORD STDMETHODCALLTYPE IRdMesh_GetNumFaces_Proxy( 
    IRdMesh * This);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_SetNumFaces_Proxy( 
    IRdMesh * This,
    /* [in] */ RtDWORD dwNumFaces);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_LockFacesStream_Proxy( 
    IRdMesh * This,
    /* [in] */ RtStreamId idStream,
    /* [in] */ RtDWORD dwFlags,
    /* [retval][out] */ void **ppFacesStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_UnLockFacesStream_Proxy( 
    IRdMesh * This,
    /* [in] */ RtStreamId idStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_AttachFacesStream_Proxy( 
    IRdMesh * This,
    /* [in] */ IRsGenStream *pGenStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_DeleteFacesStream_Proxy( 
    IRdMesh * This,
    /* [in] */ RtStreamId idStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_DetachFacesStream_Proxy( 
    IRdMesh * This,
    /* [in] */ RtStreamId idStream,
    /* [retval][out] */ IRsGenStream **ppGenStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_GetFacesStream_Proxy( 
    IRdMesh * This,
    /* [in] */ RtStreamId idStream,
    /* [retval][out] */ IRsGenStream **ppGenStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_LockCustStream_Proxy( 
    IRdMesh * This,
    /* [in] */ RtStreamId idStream,
    /* [in] */ RtDWORD dwFlags,
    /* [out] */ void **ppCustStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_UnLockCustStream_Proxy( 
    IRdMesh * This,
    /* [in] */ RtStreamId idStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_DeleteCustStream_Proxy( 
    IRdMesh * This,
    /* [in] */ RtStreamId idStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_AttachCustStream_Proxy( 
    IRdMesh * This,
    /* [in] */ IRsGenStream *pGenStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_DetachCustStream_Proxy( 
    IRdMesh * This,
    /* [in] */ RtStreamId idStream,
    /* [retval][out] */ IRsGenStream **ppGenStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_GetCustStream_Proxy( 
    IRdMesh * This,
    /* [in] */ RtStreamId idStream,
    /* [retval][out] */ IRsGenStream **ppGenStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_GetCustStreamByName_Proxy( 
    IRdMesh * This,
    /* [in] */ BSTR idStream,
    /* [retval][out] */ IRsGenStream **ppGenStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_GetCustStreamCount_Proxy( 
    IRdMesh * This,
    /* [retval][out] */ RtDWORD *pdwCount);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_GetCustStreamByIndex_Proxy( 
    IRdMesh * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ IRsGenStream **ppGenStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_GetVertices_Proxy( 
    IRdMesh * This,
    /* [retval][out] */ IRdVertexStream **pVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_GetNormals_Proxy( 
    IRdMesh * This,
    /* [retval][out] */ IRdVertexNormalsStream **pVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMesh_GetTriangles_Proxy( 
    IRdMesh * This,
    /* [retval][out] */ IRdTriangleStream **pVal);


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



#endif 	/* __IRdMesh_INTERFACE_DEFINED__ */


#ifndef __IRdMeshDisp_INTERFACE_DEFINED__
#define __IRdMeshDisp_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdMeshDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("94310247-7e25-4209-8624-f94eb053711f")
    IRdMeshDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Create( 
            /* [in] */ IDispatch *pVerticesStream,
            /* [in] */ IDispatch *pTrianglesStream,
            /* [in] */ IDispatch *pFacesStream) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetVerticesStreamGroup( 
            /* [retval][out] */ IRdStreamGroupDisp **ppVerticesStreamGrp) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetVerticesStreamGroup( 
            /* [in] */ IRdStreamGroupDisp *pVerticesStreamGrp) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTrianglesStreamGroup( 
            /* [retval][out] */ IRdStreamGroupDisp **ppTrianglesStreamGrp) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetTrianglesStreamGroup( 
            /* [in] */ IRdStreamGroupDisp *pTrianglesStreamGrp) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetFacesStreamGroup( 
            /* [retval][out] */ IRdStreamGroupDisp **ppFacesStreamGrp) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetFacesStreamGroup( 
            /* [in] */ IRdStreamGroupDisp *pFacesStreamGrp) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumVertices( 
            /* [retval][out] */ RtDWORD *dwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumVertices( 
            /* [in] */ RtDWORD dwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AttachVerticesStream( 
            /* [in] */ IDispatch *pGenStream) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetVerticesStreamByName( 
            /* [in] */ BSTR idStream,
            /* [retval][out] */ IDispatch **ppGenStream) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumTriangles( 
            /* [retval][out] */ RtDWORD *dwNumTriangles) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumTriangles( 
            /* [in] */ RtDWORD dwNumTriangles) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AttachTrianglesStream( 
            /* [in] */ IDispatch *pGenStream) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTrianglesStreamByName( 
            /* [in] */ BSTR idStream,
            /* [retval][out] */ IDispatch **ppGenStream) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumFaces( 
            /* [retval][out] */ RtDWORD *dwNumFaces) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumFaces( 
            /* [in] */ RtDWORD dwNumFaces) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AttachFacesStream( 
            /* [in] */ IDispatch *pGenStream) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AttachCustStream( 
            /* [in] */ IDispatch *pGenStream) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCustStreamByName( 
            /* [in] */ BSTR idStream,
            /* [retval][out] */ IDispatch **ppGenStream) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCustStreamCount( 
            /* [retval][out] */ RtDWORD *pdwCount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCustStreamByIndex( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ IDispatch **ppGenStream) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetVertices( 
            /* [retval][out] */ IRdVertexStream **pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNormals( 
            /* [retval][out] */ IRdVertexNormalsStreamDisp **pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTriangles( 
            /* [retval][out] */ IRdTriangleStream **pVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdMeshDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdMeshDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdMeshDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdMeshDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdMeshDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdMeshDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdMeshDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdMeshDisp * 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 *Clear )( 
            IRdMeshDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Create )( 
            IRdMeshDisp * This,
            /* [in] */ IDispatch *pVerticesStream,
            /* [in] */ IDispatch *pTrianglesStream,
            /* [in] */ IDispatch *pFacesStream);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetVerticesStreamGroup )( 
            IRdMeshDisp * This,
            /* [retval][out] */ IRdStreamGroupDisp **ppVerticesStreamGrp);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetVerticesStreamGroup )( 
            IRdMeshDisp * This,
            /* [in] */ IRdStreamGroupDisp *pVerticesStreamGrp);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTrianglesStreamGroup )( 
            IRdMeshDisp * This,
            /* [retval][out] */ IRdStreamGroupDisp **ppTrianglesStreamGrp);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetTrianglesStreamGroup )( 
            IRdMeshDisp * This,
            /* [in] */ IRdStreamGroupDisp *pTrianglesStreamGrp);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetFacesStreamGroup )( 
            IRdMeshDisp * This,
            /* [retval][out] */ IRdStreamGroupDisp **ppFacesStreamGrp);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetFacesStreamGroup )( 
            IRdMeshDisp * This,
            /* [in] */ IRdStreamGroupDisp *pFacesStreamGrp);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNumVertices )( 
            IRdMeshDisp * This,
            /* [retval][out] */ RtDWORD *dwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumVertices )( 
            IRdMeshDisp * This,
            /* [in] */ RtDWORD dwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AttachVerticesStream )( 
            IRdMeshDisp * This,
            /* [in] */ IDispatch *pGenStream);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetVerticesStreamByName )( 
            IRdMeshDisp * This,
            /* [in] */ BSTR idStream,
            /* [retval][out] */ IDispatch **ppGenStream);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNumTriangles )( 
            IRdMeshDisp * This,
            /* [retval][out] */ RtDWORD *dwNumTriangles);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumTriangles )( 
            IRdMeshDisp * This,
            /* [in] */ RtDWORD dwNumTriangles);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AttachTrianglesStream )( 
            IRdMeshDisp * This,
            /* [in] */ IDispatch *pGenStream);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTrianglesStreamByName )( 
            IRdMeshDisp * This,
            /* [in] */ BSTR idStream,
            /* [retval][out] */ IDispatch **ppGenStream);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNumFaces )( 
            IRdMeshDisp * This,
            /* [retval][out] */ RtDWORD *dwNumFaces);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumFaces )( 
            IRdMeshDisp * This,
            /* [in] */ RtDWORD dwNumFaces);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AttachFacesStream )( 
            IRdMeshDisp * This,
            /* [in] */ IDispatch *pGenStream);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AttachCustStream )( 
            IRdMeshDisp * This,
            /* [in] */ IDispatch *pGenStream);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCustStreamByName )( 
            IRdMeshDisp * This,
            /* [in] */ BSTR idStream,
            /* [retval][out] */ IDispatch **ppGenStream);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCustStreamCount )( 
            IRdMeshDisp * This,
            /* [retval][out] */ RtDWORD *pdwCount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCustStreamByIndex )( 
            IRdMeshDisp * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ IDispatch **ppGenStream);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetVertices )( 
            IRdMeshDisp * This,
            /* [retval][out] */ IRdVertexStream **pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNormals )( 
            IRdMeshDisp * This,
            /* [retval][out] */ IRdVertexNormalsStreamDisp **pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTriangles )( 
            IRdMeshDisp * This,
            /* [retval][out] */ IRdTriangleStream **pVal);
        
        END_INTERFACE
    } IRdMeshDispVtbl;

    interface IRdMeshDisp
    {
        CONST_VTBL struct IRdMeshDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


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

#define IRdMeshDisp_Create(This,pVerticesStream,pTrianglesStream,pFacesStream)	\
    (This)->lpVtbl -> Create(This,pVerticesStream,pTrianglesStream,pFacesStream)

#define IRdMeshDisp_GetVerticesStreamGroup(This,ppVerticesStreamGrp)	\
    (This)->lpVtbl -> GetVerticesStreamGroup(This,ppVerticesStreamGrp)

#define IRdMeshDisp_SetVerticesStreamGroup(This,pVerticesStreamGrp)	\
    (This)->lpVtbl -> SetVerticesStreamGroup(This,pVerticesStreamGrp)

#define IRdMeshDisp_GetTrianglesStreamGroup(This,ppTrianglesStreamGrp)	\
    (This)->lpVtbl -> GetTrianglesStreamGroup(This,ppTrianglesStreamGrp)

#define IRdMeshDisp_SetTrianglesStreamGroup(This,pTrianglesStreamGrp)	\
    (This)->lpVtbl -> SetTrianglesStreamGroup(This,pTrianglesStreamGrp)

#define IRdMeshDisp_GetFacesStreamGroup(This,ppFacesStreamGrp)	\
    (This)->lpVtbl -> GetFacesStreamGroup(This,ppFacesStreamGrp)

#define IRdMeshDisp_SetFacesStreamGroup(This,pFacesStreamGrp)	\
    (This)->lpVtbl -> SetFacesStreamGroup(This,pFacesStreamGrp)

#define IRdMeshDisp_GetNumVertices(This,dwNumVertices)	\
    (This)->lpVtbl -> GetNumVertices(This,dwNumVertices)

#define IRdMeshDisp_SetNumVertices(This,dwNumVertices)	\
    (This)->lpVtbl -> SetNumVertices(This,dwNumVertices)

#define IRdMeshDisp_AttachVerticesStream(This,pGenStream)	\
    (This)->lpVtbl -> AttachVerticesStream(This,pGenStream)

#define IRdMeshDisp_GetVerticesStreamByName(This,idStream,ppGenStream)	\
    (This)->lpVtbl -> GetVerticesStreamByName(This,idStream,ppGenStream)

#define IRdMeshDisp_GetNumTriangles(This,dwNumTriangles)	\
    (This)->lpVtbl -> GetNumTriangles(This,dwNumTriangles)

#define IRdMeshDisp_SetNumTriangles(This,dwNumTriangles)	\
    (This)->lpVtbl -> SetNumTriangles(This,dwNumTriangles)

#define IRdMeshDisp_AttachTrianglesStream(This,pGenStream)	\
    (This)->lpVtbl -> AttachTrianglesStream(This,pGenStream)

#define IRdMeshDisp_GetTrianglesStreamByName(This,idStream,ppGenStream)	\
    (This)->lpVtbl -> GetTrianglesStreamByName(This,idStream,ppGenStream)

#define IRdMeshDisp_GetNumFaces(This,dwNumFaces)	\
    (This)->lpVtbl -> GetNumFaces(This,dwNumFaces)

#define IRdMeshDisp_SetNumFaces(This,dwNumFaces)	\
    (This)->lpVtbl -> SetNumFaces(This,dwNumFaces)

#define IRdMeshDisp_AttachFacesStream(This,pGenStream)	\
    (This)->lpVtbl -> AttachFacesStream(This,pGenStream)

#define IRdMeshDisp_AttachCustStream(This,pGenStream)	\
    (This)->lpVtbl -> AttachCustStream(This,pGenStream)

#define IRdMeshDisp_GetCustStreamByName(This,idStream,ppGenStream)	\
    (This)->lpVtbl -> GetCustStreamByName(This,idStream,ppGenStream)

#define IRdMeshDisp_GetCustStreamCount(This,pdwCount)	\
    (This)->lpVtbl -> GetCustStreamCount(This,pdwCount)

#define IRdMeshDisp_GetCustStreamByIndex(This,dwIndex,ppGenStream)	\
    (This)->lpVtbl -> GetCustStreamByIndex(This,dwIndex,ppGenStream)

#define IRdMeshDisp_GetVertices(This,pVal)	\
    (This)->lpVtbl -> GetVertices(This,pVal)

#define IRdMeshDisp_GetNormals(This,pVal)	\
    (This)->lpVtbl -> GetNormals(This,pVal)

#define IRdMeshDisp_GetTriangles(This,pVal)	\
    (This)->lpVtbl -> GetTriangles(This,pVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_Clear_Proxy( 
    IRdMeshDisp * This);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_Create_Proxy( 
    IRdMeshDisp * This,
    /* [in] */ IDispatch *pVerticesStream,
    /* [in] */ IDispatch *pTrianglesStream,
    /* [in] */ IDispatch *pFacesStream);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_GetVerticesStreamGroup_Proxy( 
    IRdMeshDisp * This,
    /* [retval][out] */ IRdStreamGroupDisp **ppVerticesStreamGrp);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_SetVerticesStreamGroup_Proxy( 
    IRdMeshDisp * This,
    /* [in] */ IRdStreamGroupDisp *pVerticesStreamGrp);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_GetTrianglesStreamGroup_Proxy( 
    IRdMeshDisp * This,
    /* [retval][out] */ IRdStreamGroupDisp **ppTrianglesStreamGrp);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_SetTrianglesStreamGroup_Proxy( 
    IRdMeshDisp * This,
    /* [in] */ IRdStreamGroupDisp *pTrianglesStreamGrp);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_GetFacesStreamGroup_Proxy( 
    IRdMeshDisp * This,
    /* [retval][out] */ IRdStreamGroupDisp **ppFacesStreamGrp);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_SetFacesStreamGroup_Proxy( 
    IRdMeshDisp * This,
    /* [in] */ IRdStreamGroupDisp *pFacesStreamGrp);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_GetNumVertices_Proxy( 
    IRdMeshDisp * This,
    /* [retval][out] */ RtDWORD *dwNumVertices);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_SetNumVertices_Proxy( 
    IRdMeshDisp * This,
    /* [in] */ RtDWORD dwNumVertices);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_AttachVerticesStream_Proxy( 
    IRdMeshDisp * This,
    /* [in] */ IDispatch *pGenStream);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_GetVerticesStreamByName_Proxy( 
    IRdMeshDisp * This,
    /* [in] */ BSTR idStream,
    /* [retval][out] */ IDispatch **ppGenStream);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_GetNumTriangles_Proxy( 
    IRdMeshDisp * This,
    /* [retval][out] */ RtDWORD *dwNumTriangles);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_SetNumTriangles_Proxy( 
    IRdMeshDisp * This,
    /* [in] */ RtDWORD dwNumTriangles);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_AttachTrianglesStream_Proxy( 
    IRdMeshDisp * This,
    /* [in] */ IDispatch *pGenStream);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_GetTrianglesStreamByName_Proxy( 
    IRdMeshDisp * This,
    /* [in] */ BSTR idStream,
    /* [retval][out] */ IDispatch **ppGenStream);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_GetNumFaces_Proxy( 
    IRdMeshDisp * This,
    /* [retval][out] */ RtDWORD *dwNumFaces);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_SetNumFaces_Proxy( 
    IRdMeshDisp * This,
    /* [in] */ RtDWORD dwNumFaces);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_AttachFacesStream_Proxy( 
    IRdMeshDisp * This,
    /* [in] */ IDispatch *pGenStream);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_AttachCustStream_Proxy( 
    IRdMeshDisp * This,
    /* [in] */ IDispatch *pGenStream);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_GetCustStreamByName_Proxy( 
    IRdMeshDisp * This,
    /* [in] */ BSTR idStream,
    /* [retval][out] */ IDispatch **ppGenStream);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_GetCustStreamCount_Proxy( 
    IRdMeshDisp * This,
    /* [retval][out] */ RtDWORD *pdwCount);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_GetCustStreamByIndex_Proxy( 
    IRdMeshDisp * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ IDispatch **ppGenStream);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_GetVertices_Proxy( 
    IRdMeshDisp * This,
    /* [retval][out] */ IRdVertexStream **pVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_GetNormals_Proxy( 
    IRdMeshDisp * This,
    /* [retval][out] */ IRdVertexNormalsStreamDisp **pVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshDisp_GetTriangles_Proxy( 
    IRdMeshDisp * This,
    /* [retval][out] */ IRdTriangleStream **pVal);


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



#endif 	/* __IRdMeshDisp_INTERFACE_DEFINED__ */


#ifndef __IRdMatrix_INTERFACE_DEFINED__
#define __IRdMatrix_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdMatrix;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("60C75775-FA09-48CD-BACB-8EBB63A364C8")
    IRdMatrix : public IRsObject
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockData( 
            /* [retval][out] */ RtDouble **pMatrix) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnlockData( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LoadIdentity( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LoadMatrix( 
            /* [in] */ RtMatrix mat) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Invert( 
            /* [out] */ RtMatrix *pM) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Transpose( 
            /* [in] */ RtMatrix *pM) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE MultMatrix( 
            /* [in] */ RtMatrix m) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE PreMultMatrix( 
            /* [in] */ RtMatrix m) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RotateLocal( 
            /* [in] */ RtQuat *pQ) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Rotate( 
            /* [in] */ RtQuat *pQ) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ScaleLocal( 
            /* [in] */ RtDouble x,
            /* [in] */ RtDouble y,
            /* [in] */ RtDouble z) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Scale( 
            /* [in] */ RtDouble x,
            /* [in] */ RtDouble y,
            /* [in] */ RtDouble z) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE TranslateLocal( 
            /* [in] */ RtDouble x,
            /* [in] */ RtDouble y,
            /* [in] */ RtDouble z) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Translate( 
            /* [in] */ RtDouble x,
            /* [in] */ RtDouble y,
            /* [in] */ RtDouble z) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RotateEuler( 
            /* [in] */ RtDouble x,
            /* [in] */ RtDouble y,
            /* [in] */ RtDouble z) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RotationX( 
            /* [in] */ RtDouble x) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RotationY( 
            /* [in] */ RtDouble y) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RotationZ( 
            /* [in] */ RtDouble z) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE TransformPoint( 
            /* [in] */ RtPoint SourcePoint,
            /* [out] */ RtPoint *pDestPoint) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE TransformVector( 
            /* [in] */ RtPoint SourceVect,
            /* [out] */ RtPoint *pDestVect) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdMatrixVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdMatrix * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdMatrix * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdMatrix * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRdMatrix * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRdMatrix * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockData )( 
            IRdMatrix * This,
            /* [retval][out] */ RtDouble **pMatrix);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnlockData )( 
            IRdMatrix * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LoadIdentity )( 
            IRdMatrix * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LoadMatrix )( 
            IRdMatrix * This,
            /* [in] */ RtMatrix mat);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Invert )( 
            IRdMatrix * This,
            /* [out] */ RtMatrix *pM);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Transpose )( 
            IRdMatrix * This,
            /* [in] */ RtMatrix *pM);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MultMatrix )( 
            IRdMatrix * This,
            /* [in] */ RtMatrix m);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *PreMultMatrix )( 
            IRdMatrix * This,
            /* [in] */ RtMatrix m);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RotateLocal )( 
            IRdMatrix * This,
            /* [in] */ RtQuat *pQ);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IRdMatrix * This,
            /* [in] */ RtQuat *pQ);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ScaleLocal )( 
            IRdMatrix * This,
            /* [in] */ RtDouble x,
            /* [in] */ RtDouble y,
            /* [in] */ RtDouble z);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Scale )( 
            IRdMatrix * This,
            /* [in] */ RtDouble x,
            /* [in] */ RtDouble y,
            /* [in] */ RtDouble z);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *TranslateLocal )( 
            IRdMatrix * This,
            /* [in] */ RtDouble x,
            /* [in] */ RtDouble y,
            /* [in] */ RtDouble z);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Translate )( 
            IRdMatrix * This,
            /* [in] */ RtDouble x,
            /* [in] */ RtDouble y,
            /* [in] */ RtDouble z);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RotateEuler )( 
            IRdMatrix * This,
            /* [in] */ RtDouble x,
            /* [in] */ RtDouble y,
            /* [in] */ RtDouble z);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RotationX )( 
            IRdMatrix * This,
            /* [in] */ RtDouble x);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RotationY )( 
            IRdMatrix * This,
            /* [in] */ RtDouble y);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RotationZ )( 
            IRdMatrix * This,
            /* [in] */ RtDouble z);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *TransformPoint )( 
            IRdMatrix * This,
            /* [in] */ RtPoint SourcePoint,
            /* [out] */ RtPoint *pDestPoint);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *TransformVector )( 
            IRdMatrix * This,
            /* [in] */ RtPoint SourceVect,
            /* [out] */ RtPoint *pDestVect);
        
        END_INTERFACE
    } IRdMatrixVtbl;

    interface IRdMatrix
    {
        CONST_VTBL struct IRdMatrixVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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


#define IRdMatrix_LockData(This,pMatrix)	\
    (This)->lpVtbl -> LockData(This,pMatrix)

#define IRdMatrix_UnlockData(This)	\
    (This)->lpVtbl -> UnlockData(This)

#define IRdMatrix_LoadIdentity(This)	\
    (This)->lpVtbl -> LoadIdentity(This)

#define IRdMatrix_LoadMatrix(This,mat)	\
    (This)->lpVtbl -> LoadMatrix(This,mat)

#define IRdMatrix_Invert(This,pM)	\
    (This)->lpVtbl -> Invert(This,pM)

#define IRdMatrix_Transpose(This,pM)	\
    (This)->lpVtbl -> Transpose(This,pM)

#define IRdMatrix_MultMatrix(This,m)	\
    (This)->lpVtbl -> MultMatrix(This,m)

#define IRdMatrix_PreMultMatrix(This,m)	\
    (This)->lpVtbl -> PreMultMatrix(This,m)

#define IRdMatrix_RotateLocal(This,pQ)	\
    (This)->lpVtbl -> RotateLocal(This,pQ)

#define IRdMatrix_Rotate(This,pQ)	\
    (This)->lpVtbl -> Rotate(This,pQ)

#define IRdMatrix_ScaleLocal(This,x,y,z)	\
    (This)->lpVtbl -> ScaleLocal(This,x,y,z)

#define IRdMatrix_Scale(This,x,y,z)	\
    (This)->lpVtbl -> Scale(This,x,y,z)

#define IRdMatrix_TranslateLocal(This,x,y,z)	\
    (This)->lpVtbl -> TranslateLocal(This,x,y,z)

#define IRdMatrix_Translate(This,x,y,z)	\
    (This)->lpVtbl -> Translate(This,x,y,z)

#define IRdMatrix_RotateEuler(This,x,y,z)	\
    (This)->lpVtbl -> RotateEuler(This,x,y,z)

#define IRdMatrix_RotationX(This,x)	\
    (This)->lpVtbl -> RotationX(This,x)

#define IRdMatrix_RotationY(This,y)	\
    (This)->lpVtbl -> RotationY(This,y)

#define IRdMatrix_RotationZ(This,z)	\
    (This)->lpVtbl -> RotationZ(This,z)

#define IRdMatrix_TransformPoint(This,SourcePoint,pDestPoint)	\
    (This)->lpVtbl -> TransformPoint(This,SourcePoint,pDestPoint)

#define IRdMatrix_TransformVector(This,SourceVect,pDestVect)	\
    (This)->lpVtbl -> TransformVector(This,SourceVect,pDestVect)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrix_LockData_Proxy( 
    IRdMatrix * This,
    /* [retval][out] */ RtDouble **pMatrix);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrix_UnlockData_Proxy( 
    IRdMatrix * This);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrix_LoadIdentity_Proxy( 
    IRdMatrix * This);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrix_LoadMatrix_Proxy( 
    IRdMatrix * This,
    /* [in] */ RtMatrix mat);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrix_Invert_Proxy( 
    IRdMatrix * This,
    /* [out] */ RtMatrix *pM);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrix_Transpose_Proxy( 
    IRdMatrix * This,
    /* [in] */ RtMatrix *pM);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrix_MultMatrix_Proxy( 
    IRdMatrix * This,
    /* [in] */ RtMatrix m);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrix_PreMultMatrix_Proxy( 
    IRdMatrix * This,
    /* [in] */ RtMatrix m);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrix_RotateLocal_Proxy( 
    IRdMatrix * This,
    /* [in] */ RtQuat *pQ);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrix_Rotate_Proxy( 
    IRdMatrix * This,
    /* [in] */ RtQuat *pQ);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrix_ScaleLocal_Proxy( 
    IRdMatrix * This,
    /* [in] */ RtDouble x,
    /* [in] */ RtDouble y,
    /* [in] */ RtDouble z);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrix_Scale_Proxy( 
    IRdMatrix * This,
    /* [in] */ RtDouble x,
    /* [in] */ RtDouble y,
    /* [in] */ RtDouble z);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrix_TranslateLocal_Proxy( 
    IRdMatrix * This,
    /* [in] */ RtDouble x,
    /* [in] */ RtDouble y,
    /* [in] */ RtDouble z);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrix_Translate_Proxy( 
    IRdMatrix * This,
    /* [in] */ RtDouble x,
    /* [in] */ RtDouble y,
    /* [in] */ RtDouble z);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrix_RotateEuler_Proxy( 
    IRdMatrix * This,
    /* [in] */ RtDouble x,
    /* [in] */ RtDouble y,
    /* [in] */ RtDouble z);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrix_RotationX_Proxy( 
    IRdMatrix * This,
    /* [in] */ RtDouble x);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrix_RotationY_Proxy( 
    IRdMatrix * This,
    /* [in] */ RtDouble y);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrix_RotationZ_Proxy( 
    IRdMatrix * This,
    /* [in] */ RtDouble z);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrix_TransformPoint_Proxy( 
    IRdMatrix * This,
    /* [in] */ RtPoint SourcePoint,
    /* [out] */ RtPoint *pDestPoint);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrix_TransformVector_Proxy( 
    IRdMatrix * This,
    /* [in] */ RtPoint SourceVect,
    /* [out] */ RtPoint *pDestVect);


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



#endif 	/* __IRdMatrix_INTERFACE_DEFINED__ */


#ifndef __IRdMaterial_INTERFACE_DEFINED__
#define __IRdMaterial_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdMaterial;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E278A3CD-E23A-4FEF-8D4E-548814646865")
    IRdMaterial : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetColor( 
            /* [in] */ RtBYTE red,
            /* [in] */ RtBYTE green,
            /* [in] */ RtBYTE blue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetColor( 
            /* [out] */ RtColor *pColor) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdMaterialVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdMaterial * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdMaterial * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdMaterial * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetColor )( 
            IRdMaterial * This,
            /* [in] */ RtBYTE red,
            /* [in] */ RtBYTE green,
            /* [in] */ RtBYTE blue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetColor )( 
            IRdMaterial * This,
            /* [out] */ RtColor *pColor);
        
        END_INTERFACE
    } IRdMaterialVtbl;

    interface IRdMaterial
    {
        CONST_VTBL struct IRdMaterialVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IRdMaterial_SetColor(This,red,green,blue)	\
    (This)->lpVtbl -> SetColor(This,red,green,blue)

#define IRdMaterial_GetColor(This,pColor)	\
    (This)->lpVtbl -> GetColor(This,pColor)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMaterial_SetColor_Proxy( 
    IRdMaterial * This,
    /* [in] */ RtBYTE red,
    /* [in] */ RtBYTE green,
    /* [in] */ RtBYTE blue);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMaterial_GetColor_Proxy( 
    IRdMaterial * This,
    /* [out] */ RtColor *pColor);


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



#endif 	/* __IRdMaterial_INTERFACE_DEFINED__ */


#ifndef __IRsNodeList_INTERFACE_DEFINED__
#define __IRsNodeList_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRsNodeList;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("10D4FED6-1AF0-4F56-8EBB-5546E39BCA4D")
    IRsNodeList : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ClearData( void) = 0;
        
        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 GetHead( 
            /* [out] */ IRsNode **pNode,
            /* [in] */ RtBool *end) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNext( 
            /* [out] */ IRsNode **pNode,
            /* [in] */ RtBool *end) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE MoveToHead( 
            /* [out] */ RtBool *end) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FindNode( 
            /* [in] */ IRsNode *pNode,
            /* [out] */ RtBool *end) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveAll( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsNodeListVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsNodeList * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsNodeList * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsNodeList * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ClearData )( 
            IRsNodeList * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddNode )( 
            IRsNodeList * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveNode )( 
            IRsNodeList * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCount )( 
            IRsNodeList * This,
            /* [out] */ RtUlong *count);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetHead )( 
            IRsNodeList * This,
            /* [out] */ IRsNode **pNode,
            /* [in] */ RtBool *end);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNext )( 
            IRsNodeList * This,
            /* [out] */ IRsNode **pNode,
            /* [in] */ RtBool *end);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MoveToHead )( 
            IRsNodeList * This,
            /* [out] */ RtBool *end);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FindNode )( 
            IRsNodeList * This,
            /* [in] */ IRsNode *pNode,
            /* [out] */ RtBool *end);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveAll )( 
            IRsNodeList * This);
        
        END_INTERFACE
    } IRsNodeListVtbl;

    interface IRsNodeList
    {
        CONST_VTBL struct IRsNodeListVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IRsNodeList_ClearData(This)	\
    (This)->lpVtbl -> ClearData(This)

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

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

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

#define IRsNodeList_GetHead(This,pNode,end)	\
    (This)->lpVtbl -> GetHead(This,pNode,end)

#define IRsNodeList_GetNext(This,pNode,end)	\
    (This)->lpVtbl -> GetNext(This,pNode,end)

#define IRsNodeList_MoveToHead(This,end)	\
    (This)->lpVtbl -> MoveToHead(This,end)

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

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

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsNodeList_ClearData_Proxy( 
    IRsNodeList * This);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsNodeList_AddNode_Proxy( 
    IRsNodeList * This,
    /* [in] */ IRsNode *pNode);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsNodeList_RemoveNode_Proxy( 
    IRsNodeList * This,
    /* [in] */ IRsNode *pNode);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsNodeList_GetCount_Proxy( 
    IRsNodeList * This,
    /* [out] */ RtUlong *count);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsNodeList_GetHead_Proxy( 
    IRsNodeList * This,
    /* [out] */ IRsNode **pNode,
    /* [in] */ RtBool *end);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsNodeList_GetNext_Proxy( 
    IRsNodeList * This,
    /* [out] */ IRsNode **pNode,
    /* [in] */ RtBool *end);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsNodeList_MoveToHead_Proxy( 
    IRsNodeList * This,
    /* [out] */ RtBool *end);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsNodeList_FindNode_Proxy( 
    IRsNodeList * This,
    /* [in] */ IRsNode *pNode,
    /* [out] */ RtBool *end);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsNodeList_RemoveAll_Proxy( 
    IRsNodeList * This);


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



#endif 	/* __IRsNodeList_INTERFACE_DEFINED__ */


#ifndef __IRdVolumeTree_INTERFACE_DEFINED__
#define __IRdVolumeTree_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdVolumeTree;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9FD2979A-6A4E-4869-A777-4EE45097BCE9")
    IRdVolumeTree : public IRsDataObject
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetBox( 
            /* [in] */ RtFloat *box) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetBox( 
            /* [out] */ RtFloat *box) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE InitData( 
            /* [in] */ RtFloat *box) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ClearData( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RayIntersection( 
            /* [in] */ RtPoint *p0,
            /* [in] */ RtPoint *ray,
            /* [out] */ IRsNodeList **node) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UpdateBBox( 
            /* [in] */ IRsBaseNode *node,
            /* [in] */ IRdFloatArray *box) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddBBox( 
            /* [in] */ IRsBaseNode *node,
            /* [in] */ IRdFloatArray *box) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddObject( 
            /* [in] */ IRsBaseNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE BoxIntersection( 
            /* [in] */ RtFloat *box,
            /* [out] */ IRsNodeList **list) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveObject( 
            /* [in] */ IRsBaseNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetDepth( 
            /* [in] */ RtUshort depth) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetNode( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNode( 
            /* [out] */ IRsNode **pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FrustumIntersection( 
            /* [in] */ IRsNode *pViewRoot,
            /* [in] */ RtVector4f *planes,
            /* [out] */ IRsNodeList **list) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdVolumeTreeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdVolumeTree * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdVolumeTree * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdVolumeTree * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRdVolumeTree * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRdVolumeTree * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDefault )( 
            IRdVolumeTree * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetBox )( 
            IRdVolumeTree * This,
            /* [in] */ RtFloat *box);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetBox )( 
            IRdVolumeTree * This,
            /* [out] */ RtFloat *box);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *InitData )( 
            IRdVolumeTree * This,
            /* [in] */ RtFloat *box);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ClearData )( 
            IRdVolumeTree * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RayIntersection )( 
            IRdVolumeTree * This,
            /* [in] */ RtPoint *p0,
            /* [in] */ RtPoint *ray,
            /* [out] */ IRsNodeList **node);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UpdateBBox )( 
            IRdVolumeTree * This,
            /* [in] */ IRsBaseNode *node,
            /* [in] */ IRdFloatArray *box);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddBBox )( 
            IRdVolumeTree * This,
            /* [in] */ IRsBaseNode *node,
            /* [in] */ IRdFloatArray *box);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddObject )( 
            IRdVolumeTree * This,
            /* [in] */ IRsBaseNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *BoxIntersection )( 
            IRdVolumeTree * This,
            /* [in] */ RtFloat *box,
            /* [out] */ IRsNodeList **list);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveObject )( 
            IRdVolumeTree * This,
            /* [in] */ IRsBaseNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDepth )( 
            IRdVolumeTree * This,
            /* [in] */ RtUshort depth);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetNode )( 
            IRdVolumeTree * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNode )( 
            IRdVolumeTree * This,
            /* [out] */ IRsNode **pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FrustumIntersection )( 
            IRdVolumeTree * This,
            /* [in] */ IRsNode *pViewRoot,
            /* [in] */ RtVector4f *planes,
            /* [out] */ IRsNodeList **list);
        
        END_INTERFACE
    } IRdVolumeTreeVtbl;

    interface IRdVolumeTree
    {
        CONST_VTBL struct IRdVolumeTreeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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


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


#define IRdVolumeTree_SetBox(This,box)	\
    (This)->lpVtbl -> SetBox(This,box)

#define IRdVolumeTree_GetBox(This,box)	\
    (This)->lpVtbl -> GetBox(This,box)

#define IRdVolumeTree_InitData(This,box)	\
    (This)->lpVtbl -> InitData(This,box)

#define IRdVolumeTree_ClearData(This)	\
    (This)->lpVtbl -> ClearData(This)

#define IRdVolumeTree_RayIntersection(This,p0,ray,node)	\
    (This)->lpVtbl -> RayIntersection(This,p0,ray,node)

#define IRdVolumeTree_UpdateBBox(This,node,box)	\
    (This)->lpVtbl -> UpdateBBox(This,node,box)

#define IRdVolumeTree_AddBBox(This,node,box)	\
    (This)->lpVtbl -> AddBBox(This,node,box)

#define IRdVolumeTree_AddObject(This,pNode)	\
    (This)->lpVtbl -> AddObject(This,pNode)

#define IRdVolumeTree_BoxIntersection(This,box,list)	\
    (This)->lpVtbl -> BoxIntersection(This,box,list)

#define IRdVolumeTree_RemoveObject(This,pNode)	\
    (This)->lpVtbl -> RemoveObject(This,pNode)

#define IRdVolumeTree_SetDepth(This,depth)	\
    (This)->lpVtbl -> SetDepth(This,depth)

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

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

#define IRdVolumeTree_FrustumIntersection(This,pViewRoot,planes,list)	\
    (This)->lpVtbl -> FrustumIntersection(This,pViewRoot,planes,list)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdVolumeTree_SetBox_Proxy( 
    IRdVolumeTree * This,
    /* [in] */ RtFloat *box);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdVolumeTree_GetBox_Proxy( 
    IRdVolumeTree * This,
    /* [out] */ RtFloat *box);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdVolumeTree_InitData_Proxy( 
    IRdVolumeTree * This,
    /* [in] */ RtFloat *box);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdVolumeTree_ClearData_Proxy( 
    IRdVolumeTree * This);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdVolumeTree_RayIntersection_Proxy( 
    IRdVolumeTree * This,
    /* [in] */ RtPoint *p0,
    /* [in] */ RtPoint *ray,
    /* [out] */ IRsNodeList **node);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdVolumeTree_UpdateBBox_Proxy( 
    IRdVolumeTree * This,
    /* [in] */ IRsBaseNode *node,
    /* [in] */ IRdFloatArray *box);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdVolumeTree_AddBBox_Proxy( 
    IRdVolumeTree * This,
    /* [in] */ IRsBaseNode *node,
    /* [in] */ IRdFloatArray *box);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdVolumeTree_AddObject_Proxy( 
    IRdVolumeTree * This,
    /* [in] */ IRsBaseNode *pNode);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdVolumeTree_BoxIntersection_Proxy( 
    IRdVolumeTree * This,
    /* [in] */ RtFloat *box,
    /* [out] */ IRsNodeList **list);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdVolumeTree_RemoveObject_Proxy( 
    IRdVolumeTree * This,
    /* [in] */ IRsBaseNode *pNode);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdVolumeTree_SetDepth_Proxy( 
    IRdVolumeTree * This,
    /* [in] */ RtUshort depth);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdVolumeTree_SetNode_Proxy( 
    IRdVolumeTree * This,
    /* [in] */ IRsNode *pNode);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdVolumeTree_GetNode_Proxy( 
    IRdVolumeTree * This,
    /* [out] */ IRsNode **pNode);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdVolumeTree_FrustumIntersection_Proxy( 
    IRdVolumeTree * This,
    /* [in] */ IRsNode *pViewRoot,
    /* [in] */ RtVector4f *planes,
    /* [out] */ IRsNodeList **list);


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



#endif 	/* __IRdVolumeTree_INTERFACE_DEFINED__ */


#ifndef __IRsStreamSessionManager_INTERFACE_DEFINED__
#define __IRsStreamSessionManager_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRsStreamSessionManager;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("60930D78-5027-4697-A8B6-362DCFB4335A")
    IRsStreamSessionManager : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

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

    interface IRsStreamSessionManager
    {
        CONST_VTBL struct IRsStreamSessionManagerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsStreamSessionManager_INTERFACE_DEFINED__ */


#ifndef __IRsConsistencyCheckMeshStream_INTERFACE_DEFINED__
#define __IRsConsistencyCheckMeshStream_INTERFACE_DEFINED__

/* interface IRsConsistencyCheckMeshStream */
/* [unique][helpstring][uuid][local][object] */ 


EXTERN_C const IID IID_IRsConsistencyCheckMeshStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6932BE16-4AC4-4756-B5B1-CBFCD31BF3A6")
    IRsConsistencyCheckMeshStream : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CheckMeshStreamConsistency( 
            /* [in] */ IRdMesh *pMesh) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsConsistencyCheckMeshStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsConsistencyCheckMeshStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsConsistencyCheckMeshStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsConsistencyCheckMeshStream * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CheckMeshStreamConsistency )( 
            IRsConsistencyCheckMeshStream * This,
            /* [in] */ IRdMesh *pMesh);
        
        END_INTERFACE
    } IRsConsistencyCheckMeshStreamVtbl;

    interface IRsConsistencyCheckMeshStream
    {
        CONST_VTBL struct IRsConsistencyCheckMeshStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IRsConsistencyCheckMeshStream_CheckMeshStreamConsistency(This,pMesh)	\
    (This)->lpVtbl -> CheckMeshStreamConsistency(This,pMesh)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsConsistencyCheckMeshStream_CheckMeshStreamConsistency_Proxy( 
    IRsConsistencyCheckMeshStream * This,
    /* [in] */ IRdMesh *pMesh);


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



#endif 	/* __IRsConsistencyCheckMeshStream_INTERFACE_DEFINED__ */


#ifndef __IRsCachedStream_INTERFACE_DEFINED__
#define __IRsCachedStream_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRsCachedStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7CFCE8A9-E95D-456a-A4C1-354098DEC5A9")
    IRsCachedStream : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetStreamEstimatedSize( 
            /* [in] */ RtUlong *pdwSize) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE IsStreamValid( 
            /* [in] */ IUnknown *pResource) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsCachedStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsCachedStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsCachedStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsCachedStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetStreamEstimatedSize )( 
            IRsCachedStream * This,
            /* [in] */ RtUlong *pdwSize);
        
        HRESULT ( STDMETHODCALLTYPE *IsStreamValid )( 
            IRsCachedStream * This,
            /* [in] */ IUnknown *pResource);
        
        END_INTERFACE
    } IRsCachedStreamVtbl;

    interface IRsCachedStream
    {
        CONST_VTBL struct IRsCachedStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IRsCachedStream_GetStreamEstimatedSize(This,pdwSize)	\
    (This)->lpVtbl -> GetStreamEstimatedSize(This,pdwSize)

#define IRsCachedStream_IsStreamValid(This,pResource)	\
    (This)->lpVtbl -> IsStreamValid(This,pResource)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsCachedStream_GetStreamEstimatedSize_Proxy( 
    IRsCachedStream * This,
    /* [in] */ RtUlong *pdwSize);


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


HRESULT STDMETHODCALLTYPE IRsCachedStream_IsStreamValid_Proxy( 
    IRsCachedStream * This,
    /* [in] */ IUnknown *pResource);


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



#endif 	/* __IRsCachedStream_INTERFACE_DEFINED__ */


#ifndef __IRdNormalsStream_INTERFACE_DEFINED__
#define __IRdNormalsStream_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdNormalsStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("705AC5F0-DF9B-4898-B79D-58D9E0164F85")
    IRdNormalsStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumNormals( 
            /* [retval][out] */ RtDWORD *dwNumNormals) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumNormals( 
            /* [in] */ RtDWORD dwNumNormals) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_x( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_x( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_y( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_y( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_z( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_z( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumVertexNormals( 
            /* [retval][out] */ RtDWORD *dwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumVertexNormals( 
            /* [in] */ RtDWORD dwNumVertexNormals) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdNormalsStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdNormalsStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdNormalsStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdNormalsStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdNormalsStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdNormalsStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdNormalsStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdNormalsStream * 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 *GetNumNormals )( 
            IRdNormalsStream * This,
            /* [retval][out] */ RtDWORD *dwNumNormals);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumNormals )( 
            IRdNormalsStream * This,
            /* [in] */ RtDWORD dwNumNormals);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_x )( 
            IRdNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_x )( 
            IRdNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_y )( 
            IRdNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_y )( 
            IRdNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_z )( 
            IRdNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_z )( 
            IRdNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNumVertexNormals )( 
            IRdNormalsStream * This,
            /* [retval][out] */ RtDWORD *dwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumVertexNormals )( 
            IRdNormalsStream * This,
            /* [in] */ RtDWORD dwNumVertexNormals);
        
        END_INTERFACE
    } IRdNormalsStreamVtbl;

    interface IRdNormalsStream
    {
        CONST_VTBL struct IRdNormalsStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdNormalsStream_GetNumNormals(This,dwNumNormals)	\
    (This)->lpVtbl -> GetNumNormals(This,dwNumNormals)

#define IRdNormalsStream_SetNumNormals(This,dwNumNormals)	\
    (This)->lpVtbl -> SetNumNormals(This,dwNumNormals)

#define IRdNormalsStream_get_x(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_x(This,dwIndex,pVal)

#define IRdNormalsStream_put_x(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_x(This,dwIndex,newVal)

#define IRdNormalsStream_get_y(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_y(This,dwIndex,pVal)

#define IRdNormalsStream_put_y(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_y(This,dwIndex,newVal)

#define IRdNormalsStream_get_z(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_z(This,dwIndex,pVal)

#define IRdNormalsStream_put_z(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_z(This,dwIndex,newVal)

#define IRdNormalsStream_GetNumVertexNormals(This,dwNumVertices)	\
    (This)->lpVtbl -> GetNumVertexNormals(This,dwNumVertices)

#define IRdNormalsStream_SetNumVertexNormals(This,dwNumVertexNormals)	\
    (This)->lpVtbl -> SetNumVertexNormals(This,dwNumVertexNormals)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdNormalsStream_GetNumNormals_Proxy( 
    IRdNormalsStream * This,
    /* [retval][out] */ RtDWORD *dwNumNormals);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdNormalsStream_SetNumNormals_Proxy( 
    IRdNormalsStream * This,
    /* [in] */ RtDWORD dwNumNormals);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdNormalsStream_get_x_Proxy( 
    IRdNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdNormalsStream_put_x_Proxy( 
    IRdNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdNormalsStream_get_y_Proxy( 
    IRdNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdNormalsStream_put_y_Proxy( 
    IRdNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdNormalsStream_get_z_Proxy( 
    IRdNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdNormalsStream_put_z_Proxy( 
    IRdNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdNormalsStream_GetNumVertexNormals_Proxy( 
    IRdNormalsStream * This,
    /* [retval][out] */ RtDWORD *dwNumVertices);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdNormalsStream_SetNumVertexNormals_Proxy( 
    IRdNormalsStream * This,
    /* [in] */ RtDWORD dwNumVertexNormals);


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



#endif 	/* __IRdNormalsStream_INTERFACE_DEFINED__ */


#ifndef __IRdGenCustStream_INTERFACE_DEFINED__
#define __IRdGenCustStream_INTERFACE_DEFINED__

/* interface IRdGenCustStream */
/* [unique][helpstring][uuid][local][object] */ 


EXTERN_C const IID IID_IRdGenCustStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("39E07A61-10F9-4FF7-836B-89D1A1C1AC6F")
    IRdGenCustStream : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetStreamId( 
            /* [in] */ RtStreamId idStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetDefaultElem( 
            /* [in] */ void *pDefElem,
            /* [in] */ RtDWORD dwElemSize) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdGenCustStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdGenCustStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdGenCustStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdGenCustStream * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetStreamId )( 
            IRdGenCustStream * This,
            /* [in] */ RtStreamId idStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDefaultElem )( 
            IRdGenCustStream * This,
            /* [in] */ void *pDefElem,
            /* [in] */ RtDWORD dwElemSize);
        
        END_INTERFACE
    } IRdGenCustStreamVtbl;

    interface IRdGenCustStream
    {
        CONST_VTBL struct IRdGenCustStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IRdGenCustStream_SetStreamId(This,idStream)	\
    (This)->lpVtbl -> SetStreamId(This,idStream)

#define IRdGenCustStream_SetDefaultElem(This,pDefElem,dwElemSize)	\
    (This)->lpVtbl -> SetDefaultElem(This,pDefElem,dwElemSize)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdGenCustStream_SetStreamId_Proxy( 
    IRdGenCustStream * This,
    /* [in] */ RtStreamId idStream);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdGenCustStream_SetDefaultElem_Proxy( 
    IRdGenCustStream * This,
    /* [in] */ void *pDefElem,
    /* [in] */ RtDWORD dwElemSize);


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



#endif 	/* __IRdGenCustStream_INTERFACE_DEFINED__ */


#ifndef __IRdMaterialIndexStream_INTERFACE_DEFINED__
#define __IRdMaterialIndexStream_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdMaterialIndexStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("66559AFA-C562-4c82-B99B-3A49B6352A05")
    IRdMaterialIndexStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumMaterialIndices( 
            /* [retval][out] */ RtDWORD *dwNumTripleIndices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumMaterialIndices( 
            /* [in] */ RtDWORD dwNumMaterialIndices) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_index( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtDWORD *index) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_index( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD index) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdMaterialIndexStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdMaterialIndexStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdMaterialIndexStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdMaterialIndexStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdMaterialIndexStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdMaterialIndexStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdMaterialIndexStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdMaterialIndexStream * 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 *GetNumMaterialIndices )( 
            IRdMaterialIndexStream * This,
            /* [retval][out] */ RtDWORD *dwNumTripleIndices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumMaterialIndices )( 
            IRdMaterialIndexStream * This,
            /* [in] */ RtDWORD dwNumMaterialIndices);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_index )( 
            IRdMaterialIndexStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtDWORD *index);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_index )( 
            IRdMaterialIndexStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD index);
        
        END_INTERFACE
    } IRdMaterialIndexStreamVtbl;

    interface IRdMaterialIndexStream
    {
        CONST_VTBL struct IRdMaterialIndexStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdMaterialIndexStream_GetNumMaterialIndices(This,dwNumTripleIndices)	\
    (This)->lpVtbl -> GetNumMaterialIndices(This,dwNumTripleIndices)

#define IRdMaterialIndexStream_SetNumMaterialIndices(This,dwNumMaterialIndices)	\
    (This)->lpVtbl -> SetNumMaterialIndices(This,dwNumMaterialIndices)

#define IRdMaterialIndexStream_get_index(This,dwIndex,index)	\
    (This)->lpVtbl -> get_index(This,dwIndex,index)

#define IRdMaterialIndexStream_put_index(This,dwIndex,index)	\
    (This)->lpVtbl -> put_index(This,dwIndex,index)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMaterialIndexStream_GetNumMaterialIndices_Proxy( 
    IRdMaterialIndexStream * This,
    /* [retval][out] */ RtDWORD *dwNumTripleIndices);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMaterialIndexStream_SetNumMaterialIndices_Proxy( 
    IRdMaterialIndexStream * This,
    /* [in] */ RtDWORD dwNumMaterialIndices);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdMaterialIndexStream_get_index_Proxy( 
    IRdMaterialIndexStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtDWORD *index);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdMaterialIndexStream_put_index_Proxy( 
    IRdMaterialIndexStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtDWORD index);


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



#endif 	/* __IRdMaterialIndexStream_INTERFACE_DEFINED__ */


#ifndef __IRdEdgeNeighborsStream_INTERFACE_DEFINED__
#define __IRdEdgeNeighborsStream_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdEdgeNeighborsStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("AFE3BEEF-8F3D-4c19-B6DA-51B828F8CAFD")
    IRdEdgeNeighborsStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumTripleIndices( 
            /* [retval][out] */ RtDWORD *dwNumTripleIndices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumTripleIndices( 
            /* [in] */ RtDWORD dwNumTripleIndices) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_i( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_i( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_j( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_j( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_k( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_k( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetupTimestamps( 
            /* [in] */ IUnknown *pMesh) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdEdgeNeighborsStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdEdgeNeighborsStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdEdgeNeighborsStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdEdgeNeighborsStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdEdgeNeighborsStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdEdgeNeighborsStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdEdgeNeighborsStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdEdgeNeighborsStream * 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 *GetNumTripleIndices )( 
            IRdEdgeNeighborsStream * This,
            /* [retval][out] */ RtDWORD *dwNumTripleIndices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumTripleIndices )( 
            IRdEdgeNeighborsStream * This,
            /* [in] */ RtDWORD dwNumTripleIndices);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_i )( 
            IRdEdgeNeighborsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_i )( 
            IRdEdgeNeighborsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_j )( 
            IRdEdgeNeighborsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_j )( 
            IRdEdgeNeighborsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_k )( 
            IRdEdgeNeighborsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_k )( 
            IRdEdgeNeighborsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetupTimestamps )( 
            IRdEdgeNeighborsStream * This,
            /* [in] */ IUnknown *pMesh);
        
        END_INTERFACE
    } IRdEdgeNeighborsStreamVtbl;

    interface IRdEdgeNeighborsStream
    {
        CONST_VTBL struct IRdEdgeNeighborsStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdEdgeNeighborsStream_GetNumTripleIndices(This,dwNumTripleIndices)	\
    (This)->lpVtbl -> GetNumTripleIndices(This,dwNumTripleIndices)

#define IRdEdgeNeighborsStream_SetNumTripleIndices(This,dwNumTripleIndices)	\
    (This)->lpVtbl -> SetNumTripleIndices(This,dwNumTripleIndices)

#define IRdEdgeNeighborsStream_get_i(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_i(This,dwIndex,pVal)

#define IRdEdgeNeighborsStream_put_i(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_i(This,dwIndex,newVal)

#define IRdEdgeNeighborsStream_get_j(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_j(This,dwIndex,pVal)

#define IRdEdgeNeighborsStream_put_j(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_j(This,dwIndex,newVal)

#define IRdEdgeNeighborsStream_get_k(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_k(This,dwIndex,pVal)

#define IRdEdgeNeighborsStream_put_k(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_k(This,dwIndex,newVal)

#define IRdEdgeNeighborsStream_SetupTimestamps(This,pMesh)	\
    (This)->lpVtbl -> SetupTimestamps(This,pMesh)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdEdgeNeighborsStream_GetNumTripleIndices_Proxy( 
    IRdEdgeNeighborsStream * This,
    /* [retval][out] */ RtDWORD *dwNumTripleIndices);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdEdgeNeighborsStream_SetNumTripleIndices_Proxy( 
    IRdEdgeNeighborsStream * This,
    /* [in] */ RtDWORD dwNumTripleIndices);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdEdgeNeighborsStream_get_i_Proxy( 
    IRdEdgeNeighborsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdEdgeNeighborsStream_put_i_Proxy( 
    IRdEdgeNeighborsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdEdgeNeighborsStream_get_j_Proxy( 
    IRdEdgeNeighborsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdEdgeNeighborsStream_put_j_Proxy( 
    IRdEdgeNeighborsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdEdgeNeighborsStream_get_k_Proxy( 
    IRdEdgeNeighborsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdEdgeNeighborsStream_put_k_Proxy( 
    IRdEdgeNeighborsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


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


/* [local] */ HRESULT STDMETHODCALLTYPE IRdEdgeNeighborsStream_SetupTimestamps_Proxy( 
    IRdEdgeNeighborsStream * This,
    /* [in] */ IUnknown *pMesh);


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



#endif 	/* __IRdEdgeNeighborsStream_INTERFACE_DEFINED__ */


#ifndef __IRdUVTriangleStream_INTERFACE_DEFINED__
#define __IRdUVTriangleStream_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdUVTriangleStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("45FF7B38-B916-45da-951A-25C244375BD0")
    IRdUVTriangleStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumUVTripleIndices( 
            /* [retval][out] */ RtDWORD *dwNumTripleIndices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumUVTripleIndices( 
            /* [in] */ RtDWORD dwNumUVTripleIndices) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_i( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_i( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_j( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_j( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_k( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_k( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdUVTriangleStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdUVTriangleStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdUVTriangleStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdUVTriangleStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdUVTriangleStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdUVTriangleStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdUVTriangleStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdUVTriangleStream * 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 *GetNumUVTripleIndices )( 
            IRdUVTriangleStream * This,
            /* [retval][out] */ RtDWORD *dwNumTripleIndices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumUVTripleIndices )( 
            IRdUVTriangleStream * This,
            /* [in] */ RtDWORD dwNumUVTripleIndices);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_i )( 
            IRdUVTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_i )( 
            IRdUVTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_j )( 
            IRdUVTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_j )( 
            IRdUVTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_k )( 
            IRdUVTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_k )( 
            IRdUVTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        END_INTERFACE
    } IRdUVTriangleStreamVtbl;

    interface IRdUVTriangleStream
    {
        CONST_VTBL struct IRdUVTriangleStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdUVTriangleStream_GetNumUVTripleIndices(This,dwNumTripleIndices)	\
    (This)->lpVtbl -> GetNumUVTripleIndices(This,dwNumTripleIndices)

#define IRdUVTriangleStream_SetNumUVTripleIndices(This,dwNumUVTripleIndices)	\
    (This)->lpVtbl -> SetNumUVTripleIndices(This,dwNumUVTripleIndices)

#define IRdUVTriangleStream_get_i(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_i(This,dwIndex,pVal)

#define IRdUVTriangleStream_put_i(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_i(This,dwIndex,newVal)

#define IRdUVTriangleStream_get_j(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_j(This,dwIndex,pVal)

#define IRdUVTriangleStream_put_j(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_j(This,dwIndex,newVal)

#define IRdUVTriangleStream_get_k(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_k(This,dwIndex,pVal)

#define IRdUVTriangleStream_put_k(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_k(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdUVTriangleStream_GetNumUVTripleIndices_Proxy( 
    IRdUVTriangleStream * This,
    /* [retval][out] */ RtDWORD *dwNumTripleIndices);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdUVTriangleStream_SetNumUVTripleIndices_Proxy( 
    IRdUVTriangleStream * This,
    /* [in] */ RtDWORD dwNumUVTripleIndices);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdUVTriangleStream_get_i_Proxy( 
    IRdUVTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdUVTriangleStream_put_i_Proxy( 
    IRdUVTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdUVTriangleStream_get_j_Proxy( 
    IRdUVTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdUVTriangleStream_put_j_Proxy( 
    IRdUVTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdUVTriangleStream_get_k_Proxy( 
    IRdUVTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdUVTriangleStream_put_k_Proxy( 
    IRdUVTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


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



#endif 	/* __IRdUVTriangleStream_INTERFACE_DEFINED__ */


#ifndef __IRdUVCoordStream_INTERFACE_DEFINED__
#define __IRdUVCoordStream_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdUVCoordStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("398938C2-1FAC-49ba-8AB9-67E222CAF492")
    IRdUVCoordStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumUVCoords( 
            /* [retval][out] */ RtDWORD *dwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumUVCoords( 
            /* [in] */ RtDWORD dwNumUVCoords) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_u( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_u( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_v( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_v( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdUVCoordStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdUVCoordStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdUVCoordStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdUVCoordStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdUVCoordStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdUVCoordStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdUVCoordStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdUVCoordStream * 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 *GetNumUVCoords )( 
            IRdUVCoordStream * This,
            /* [retval][out] */ RtDWORD *dwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumUVCoords )( 
            IRdUVCoordStream * This,
            /* [in] */ RtDWORD dwNumUVCoords);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_u )( 
            IRdUVCoordStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_u )( 
            IRdUVCoordStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_v )( 
            IRdUVCoordStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_v )( 
            IRdUVCoordStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        END_INTERFACE
    } IRdUVCoordStreamVtbl;

    interface IRdUVCoordStream
    {
        CONST_VTBL struct IRdUVCoordStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdUVCoordStream_GetNumUVCoords(This,dwNumVertices)	\
    (This)->lpVtbl -> GetNumUVCoords(This,dwNumVertices)

#define IRdUVCoordStream_SetNumUVCoords(This,dwNumUVCoords)	\
    (This)->lpVtbl -> SetNumUVCoords(This,dwNumUVCoords)

#define IRdUVCoordStream_get_u(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_u(This,dwIndex,pVal)

#define IRdUVCoordStream_put_u(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_u(This,dwIndex,newVal)

#define IRdUVCoordStream_get_v(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_v(This,dwIndex,pVal)

#define IRdUVCoordStream_put_v(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_v(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdUVCoordStream_GetNumUVCoords_Proxy( 
    IRdUVCoordStream * This,
    /* [retval][out] */ RtDWORD *dwNumVertices);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdUVCoordStream_SetNumUVCoords_Proxy( 
    IRdUVCoordStream * This,
    /* [in] */ RtDWORD dwNumUVCoords);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdUVCoordStream_get_u_Proxy( 
    IRdUVCoordStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdUVCoordStream_put_u_Proxy( 
    IRdUVCoordStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdUVCoordStream_get_v_Proxy( 
    IRdUVCoordStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdUVCoordStream_put_v_Proxy( 
    IRdUVCoordStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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



#endif 	/* __IRdUVCoordStream_INTERFACE_DEFINED__ */


#ifndef __IRdUVSecTriangleStream_INTERFACE_DEFINED__
#define __IRdUVSecTriangleStream_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdUVSecTriangleStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("EBF71105-2CC4-488b-A276-543C7ECD79B4")
    IRdUVSecTriangleStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumUVTripleIndices( 
            /* [retval][out] */ RtDWORD *dwNumTripleIndices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumUVTripleIndices( 
            /* [in] */ RtDWORD dwNumUVTripleIndices) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_i( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_i( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_j( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_j( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_k( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_k( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdUVSecTriangleStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdUVSecTriangleStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdUVSecTriangleStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdUVSecTriangleStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdUVSecTriangleStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdUVSecTriangleStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdUVSecTriangleStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdUVSecTriangleStream * 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 *GetNumUVTripleIndices )( 
            IRdUVSecTriangleStream * This,
            /* [retval][out] */ RtDWORD *dwNumTripleIndices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumUVTripleIndices )( 
            IRdUVSecTriangleStream * This,
            /* [in] */ RtDWORD dwNumUVTripleIndices);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_i )( 
            IRdUVSecTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_i )( 
            IRdUVSecTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_j )( 
            IRdUVSecTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_j )( 
            IRdUVSecTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_k )( 
            IRdUVSecTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_k )( 
            IRdUVSecTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        END_INTERFACE
    } IRdUVSecTriangleStreamVtbl;

    interface IRdUVSecTriangleStream
    {
        CONST_VTBL struct IRdUVSecTriangleStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdUVSecTriangleStream_GetNumUVTripleIndices(This,dwNumTripleIndices)	\
    (This)->lpVtbl -> GetNumUVTripleIndices(This,dwNumTripleIndices)

#define IRdUVSecTriangleStream_SetNumUVTripleIndices(This,dwNumUVTripleIndices)	\
    (This)->lpVtbl -> SetNumUVTripleIndices(This,dwNumUVTripleIndices)

#define IRdUVSecTriangleStream_get_i(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_i(This,dwIndex,pVal)

#define IRdUVSecTriangleStream_put_i(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_i(This,dwIndex,newVal)

#define IRdUVSecTriangleStream_get_j(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_j(This,dwIndex,pVal)

#define IRdUVSecTriangleStream_put_j(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_j(This,dwIndex,newVal)

#define IRdUVSecTriangleStream_get_k(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_k(This,dwIndex,pVal)

#define IRdUVSecTriangleStream_put_k(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_k(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdUVSecTriangleStream_GetNumUVTripleIndices_Proxy( 
    IRdUVSecTriangleStream * This,
    /* [retval][out] */ RtDWORD *dwNumTripleIndices);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdUVSecTriangleStream_SetNumUVTripleIndices_Proxy( 
    IRdUVSecTriangleStream * This,
    /* [in] */ RtDWORD dwNumUVTripleIndices);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdUVSecTriangleStream_get_i_Proxy( 
    IRdUVSecTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdUVSecTriangleStream_put_i_Proxy( 
    IRdUVSecTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdUVSecTriangleStream_get_j_Proxy( 
    IRdUVSecTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdUVSecTriangleStream_put_j_Proxy( 
    IRdUVSecTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdUVSecTriangleStream_get_k_Proxy( 
    IRdUVSecTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdUVSecTriangleStream_put_k_Proxy( 
    IRdUVSecTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


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



#endif 	/* __IRdUVSecTriangleStream_INTERFACE_DEFINED__ */


#ifndef __IRdUVSecCoordStream_INTERFACE_DEFINED__
#define __IRdUVSecCoordStream_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdUVSecCoordStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E642E592-07EA-4d21-AB9D-72F61D3C9112")
    IRdUVSecCoordStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumUVCoords( 
            /* [retval][out] */ RtDWORD *dwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumUVCoords( 
            /* [in] */ RtDWORD dwNumUVCoords) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_u( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_u( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_v( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_v( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdUVSecCoordStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdUVSecCoordStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdUVSecCoordStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdUVSecCoordStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdUVSecCoordStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdUVSecCoordStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdUVSecCoordStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdUVSecCoordStream * 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 *GetNumUVCoords )( 
            IRdUVSecCoordStream * This,
            /* [retval][out] */ RtDWORD *dwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumUVCoords )( 
            IRdUVSecCoordStream * This,
            /* [in] */ RtDWORD dwNumUVCoords);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_u )( 
            IRdUVSecCoordStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_u )( 
            IRdUVSecCoordStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_v )( 
            IRdUVSecCoordStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_v )( 
            IRdUVSecCoordStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        END_INTERFACE
    } IRdUVSecCoordStreamVtbl;

    interface IRdUVSecCoordStream
    {
        CONST_VTBL struct IRdUVSecCoordStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdUVSecCoordStream_GetNumUVCoords(This,dwNumVertices)	\
    (This)->lpVtbl -> GetNumUVCoords(This,dwNumVertices)

#define IRdUVSecCoordStream_SetNumUVCoords(This,dwNumUVCoords)	\
    (This)->lpVtbl -> SetNumUVCoords(This,dwNumUVCoords)

#define IRdUVSecCoordStream_get_u(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_u(This,dwIndex,pVal)

#define IRdUVSecCoordStream_put_u(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_u(This,dwIndex,newVal)

#define IRdUVSecCoordStream_get_v(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_v(This,dwIndex,pVal)

#define IRdUVSecCoordStream_put_v(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_v(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdUVSecCoordStream_GetNumUVCoords_Proxy( 
    IRdUVSecCoordStream * This,
    /* [retval][out] */ RtDWORD *dwNumVertices);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdUVSecCoordStream_SetNumUVCoords_Proxy( 
    IRdUVSecCoordStream * This,
    /* [in] */ RtDWORD dwNumUVCoords);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdUVSecCoordStream_get_u_Proxy( 
    IRdUVSecCoordStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdUVSecCoordStream_put_u_Proxy( 
    IRdUVSecCoordStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdUVSecCoordStream_get_v_Proxy( 
    IRdUVSecCoordStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdUVSecCoordStream_put_v_Proxy( 
    IRdUVSecCoordStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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



#endif 	/* __IRdUVSecCoordStream_INTERFACE_DEFINED__ */


#ifndef __IRdFacesStream_INTERFACE_DEFINED__
#define __IRdFacesStream_INTERFACE_DEFINED__

/* interface IRdFacesStream */
/* [unique][helpstring][dual][uuid][local][object] */ 


EXTERN_C const IID IID_IRdFacesStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2C5FB1C5-6CDB-4cb8-9189-6F0DAA042702")
    IRdFacesStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumFaces( 
            /* [retval][out] */ RtDWORD *dwNumFaces) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumFaces( 
            /* [in] */ RtDWORD dwNumFaces) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdFacesStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdFacesStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdFacesStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdFacesStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdFacesStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdFacesStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdFacesStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdFacesStream * 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 *GetNumFaces )( 
            IRdFacesStream * This,
            /* [retval][out] */ RtDWORD *dwNumFaces);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumFaces )( 
            IRdFacesStream * This,
            /* [in] */ RtDWORD dwNumFaces);
        
        END_INTERFACE
    } IRdFacesStreamVtbl;

    interface IRdFacesStream
    {
        CONST_VTBL struct IRdFacesStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdFacesStream_GetNumFaces(This,dwNumFaces)	\
    (This)->lpVtbl -> GetNumFaces(This,dwNumFaces)

#define IRdFacesStream_SetNumFaces(This,dwNumFaces)	\
    (This)->lpVtbl -> SetNumFaces(This,dwNumFaces)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdFacesStream_GetNumFaces_Proxy( 
    IRdFacesStream * This,
    /* [retval][out] */ RtDWORD *dwNumFaces);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdFacesStream_SetNumFaces_Proxy( 
    IRdFacesStream * This,
    /* [in] */ RtDWORD dwNumFaces);


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



#endif 	/* __IRdFacesStream_INTERFACE_DEFINED__ */


#ifndef __IRdFaceTrianglesStream_INTERFACE_DEFINED__
#define __IRdFaceTrianglesStream_INTERFACE_DEFINED__

/* interface IRdFaceTrianglesStream */
/* [unique][helpstring][dual][uuid][local][object] */ 


EXTERN_C const IID IID_IRdFaceTrianglesStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E0718485-1677-42f5-B9EE-A13CAF69B73A")
    IRdFaceTrianglesStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumFacesTriangles( 
            /* [retval][out] */ RtDWORD *dwNumFacesTriangles) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumFacesTriangles( 
            /* [in] */ RtDWORD dwNumFacesTriangles) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdFaceTrianglesStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdFaceTrianglesStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdFaceTrianglesStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdFaceTrianglesStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdFaceTrianglesStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdFaceTrianglesStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdFaceTrianglesStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdFaceTrianglesStream * 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 *GetNumFacesTriangles )( 
            IRdFaceTrianglesStream * This,
            /* [retval][out] */ RtDWORD *dwNumFacesTriangles);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumFacesTriangles )( 
            IRdFaceTrianglesStream * This,
            /* [in] */ RtDWORD dwNumFacesTriangles);
        
        END_INTERFACE
    } IRdFaceTrianglesStreamVtbl;

    interface IRdFaceTrianglesStream
    {
        CONST_VTBL struct IRdFaceTrianglesStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdFaceTrianglesStream_GetNumFacesTriangles(This,dwNumFacesTriangles)	\
    (This)->lpVtbl -> GetNumFacesTriangles(This,dwNumFacesTriangles)

#define IRdFaceTrianglesStream_SetNumFacesTriangles(This,dwNumFacesTriangles)	\
    (This)->lpVtbl -> SetNumFacesTriangles(This,dwNumFacesTriangles)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdFaceTrianglesStream_GetNumFacesTriangles_Proxy( 
    IRdFaceTrianglesStream * This,
    /* [retval][out] */ RtDWORD *dwNumFacesTriangles);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdFaceTrianglesStream_SetNumFacesTriangles_Proxy( 
    IRdFaceTrianglesStream * This,
    /* [in] */ RtDWORD dwNumFacesTriangles);


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



#endif 	/* __IRdFaceTrianglesStream_INTERFACE_DEFINED__ */


#ifndef __IRdFaceUnityStream_INTERFACE_DEFINED__
#define __IRdFaceUnityStream_INTERFACE_DEFINED__

/* interface IRdFaceUnityStream */
/* [unique][helpstring][dual][uuid][local][object] */ 


EXTERN_C const IID IID_IRdFaceUnityStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9D91BDCA-E474-4120-8F14-DF7186B272D5")
    IRdFaceUnityStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumFaceUnities( 
            /* [retval][out] */ RtDWORD *dwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumFaceUnities( 
            /* [in] */ RtDWORD dwNumFaceUnities) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetupTimestamps( 
            /* [in] */ IUnknown *pMesh) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdFaceUnityStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdFaceUnityStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdFaceUnityStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdFaceUnityStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdFaceUnityStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdFaceUnityStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdFaceUnityStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdFaceUnityStream * 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 *GetNumFaceUnities )( 
            IRdFaceUnityStream * This,
            /* [retval][out] */ RtDWORD *dwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumFaceUnities )( 
            IRdFaceUnityStream * This,
            /* [in] */ RtDWORD dwNumFaceUnities);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetupTimestamps )( 
            IRdFaceUnityStream * This,
            /* [in] */ IUnknown *pMesh);
        
        END_INTERFACE
    } IRdFaceUnityStreamVtbl;

    interface IRdFaceUnityStream
    {
        CONST_VTBL struct IRdFaceUnityStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdFaceUnityStream_GetNumFaceUnities(This,dwNumVertices)	\
    (This)->lpVtbl -> GetNumFaceUnities(This,dwNumVertices)

#define IRdFaceUnityStream_SetNumFaceUnities(This,dwNumFaceUnities)	\
    (This)->lpVtbl -> SetNumFaceUnities(This,dwNumFaceUnities)

#define IRdFaceUnityStream_SetupTimestamps(This,pMesh)	\
    (This)->lpVtbl -> SetupTimestamps(This,pMesh)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdFaceUnityStream_GetNumFaceUnities_Proxy( 
    IRdFaceUnityStream * This,
    /* [retval][out] */ RtDWORD *dwNumVertices);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdFaceUnityStream_SetNumFaceUnities_Proxy( 
    IRdFaceUnityStream * This,
    /* [in] */ RtDWORD dwNumFaceUnities);


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


/* [local] */ HRESULT STDMETHODCALLTYPE IRdFaceUnityStream_SetupTimestamps_Proxy( 
    IRdFaceUnityStream * This,
    /* [in] */ IUnknown *pMesh);


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



#endif 	/* __IRdFaceUnityStream_INTERFACE_DEFINED__ */


#ifndef __IRdSuperfaceUnityStream_INTERFACE_DEFINED__
#define __IRdSuperfaceUnityStream_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdSuperfaceUnityStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8D168158-214F-4c5e-BA8D-008BF6ED144C")
    IRdSuperfaceUnityStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumFaceUnities( 
            /* [retval][out] */ RtDWORD *dwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumFaceUnities( 
            /* [in] */ RtDWORD dwNumFaceUnities) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetupTimestamps( 
            /* [in] */ IUnknown *pMesh) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdSuperfaceUnityStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdSuperfaceUnityStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdSuperfaceUnityStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdSuperfaceUnityStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdSuperfaceUnityStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdSuperfaceUnityStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdSuperfaceUnityStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdSuperfaceUnityStream * 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 *GetNumFaceUnities )( 
            IRdSuperfaceUnityStream * This,
            /* [retval][out] */ RtDWORD *dwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumFaceUnities )( 
            IRdSuperfaceUnityStream * This,
            /* [in] */ RtDWORD dwNumFaceUnities);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetupTimestamps )( 
            IRdSuperfaceUnityStream * This,
            /* [in] */ IUnknown *pMesh);
        
        END_INTERFACE
    } IRdSuperfaceUnityStreamVtbl;

    interface IRdSuperfaceUnityStream
    {
        CONST_VTBL struct IRdSuperfaceUnityStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdSuperfaceUnityStream_GetNumFaceUnities(This,dwNumVertices)	\
    (This)->lpVtbl -> GetNumFaceUnities(This,dwNumVertices)

#define IRdSuperfaceUnityStream_SetNumFaceUnities(This,dwNumFaceUnities)	\
    (This)->lpVtbl -> SetNumFaceUnities(This,dwNumFaceUnities)

#define IRdSuperfaceUnityStream_SetupTimestamps(This,pMesh)	\
    (This)->lpVtbl -> SetupTimestamps(This,pMesh)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSuperfaceUnityStream_GetNumFaceUnities_Proxy( 
    IRdSuperfaceUnityStream * This,
    /* [retval][out] */ RtDWORD *dwNumVertices);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSuperfaceUnityStream_SetNumFaceUnities_Proxy( 
    IRdSuperfaceUnityStream * This,
    /* [in] */ RtDWORD dwNumFaceUnities);


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


/* [local] */ HRESULT STDMETHODCALLTYPE IRdSuperfaceUnityStream_SetupTimestamps_Proxy( 
    IRdSuperfaceUnityStream * This,
    /* [in] */ IUnknown *pMesh);


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



#endif 	/* __IRdSuperfaceUnityStream_INTERFACE_DEFINED__ */


#ifndef __IRdTriangleEdgesStream_INTERFACE_DEFINED__
#define __IRdTriangleEdgesStream_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdTriangleEdgesStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("802779C9-F9CD-4882-9089-17BAB9B44EDA")
    IRdTriangleEdgesStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumTriangleEdges( 
            /* [retval][out] */ RtDWORD *dwNumTripleIndices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumTriangleEdges( 
            /* [in] */ RtDWORD dwNumTriangleEdges) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_edges( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtDWORD *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_edges( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdTriangleEdgesStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdTriangleEdgesStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdTriangleEdgesStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdTriangleEdgesStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdTriangleEdgesStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdTriangleEdgesStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdTriangleEdgesStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdTriangleEdgesStream * 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 *GetNumTriangleEdges )( 
            IRdTriangleEdgesStream * This,
            /* [retval][out] */ RtDWORD *dwNumTripleIndices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumTriangleEdges )( 
            IRdTriangleEdgesStream * This,
            /* [in] */ RtDWORD dwNumTriangleEdges);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_edges )( 
            IRdTriangleEdgesStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtDWORD *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_edges )( 
            IRdTriangleEdgesStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD newVal);
        
        END_INTERFACE
    } IRdTriangleEdgesStreamVtbl;

    interface IRdTriangleEdgesStream
    {
        CONST_VTBL struct IRdTriangleEdgesStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdTriangleEdgesStream_GetNumTriangleEdges(This,dwNumTripleIndices)	\
    (This)->lpVtbl -> GetNumTriangleEdges(This,dwNumTripleIndices)

#define IRdTriangleEdgesStream_SetNumTriangleEdges(This,dwNumTriangleEdges)	\
    (This)->lpVtbl -> SetNumTriangleEdges(This,dwNumTriangleEdges)

#define IRdTriangleEdgesStream_get_edges(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_edges(This,dwIndex,pVal)

#define IRdTriangleEdgesStream_put_edges(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_edges(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleEdgesStream_GetNumTriangleEdges_Proxy( 
    IRdTriangleEdgesStream * This,
    /* [retval][out] */ RtDWORD *dwNumTripleIndices);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleEdgesStream_SetNumTriangleEdges_Proxy( 
    IRdTriangleEdgesStream * This,
    /* [in] */ RtDWORD dwNumTriangleEdges);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTriangleEdgesStream_get_edges_Proxy( 
    IRdTriangleEdgesStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtDWORD *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTriangleEdgesStream_put_edges_Proxy( 
    IRdTriangleEdgesStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtDWORD newVal);


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



#endif 	/* __IRdTriangleEdgesStream_INTERFACE_DEFINED__ */


#ifndef __IRdTriangleNeighboursStream_INTERFACE_DEFINED__
#define __IRdTriangleNeighboursStream_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdTriangleNeighboursStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B44E73BC-25E3-4e5b-A0C8-1D31B7238BCD")
    IRdTriangleNeighboursStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumTripleIndices( 
            /* [retval][out] */ RtDWORD *dwNumTripleIndices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumTripleIndices( 
            /* [in] */ RtDWORD dwNumTripleIndices) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_i( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_i( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_j( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_j( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_k( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_k( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetupTimestamps( 
            /* [in] */ IUnknown *pMesh) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdTriangleNeighboursStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdTriangleNeighboursStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdTriangleNeighboursStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdTriangleNeighboursStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdTriangleNeighboursStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdTriangleNeighboursStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdTriangleNeighboursStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdTriangleNeighboursStream * 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 *GetNumTripleIndices )( 
            IRdTriangleNeighboursStream * This,
            /* [retval][out] */ RtDWORD *dwNumTripleIndices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumTripleIndices )( 
            IRdTriangleNeighboursStream * This,
            /* [in] */ RtDWORD dwNumTripleIndices);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_i )( 
            IRdTriangleNeighboursStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_i )( 
            IRdTriangleNeighboursStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_j )( 
            IRdTriangleNeighboursStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_j )( 
            IRdTriangleNeighboursStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_k )( 
            IRdTriangleNeighboursStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_k )( 
            IRdTriangleNeighboursStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetupTimestamps )( 
            IRdTriangleNeighboursStream * This,
            /* [in] */ IUnknown *pMesh);
        
        END_INTERFACE
    } IRdTriangleNeighboursStreamVtbl;

    interface IRdTriangleNeighboursStream
    {
        CONST_VTBL struct IRdTriangleNeighboursStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdTriangleNeighboursStream_GetNumTripleIndices(This,dwNumTripleIndices)	\
    (This)->lpVtbl -> GetNumTripleIndices(This,dwNumTripleIndices)

#define IRdTriangleNeighboursStream_SetNumTripleIndices(This,dwNumTripleIndices)	\
    (This)->lpVtbl -> SetNumTripleIndices(This,dwNumTripleIndices)

#define IRdTriangleNeighboursStream_get_i(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_i(This,dwIndex,pVal)

#define IRdTriangleNeighboursStream_put_i(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_i(This,dwIndex,newVal)

#define IRdTriangleNeighboursStream_get_j(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_j(This,dwIndex,pVal)

#define IRdTriangleNeighboursStream_put_j(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_j(This,dwIndex,newVal)

#define IRdTriangleNeighboursStream_get_k(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_k(This,dwIndex,pVal)

#define IRdTriangleNeighboursStream_put_k(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_k(This,dwIndex,newVal)

#define IRdTriangleNeighboursStream_SetupTimestamps(This,pMesh)	\
    (This)->lpVtbl -> SetupTimestamps(This,pMesh)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleNeighboursStream_GetNumTripleIndices_Proxy( 
    IRdTriangleNeighboursStream * This,
    /* [retval][out] */ RtDWORD *dwNumTripleIndices);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleNeighboursStream_SetNumTripleIndices_Proxy( 
    IRdTriangleNeighboursStream * This,
    /* [in] */ RtDWORD dwNumTripleIndices);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTriangleNeighboursStream_get_i_Proxy( 
    IRdTriangleNeighboursStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTriangleNeighboursStream_put_i_Proxy( 
    IRdTriangleNeighboursStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTriangleNeighboursStream_get_j_Proxy( 
    IRdTriangleNeighboursStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTriangleNeighboursStream_put_j_Proxy( 
    IRdTriangleNeighboursStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTriangleNeighboursStream_get_k_Proxy( 
    IRdTriangleNeighboursStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTriangleNeighboursStream_put_k_Proxy( 
    IRdTriangleNeighboursStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


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


/* [local] */ HRESULT STDMETHODCALLTYPE IRdTriangleNeighboursStream_SetupTimestamps_Proxy( 
    IRdTriangleNeighboursStream * This,
    /* [in] */ IUnknown *pMesh);


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



#endif 	/* __IRdTriangleNeighboursStream_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1307 */
/* [local] */ 

struct RtSSTriangleEdgeWeight
    {
    RtFloat i;
    RtFloat j;
    RtFloat k;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1307_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1307_v0_0_s_ifspec;

#ifndef __IRdSSEdgeWeightsStream_INTERFACE_DEFINED__
#define __IRdSSEdgeWeightsStream_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdSSEdgeWeightsStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("77AA3E9E-4827-4528-A061-909B13E8EF39")
    IRdSSEdgeWeightsStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumTriangles( 
            /* [retval][out] */ RtDWORD *dwNumTripleIndices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumTriangles( 
            /* [in] */ RtDWORD dwNum) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_i( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_i( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_j( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_j( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_k( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_k( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdSSEdgeWeightsStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdSSEdgeWeightsStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdSSEdgeWeightsStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdSSEdgeWeightsStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdSSEdgeWeightsStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdSSEdgeWeightsStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdSSEdgeWeightsStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdSSEdgeWeightsStream * 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 *GetNumTriangles )( 
            IRdSSEdgeWeightsStream * This,
            /* [retval][out] */ RtDWORD *dwNumTripleIndices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumTriangles )( 
            IRdSSEdgeWeightsStream * This,
            /* [in] */ RtDWORD dwNum);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_i )( 
            IRdSSEdgeWeightsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_i )( 
            IRdSSEdgeWeightsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_j )( 
            IRdSSEdgeWeightsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_j )( 
            IRdSSEdgeWeightsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_k )( 
            IRdSSEdgeWeightsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_k )( 
            IRdSSEdgeWeightsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        END_INTERFACE
    } IRdSSEdgeWeightsStreamVtbl;

    interface IRdSSEdgeWeightsStream
    {
        CONST_VTBL struct IRdSSEdgeWeightsStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdSSEdgeWeightsStream_GetNumTriangles(This,dwNumTripleIndices)	\
    (This)->lpVtbl -> GetNumTriangles(This,dwNumTripleIndices)

#define IRdSSEdgeWeightsStream_SetNumTriangles(This,dwNum)	\
    (This)->lpVtbl -> SetNumTriangles(This,dwNum)

#define IRdSSEdgeWeightsStream_get_i(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_i(This,dwIndex,pVal)

#define IRdSSEdgeWeightsStream_put_i(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_i(This,dwIndex,newVal)

#define IRdSSEdgeWeightsStream_get_j(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_j(This,dwIndex,pVal)

#define IRdSSEdgeWeightsStream_put_j(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_j(This,dwIndex,newVal)

#define IRdSSEdgeWeightsStream_get_k(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_k(This,dwIndex,pVal)

#define IRdSSEdgeWeightsStream_put_k(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_k(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSSEdgeWeightsStream_GetNumTriangles_Proxy( 
    IRdSSEdgeWeightsStream * This,
    /* [retval][out] */ RtDWORD *dwNumTripleIndices);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSSEdgeWeightsStream_SetNumTriangles_Proxy( 
    IRdSSEdgeWeightsStream * This,
    /* [in] */ RtDWORD dwNum);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdSSEdgeWeightsStream_get_i_Proxy( 
    IRdSSEdgeWeightsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdSSEdgeWeightsStream_put_i_Proxy( 
    IRdSSEdgeWeightsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdSSEdgeWeightsStream_get_j_Proxy( 
    IRdSSEdgeWeightsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdSSEdgeWeightsStream_put_j_Proxy( 
    IRdSSEdgeWeightsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdSSEdgeWeightsStream_get_k_Proxy( 
    IRdSSEdgeWeightsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdSSEdgeWeightsStream_put_k_Proxy( 
    IRdSSEdgeWeightsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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



#endif 	/* __IRdSSEdgeWeightsStream_INTERFACE_DEFINED__ */


#ifndef __IRdTriangleNormalsStream_INTERFACE_DEFINED__
#define __IRdTriangleNormalsStream_INTERFACE_DEFINED__

/* interface IRdTriangleNormalsStream */
/* [unique][helpstring][dual][uuid][local][object] */ 


EXTERN_C const IID IID_IRdTriangleNormalsStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E40FC2B1-04F7-4ce0-BB6A-556284295280")
    IRdTriangleNormalsStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumTripleIndices( 
            /* [retval][out] */ RtDWORD *dwNumTripleIndices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumTripleIndices( 
            /* [in] */ RtDWORD dwNumTripleIndices) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_i( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_i( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_j( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_j( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_k( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_k( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdTriangleNormalsStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdTriangleNormalsStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdTriangleNormalsStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdTriangleNormalsStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdTriangleNormalsStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdTriangleNormalsStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdTriangleNormalsStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdTriangleNormalsStream * 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 *GetNumTripleIndices )( 
            IRdTriangleNormalsStream * This,
            /* [retval][out] */ RtDWORD *dwNumTripleIndices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumTripleIndices )( 
            IRdTriangleNormalsStream * This,
            /* [in] */ RtDWORD dwNumTripleIndices);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_i )( 
            IRdTriangleNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_i )( 
            IRdTriangleNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_j )( 
            IRdTriangleNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_j )( 
            IRdTriangleNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_k )( 
            IRdTriangleNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_k )( 
            IRdTriangleNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        END_INTERFACE
    } IRdTriangleNormalsStreamVtbl;

    interface IRdTriangleNormalsStream
    {
        CONST_VTBL struct IRdTriangleNormalsStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdTriangleNormalsStream_GetNumTripleIndices(This,dwNumTripleIndices)	\
    (This)->lpVtbl -> GetNumTripleIndices(This,dwNumTripleIndices)

#define IRdTriangleNormalsStream_SetNumTripleIndices(This,dwNumTripleIndices)	\
    (This)->lpVtbl -> SetNumTripleIndices(This,dwNumTripleIndices)

#define IRdTriangleNormalsStream_get_i(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_i(This,dwIndex,pVal)

#define IRdTriangleNormalsStream_put_i(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_i(This,dwIndex,newVal)

#define IRdTriangleNormalsStream_get_j(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_j(This,dwIndex,pVal)

#define IRdTriangleNormalsStream_put_j(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_j(This,dwIndex,newVal)

#define IRdTriangleNormalsStream_get_k(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_k(This,dwIndex,pVal)

#define IRdTriangleNormalsStream_put_k(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_k(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleNormalsStream_GetNumTripleIndices_Proxy( 
    IRdTriangleNormalsStream * This,
    /* [retval][out] */ RtDWORD *dwNumTripleIndices);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleNormalsStream_SetNumTripleIndices_Proxy( 
    IRdTriangleNormalsStream * This,
    /* [in] */ RtDWORD dwNumTripleIndices);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTriangleNormalsStream_get_i_Proxy( 
    IRdTriangleNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTriangleNormalsStream_put_i_Proxy( 
    IRdTriangleNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTriangleNormalsStream_get_j_Proxy( 
    IRdTriangleNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTriangleNormalsStream_put_j_Proxy( 
    IRdTriangleNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTriangleNormalsStream_get_k_Proxy( 
    IRdTriangleNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTriangleNormalsStream_put_k_Proxy( 
    IRdTriangleNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


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



#endif 	/* __IRdTriangleNormalsStream_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1309 */
/* [local] */ 

typedef struct tagRtVertColor
    {
    BYTE r;
    BYTE g;
    BYTE b;
    BYTE a;
    } 	RtVertColor;

typedef struct tagRtTripleVertColor
    {
    union vIU
        {
        RtVertColor vc;
        RtDWORD dwVc;
        } 	;
    union vIU vI;
    union vJU
        {
        RtVertColor vc;
        RtDWORD dwVc;
        } 	;
    union vJU vJ;
    union vKU
        {
        RtVertColor vc;
        RtDWORD dwVc;
        } 	;
    union vKU vK;
    } 	RtTripleVertColor;



extern RPC_IF_HANDLE __MIDL_itf__Space3D_1309_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1309_v0_0_s_ifspec;

#ifndef __IRdTrVertColorStream_INTERFACE_DEFINED__
#define __IRdTrVertColorStream_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdTrVertColorStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B7BAEB25-B641-4999-8371-B1DF0DB410DA")
    IRdTrVertColorStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumVertColors( 
            /* [retval][out] */ RtDWORD *dwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumVertColors( 
            /* [in] */ RtDWORD dwNumVertColors) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdTrVertColorStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdTrVertColorStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdTrVertColorStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdTrVertColorStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdTrVertColorStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdTrVertColorStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdTrVertColorStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdTrVertColorStream * 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 *GetNumVertColors )( 
            IRdTrVertColorStream * This,
            /* [retval][out] */ RtDWORD *dwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumVertColors )( 
            IRdTrVertColorStream * This,
            /* [in] */ RtDWORD dwNumVertColors);
        
        END_INTERFACE
    } IRdTrVertColorStreamVtbl;

    interface IRdTrVertColorStream
    {
        CONST_VTBL struct IRdTrVertColorStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdTrVertColorStream_GetNumVertColors(This,dwNumVertices)	\
    (This)->lpVtbl -> GetNumVertColors(This,dwNumVertices)

#define IRdTrVertColorStream_SetNumVertColors(This,dwNumVertColors)	\
    (This)->lpVtbl -> SetNumVertColors(This,dwNumVertColors)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTrVertColorStream_GetNumVertColors_Proxy( 
    IRdTrVertColorStream * This,
    /* [retval][out] */ RtDWORD *dwNumVertices);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTrVertColorStream_SetNumVertColors_Proxy( 
    IRdTrVertColorStream * This,
    /* [in] */ RtDWORD dwNumVertColors);


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



#endif 	/* __IRdTrVertColorStream_INTERFACE_DEFINED__ */


#ifndef __IRdTangentSpaceStream_INTERFACE_DEFINED__
#define __IRdTangentSpaceStream_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdTangentSpaceStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5B86127A-05E4-45f6-9C17-7C001A48A511")
    IRdTangentSpaceStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_m11( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_m11( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_m12( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_m12( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_m13( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_m13( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_m21( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_m21( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_m22( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_m22( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_m23( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_m23( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_m31( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_m31( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_m32( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_m32( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_m33( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_m33( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumTangentSpaces( 
            /* [out] */ RtDWORD *pCount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumTangentSpaces( 
            /* [in] */ RtDWORD dwNumTangentSpaces) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdTangentSpaceStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdTangentSpaceStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdTangentSpaceStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdTangentSpaceStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdTangentSpaceStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdTangentSpaceStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdTangentSpaceStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdTangentSpaceStream * 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_m11 )( 
            IRdTangentSpaceStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_m11 )( 
            IRdTangentSpaceStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_m12 )( 
            IRdTangentSpaceStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_m12 )( 
            IRdTangentSpaceStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_m13 )( 
            IRdTangentSpaceStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_m13 )( 
            IRdTangentSpaceStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_m21 )( 
            IRdTangentSpaceStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_m21 )( 
            IRdTangentSpaceStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_m22 )( 
            IRdTangentSpaceStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_m22 )( 
            IRdTangentSpaceStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_m23 )( 
            IRdTangentSpaceStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_m23 )( 
            IRdTangentSpaceStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_m31 )( 
            IRdTangentSpaceStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_m31 )( 
            IRdTangentSpaceStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_m32 )( 
            IRdTangentSpaceStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_m32 )( 
            IRdTangentSpaceStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_m33 )( 
            IRdTangentSpaceStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_m33 )( 
            IRdTangentSpaceStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNumTangentSpaces )( 
            IRdTangentSpaceStream * This,
            /* [out] */ RtDWORD *pCount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumTangentSpaces )( 
            IRdTangentSpaceStream * This,
            /* [in] */ RtDWORD dwNumTangentSpaces);
        
        END_INTERFACE
    } IRdTangentSpaceStreamVtbl;

    interface IRdTangentSpaceStream
    {
        CONST_VTBL struct IRdTangentSpaceStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdTangentSpaceStream_get_m11(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_m11(This,dwIndex,pVal)

#define IRdTangentSpaceStream_put_m11(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_m11(This,dwIndex,newVal)

#define IRdTangentSpaceStream_get_m12(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_m12(This,dwIndex,pVal)

#define IRdTangentSpaceStream_put_m12(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_m12(This,dwIndex,newVal)

#define IRdTangentSpaceStream_get_m13(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_m13(This,dwIndex,pVal)

#define IRdTangentSpaceStream_put_m13(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_m13(This,dwIndex,newVal)

#define IRdTangentSpaceStream_get_m21(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_m21(This,dwIndex,pVal)

#define IRdTangentSpaceStream_put_m21(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_m21(This,dwIndex,newVal)

#define IRdTangentSpaceStream_get_m22(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_m22(This,dwIndex,pVal)

#define IRdTangentSpaceStream_put_m22(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_m22(This,dwIndex,newVal)

#define IRdTangentSpaceStream_get_m23(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_m23(This,dwIndex,pVal)

#define IRdTangentSpaceStream_put_m23(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_m23(This,dwIndex,newVal)

#define IRdTangentSpaceStream_get_m31(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_m31(This,dwIndex,pVal)

#define IRdTangentSpaceStream_put_m31(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_m31(This,dwIndex,newVal)

#define IRdTangentSpaceStream_get_m32(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_m32(This,dwIndex,pVal)

#define IRdTangentSpaceStream_put_m32(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_m32(This,dwIndex,newVal)

#define IRdTangentSpaceStream_get_m33(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_m33(This,dwIndex,pVal)

#define IRdTangentSpaceStream_put_m33(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_m33(This,dwIndex,newVal)

#define IRdTangentSpaceStream_GetNumTangentSpaces(This,pCount)	\
    (This)->lpVtbl -> GetNumTangentSpaces(This,pCount)

#define IRdTangentSpaceStream_SetNumTangentSpaces(This,dwNumTangentSpaces)	\
    (This)->lpVtbl -> SetNumTangentSpaces(This,dwNumTangentSpaces)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTangentSpaceStream_get_m11_Proxy( 
    IRdTangentSpaceStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTangentSpaceStream_put_m11_Proxy( 
    IRdTangentSpaceStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTangentSpaceStream_get_m12_Proxy( 
    IRdTangentSpaceStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTangentSpaceStream_put_m12_Proxy( 
    IRdTangentSpaceStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTangentSpaceStream_get_m13_Proxy( 
    IRdTangentSpaceStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTangentSpaceStream_put_m13_Proxy( 
    IRdTangentSpaceStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTangentSpaceStream_get_m21_Proxy( 
    IRdTangentSpaceStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTangentSpaceStream_put_m21_Proxy( 
    IRdTangentSpaceStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTangentSpaceStream_get_m22_Proxy( 
    IRdTangentSpaceStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTangentSpaceStream_put_m22_Proxy( 
    IRdTangentSpaceStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTangentSpaceStream_get_m23_Proxy( 
    IRdTangentSpaceStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTangentSpaceStream_put_m23_Proxy( 
    IRdTangentSpaceStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTangentSpaceStream_get_m31_Proxy( 
    IRdTangentSpaceStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTangentSpaceStream_put_m31_Proxy( 
    IRdTangentSpaceStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTangentSpaceStream_get_m32_Proxy( 
    IRdTangentSpaceStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTangentSpaceStream_put_m32_Proxy( 
    IRdTangentSpaceStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTangentSpaceStream_get_m33_Proxy( 
    IRdTangentSpaceStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTangentSpaceStream_put_m33_Proxy( 
    IRdTangentSpaceStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTangentSpaceStream_GetNumTangentSpaces_Proxy( 
    IRdTangentSpaceStream * This,
    /* [out] */ RtDWORD *pCount);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTangentSpaceStream_SetNumTangentSpaces_Proxy( 
    IRdTangentSpaceStream * This,
    /* [in] */ RtDWORD dwNumTangentSpaces);


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



#endif 	/* __IRdTangentSpaceStream_INTERFACE_DEFINED__ */


#ifndef __IRdTangentSpaceTriangleStream_INTERFACE_DEFINED__
#define __IRdTangentSpaceTriangleStream_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdTangentSpaceTriangleStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("EF9A9725-5745-4b21-83AD-5C9589756160")
    IRdTangentSpaceTriangleStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumTangentSpaceTripleIndices( 
            /* [retval][out] */ RtDWORD *dwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumTangentSpaceTripleIndices( 
            /* [in] */ RtDWORD dwNumTangentSpaceTripleIndices) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdTangentSpaceTriangleStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdTangentSpaceTriangleStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdTangentSpaceTriangleStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdTangentSpaceTriangleStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdTangentSpaceTriangleStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdTangentSpaceTriangleStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdTangentSpaceTriangleStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdTangentSpaceTriangleStream * 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 *GetNumTangentSpaceTripleIndices )( 
            IRdTangentSpaceTriangleStream * This,
            /* [retval][out] */ RtDWORD *dwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumTangentSpaceTripleIndices )( 
            IRdTangentSpaceTriangleStream * This,
            /* [in] */ RtDWORD dwNumTangentSpaceTripleIndices);
        
        END_INTERFACE
    } IRdTangentSpaceTriangleStreamVtbl;

    interface IRdTangentSpaceTriangleStream
    {
        CONST_VTBL struct IRdTangentSpaceTriangleStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdTangentSpaceTriangleStream_GetNumTangentSpaceTripleIndices(This,dwNumVertices)	\
    (This)->lpVtbl -> GetNumTangentSpaceTripleIndices(This,dwNumVertices)

#define IRdTangentSpaceTriangleStream_SetNumTangentSpaceTripleIndices(This,dwNumTangentSpaceTripleIndices)	\
    (This)->lpVtbl -> SetNumTangentSpaceTripleIndices(This,dwNumTangentSpaceTripleIndices)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTangentSpaceTriangleStream_GetNumTangentSpaceTripleIndices_Proxy( 
    IRdTangentSpaceTriangleStream * This,
    /* [retval][out] */ RtDWORD *dwNumVertices);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTangentSpaceTriangleStream_SetNumTangentSpaceTripleIndices_Proxy( 
    IRdTangentSpaceTriangleStream * This,
    /* [in] */ RtDWORD dwNumTangentSpaceTripleIndices);


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



#endif 	/* __IRdTangentSpaceTriangleStream_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1312 */
/* [local] */ 

struct RtVertexTopologyInfo
    {
    RtUlong m_dwIndex;
    RtUlong m_dwCount;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1312_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1312_v0_0_s_ifspec;

#ifndef __IRdVertexTopologyInfo_INTERFACE_DEFINED__
#define __IRdVertexTopologyInfo_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdVertexTopologyInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8BA9D7E5-BFFC-447D-84C1-077B2CE3D7C6")
    IRdVertexTopologyInfo : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumVertices( 
            /* [retval][out] */ RtDWORD *pCount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumVertices( 
            /* [in] */ RtDWORD dwNumVertices) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Count( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pCount) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Index( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pPtr) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetupTimestamps( 
            /* [in] */ IUnknown *pMesh) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdVertexTopologyInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdVertexTopologyInfo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdVertexTopologyInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdVertexTopologyInfo * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdVertexTopologyInfo * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdVertexTopologyInfo * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdVertexTopologyInfo * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdVertexTopologyInfo * 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 *GetNumVertices )( 
            IRdVertexTopologyInfo * This,
            /* [retval][out] */ RtDWORD *pCount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumVertices )( 
            IRdVertexTopologyInfo * This,
            /* [in] */ RtDWORD dwNumVertices);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Count )( 
            IRdVertexTopologyInfo * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pCount);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Index )( 
            IRdVertexTopologyInfo * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pPtr);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetupTimestamps )( 
            IRdVertexTopologyInfo * This,
            /* [in] */ IUnknown *pMesh);
        
        END_INTERFACE
    } IRdVertexTopologyInfoVtbl;

    interface IRdVertexTopologyInfo
    {
        CONST_VTBL struct IRdVertexTopologyInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdVertexTopologyInfo_GetNumVertices(This,pCount)	\
    (This)->lpVtbl -> GetNumVertices(This,pCount)

#define IRdVertexTopologyInfo_SetNumVertices(This,dwNumVertices)	\
    (This)->lpVtbl -> SetNumVertices(This,dwNumVertices)

#define IRdVertexTopologyInfo_get_Count(This,dwIndex,pCount)	\
    (This)->lpVtbl -> get_Count(This,dwIndex,pCount)

#define IRdVertexTopologyInfo_get_Index(This,dwIndex,pPtr)	\
    (This)->lpVtbl -> get_Index(This,dwIndex,pPtr)

#define IRdVertexTopologyInfo_SetupTimestamps(This,pMesh)	\
    (This)->lpVtbl -> SetupTimestamps(This,pMesh)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexTopologyInfo_GetNumVertices_Proxy( 
    IRdVertexTopologyInfo * This,
    /* [retval][out] */ RtDWORD *pCount);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexTopologyInfo_SetNumVertices_Proxy( 
    IRdVertexTopologyInfo * This,
    /* [in] */ RtDWORD dwNumVertices);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexTopologyInfo_get_Count_Proxy( 
    IRdVertexTopologyInfo * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pCount);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexTopologyInfo_get_Index_Proxy( 
    IRdVertexTopologyInfo * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pPtr);


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


/* [local] */ HRESULT STDMETHODCALLTYPE IRdVertexTopologyInfo_SetupTimestamps_Proxy( 
    IRdVertexTopologyInfo * This,
    /* [in] */ IUnknown *pMesh);


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



#endif 	/* __IRdVertexTopologyInfo_INTERFACE_DEFINED__ */


#ifndef __IRdVertexTopologyData_INTERFACE_DEFINED__
#define __IRdVertexTopologyData_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdVertexTopologyData;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("64719A26-E197-4a6f-9EC6-951ACAE8E17D")
    IRdVertexTopologyData : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumTriangles( 
            /* [retval][out] */ RtDWORD *pCount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumTriangles( 
            /* [in] */ RtDWORD dwNumTripleIndices) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Triangle( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pdwTriangle) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetupTimestamps( 
            /* [in] */ IUnknown *pMesh) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdVertexTopologyDataVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdVertexTopologyData * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdVertexTopologyData * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdVertexTopologyData * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdVertexTopologyData * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdVertexTopologyData * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdVertexTopologyData * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdVertexTopologyData * 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 *GetNumTriangles )( 
            IRdVertexTopologyData * This,
            /* [retval][out] */ RtDWORD *pCount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumTriangles )( 
            IRdVertexTopologyData * This,
            /* [in] */ RtDWORD dwNumTripleIndices);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Triangle )( 
            IRdVertexTopologyData * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pdwTriangle);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetupTimestamps )( 
            IRdVertexTopologyData * This,
            /* [in] */ IUnknown *pMesh);
        
        END_INTERFACE
    } IRdVertexTopologyDataVtbl;

    interface IRdVertexTopologyData
    {
        CONST_VTBL struct IRdVertexTopologyDataVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdVertexTopologyData_GetNumTriangles(This,pCount)	\
    (This)->lpVtbl -> GetNumTriangles(This,pCount)

#define IRdVertexTopologyData_SetNumTriangles(This,dwNumTripleIndices)	\
    (This)->lpVtbl -> SetNumTriangles(This,dwNumTripleIndices)

#define IRdVertexTopologyData_get_Triangle(This,dwIndex,pdwTriangle)	\
    (This)->lpVtbl -> get_Triangle(This,dwIndex,pdwTriangle)

#define IRdVertexTopologyData_SetupTimestamps(This,pMesh)	\
    (This)->lpVtbl -> SetupTimestamps(This,pMesh)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexTopologyData_GetNumTriangles_Proxy( 
    IRdVertexTopologyData * This,
    /* [retval][out] */ RtDWORD *pCount);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexTopologyData_SetNumTriangles_Proxy( 
    IRdVertexTopologyData * This,
    /* [in] */ RtDWORD dwNumTripleIndices);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexTopologyData_get_Triangle_Proxy( 
    IRdVertexTopologyData * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pdwTriangle);


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


/* [local] */ HRESULT STDMETHODCALLTYPE IRdVertexTopologyData_SetupTimestamps_Proxy( 
    IRdVertexTopologyData * This,
    /* [in] */ IUnknown *pMesh);


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



#endif 	/* __IRdVertexTopologyData_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1314 */
/* [local] */ 


enum ECameraType
    {	eCamType_Unspecified	= 0,
	eCamType_Perspective	= 1,
	eCamType_Orthogonal	= 2
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1314_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1314_v0_0_s_ifspec;

#ifndef __IRdCamera_INTERFACE_DEFINED__
#define __IRdCamera_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdCamera;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("53A52295-4A0F-49d1-B870-8545D1F432DC")
    IRdCamera : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CameraType( 
            /* [retval][out] */ enum ECameraType *peCamType) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_CameraType( 
            /* [in] */ enum ECameraType eCamType) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FOV( 
            /* [retval][out] */ RtFloat *fpFov) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_FOV( 
            /* [in] */ RtFloat fFov) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ClippingNear( 
            /* [retval][out] */ RtFloat *pfClippingNear) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ClippingNear( 
            /* [in] */ RtFloat fClippingNear) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ClippingFar( 
            /* [retval][out] */ RtFloat *pfClippingFar) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ClippingFar( 
            /* [in] */ RtFloat fClippingFar) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_FocusDistance( 
            /* [retval][out] */ RtFloat *pfFocusDistance) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_FocusDistance( 
            /* [in] */ RtFloat fFocusDistance) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_AspectRatio( 
            /* [retval][out] */ RtFloat *pfVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_AspectRatio( 
            /* [in] */ RtFloat fVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsHorizontalFOV( 
            /* [retval][out] */ RtBOOL *pfVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_IsHorizontalFOV( 
            /* [in] */ RtBOOL fVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdCameraVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdCamera * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdCamera * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdCamera * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdCamera * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdCamera * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdCamera * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdCamera * 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 *Clear )( 
            IRdCamera * This);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CameraType )( 
            IRdCamera * This,
            /* [retval][out] */ enum ECameraType *peCamType);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_CameraType )( 
            IRdCamera * This,
            /* [in] */ enum ECameraType eCamType);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FOV )( 
            IRdCamera * This,
            /* [retval][out] */ RtFloat *fpFov);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FOV )( 
            IRdCamera * This,
            /* [in] */ RtFloat fFov);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClippingNear )( 
            IRdCamera * This,
            /* [retval][out] */ RtFloat *pfClippingNear);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClippingNear )( 
            IRdCamera * This,
            /* [in] */ RtFloat fClippingNear);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClippingFar )( 
            IRdCamera * This,
            /* [retval][out] */ RtFloat *pfClippingFar);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ClippingFar )( 
            IRdCamera * This,
            /* [in] */ RtFloat fClippingFar);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FocusDistance )( 
            IRdCamera * This,
            /* [retval][out] */ RtFloat *pfFocusDistance);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FocusDistance )( 
            IRdCamera * This,
            /* [in] */ RtFloat fFocusDistance);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_AspectRatio )( 
            IRdCamera * This,
            /* [retval][out] */ RtFloat *pfVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_AspectRatio )( 
            IRdCamera * This,
            /* [in] */ RtFloat fVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsHorizontalFOV )( 
            IRdCamera * This,
            /* [retval][out] */ RtBOOL *pfVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_IsHorizontalFOV )( 
            IRdCamera * This,
            /* [in] */ RtBOOL fVal);
        
        END_INTERFACE
    } IRdCameraVtbl;

    interface IRdCamera
    {
        CONST_VTBL struct IRdCameraVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


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

#define IRdCamera_get_CameraType(This,peCamType)	\
    (This)->lpVtbl -> get_CameraType(This,peCamType)

#define IRdCamera_put_CameraType(This,eCamType)	\
    (This)->lpVtbl -> put_CameraType(This,eCamType)

#define IRdCamera_get_FOV(This,fpFov)	\
    (This)->lpVtbl -> get_FOV(This,fpFov)

#define IRdCamera_put_FOV(This,fFov)	\
    (This)->lpVtbl -> put_FOV(This,fFov)

#define IRdCamera_get_ClippingNear(This,pfClippingNear)	\
    (This)->lpVtbl -> get_ClippingNear(This,pfClippingNear)

#define IRdCamera_put_ClippingNear(This,fClippingNear)	\
    (This)->lpVtbl -> put_ClippingNear(This,fClippingNear)

#define IRdCamera_get_ClippingFar(This,pfClippingFar)	\
    (This)->lpVtbl -> get_ClippingFar(This,pfClippingFar)

#define IRdCamera_put_ClippingFar(This,fClippingFar)	\
    (This)->lpVtbl -> put_ClippingFar(This,fClippingFar)

#define IRdCamera_get_FocusDistance(This,pfFocusDistance)	\
    (This)->lpVtbl -> get_FocusDistance(This,pfFocusDistance)

#define IRdCamera_put_FocusDistance(This,fFocusDistance)	\
    (This)->lpVtbl -> put_FocusDistance(This,fFocusDistance)

#define IRdCamera_get_AspectRatio(This,pfVal)	\
    (This)->lpVtbl -> get_AspectRatio(This,pfVal)

#define IRdCamera_put_AspectRatio(This,fVal)	\
    (This)->lpVtbl -> put_AspectRatio(This,fVal)

#define IRdCamera_get_IsHorizontalFOV(This,pfVal)	\
    (This)->lpVtbl -> get_IsHorizontalFOV(This,pfVal)

#define IRdCamera_put_IsHorizontalFOV(This,fVal)	\
    (This)->lpVtbl -> put_IsHorizontalFOV(This,fVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdCamera_Clear_Proxy( 
    IRdCamera * This);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdCamera_get_CameraType_Proxy( 
    IRdCamera * This,
    /* [retval][out] */ enum ECameraType *peCamType);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdCamera_put_CameraType_Proxy( 
    IRdCamera * This,
    /* [in] */ enum ECameraType eCamType);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdCamera_get_FOV_Proxy( 
    IRdCamera * This,
    /* [retval][out] */ RtFloat *fpFov);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdCamera_put_FOV_Proxy( 
    IRdCamera * This,
    /* [in] */ RtFloat fFov);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdCamera_get_ClippingNear_Proxy( 
    IRdCamera * This,
    /* [retval][out] */ RtFloat *pfClippingNear);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdCamera_put_ClippingNear_Proxy( 
    IRdCamera * This,
    /* [in] */ RtFloat fClippingNear);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdCamera_get_ClippingFar_Proxy( 
    IRdCamera * This,
    /* [retval][out] */ RtFloat *pfClippingFar);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdCamera_put_ClippingFar_Proxy( 
    IRdCamera * This,
    /* [in] */ RtFloat fClippingFar);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdCamera_get_FocusDistance_Proxy( 
    IRdCamera * This,
    /* [retval][out] */ RtFloat *pfFocusDistance);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdCamera_put_FocusDistance_Proxy( 
    IRdCamera * This,
    /* [in] */ RtFloat fFocusDistance);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdCamera_get_AspectRatio_Proxy( 
    IRdCamera * This,
    /* [retval][out] */ RtFloat *pfVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdCamera_put_AspectRatio_Proxy( 
    IRdCamera * This,
    /* [in] */ RtFloat fVal);


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


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdCamera_get_IsHorizontalFOV_Proxy( 
    IRdCamera * This,
    /* [retval][out] */ RtBOOL *pfVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdCamera_put_IsHorizontalFOV_Proxy( 
    IRdCamera * This,
    /* [in] */ RtBOOL fVal);


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



#endif 	/* __IRdCamera_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1315 */
/* [local] */ 

struct RtViewport
    {
    RtDWORD m_dwX;
    RtDWORD m_dwY;
    RtDWORD m_dwWidth;
    RtDWORD m_dwHeight;
    RtFloat m_dwMinZ;
    RtFloat m_dwMaxZ;
    } ;
struct RtLayerInfo
    {
    float m_CameraViewMatrix[ 4 ][ 4 ];
    float m_CameraProjectionMatrix[ 4 ][ 4 ];
    struct RtViewport m_Viewport;
    BSTR m_szRoot;
    BSTR m_szCamera;
    BSTR m_szUsage;
    } ;
struct RtRenderTargetInfo
    {
    RtDWORD m_dwWidth;
    RtDWORD m_dwHeight;
    RtDWORD m_dwLayerCount;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1315_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1315_v0_0_s_ifspec;

#ifndef __IRdRenderTarget_INTERFACE_DEFINED__
#define __IRdRenderTarget_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdRenderTarget;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("25CA875E-40A6-4cde-A885-A97D568CF017")
    IRdRenderTarget : public IRsDataObject
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GatherInfo( 
            /* [in] */ struct RtRenderTargetInfo *pOutInfo) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetLayerInfo( 
            /* [in] */ RtDWORD dwLayer,
            /* [in] */ struct RtLayerInfo *pOutInfo) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdRenderTargetVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdRenderTarget * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdRenderTarget * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdRenderTarget * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRdRenderTarget * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRdRenderTarget * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDefault )( 
            IRdRenderTarget * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdRenderTarget * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GatherInfo )( 
            IRdRenderTarget * This,
            /* [in] */ struct RtRenderTargetInfo *pOutInfo);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetLayerInfo )( 
            IRdRenderTarget * This,
            /* [in] */ RtDWORD dwLayer,
            /* [in] */ struct RtLayerInfo *pOutInfo);
        
        END_INTERFACE
    } IRdRenderTargetVtbl;

    interface IRdRenderTarget
    {
        CONST_VTBL struct IRdRenderTargetVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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


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


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

#define IRdRenderTarget_GatherInfo(This,pOutInfo)	\
    (This)->lpVtbl -> GatherInfo(This,pOutInfo)

#define IRdRenderTarget_GetLayerInfo(This,dwLayer,pOutInfo)	\
    (This)->lpVtbl -> GetLayerInfo(This,dwLayer,pOutInfo)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdRenderTarget_Clear_Proxy( 
    IRdRenderTarget * This);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdRenderTarget_GatherInfo_Proxy( 
    IRdRenderTarget * This,
    /* [in] */ struct RtRenderTargetInfo *pOutInfo);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdRenderTarget_GetLayerInfo_Proxy( 
    IRdRenderTarget * This,
    /* [in] */ RtDWORD dwLayer,
    /* [in] */ struct RtLayerInfo *pOutInfo);


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



#endif 	/* __IRdRenderTarget_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1316 */
/* [local] */ 


enum ReMaterialOrigin
    {	MAIMO_WORKSPACE	= 0,
	MAIMO_MODELER	= 1,
	MAIMO_UNKNOWN	= 2,
	MAIMO_MAKE_DWORD	= 2147483647
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1316_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1316_v0_0_s_ifspec;

#ifndef __IRdMaterialActiveInfo_INTERFACE_DEFINED__
#define __IRdMaterialActiveInfo_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdMaterialActiveInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4E828FF5-CA4F-49cb-BE2F-29AB5BAFFD26")
    IRdMaterialActiveInfo : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMasterActiveClass( 
            /* [retval][out] */ RtMatClsId *pMatClsId) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMasterActiveClass( 
            /* [in] */ RtMatClsId matClsId) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialOrigin( 
            /* [retval][out] */ enum ReMaterialOrigin *dwOrigin) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMaterialOrigin( 
            /* [in] */ enum ReMaterialOrigin dwOrigin) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdMaterialActiveInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdMaterialActiveInfo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdMaterialActiveInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdMaterialActiveInfo * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMasterActiveClass )( 
            IRdMaterialActiveInfo * This,
            /* [retval][out] */ RtMatClsId *pMatClsId);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMasterActiveClass )( 
            IRdMaterialActiveInfo * This,
            /* [in] */ RtMatClsId matClsId);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialOrigin )( 
            IRdMaterialActiveInfo * This,
            /* [retval][out] */ enum ReMaterialOrigin *dwOrigin);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMaterialOrigin )( 
            IRdMaterialActiveInfo * This,
            /* [in] */ enum ReMaterialOrigin dwOrigin);
        
        END_INTERFACE
    } IRdMaterialActiveInfoVtbl;

    interface IRdMaterialActiveInfo
    {
        CONST_VTBL struct IRdMaterialActiveInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IRdMaterialActiveInfo_GetMasterActiveClass(This,pMatClsId)	\
    (This)->lpVtbl -> GetMasterActiveClass(This,pMatClsId)

#define IRdMaterialActiveInfo_SetMasterActiveClass(This,matClsId)	\
    (This)->lpVtbl -> SetMasterActiveClass(This,matClsId)

#define IRdMaterialActiveInfo_GetMaterialOrigin(This,dwOrigin)	\
    (This)->lpVtbl -> GetMaterialOrigin(This,dwOrigin)

#define IRdMaterialActiveInfo_SetMaterialOrigin(This,dwOrigin)	\
    (This)->lpVtbl -> SetMaterialOrigin(This,dwOrigin)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMaterialActiveInfo_GetMasterActiveClass_Proxy( 
    IRdMaterialActiveInfo * This,
    /* [retval][out] */ RtMatClsId *pMatClsId);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMaterialActiveInfo_SetMasterActiveClass_Proxy( 
    IRdMaterialActiveInfo * This,
    /* [in] */ RtMatClsId matClsId);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMaterialActiveInfo_GetMaterialOrigin_Proxy( 
    IRdMaterialActiveInfo * This,
    /* [retval][out] */ enum ReMaterialOrigin *dwOrigin);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMaterialActiveInfo_SetMaterialOrigin_Proxy( 
    IRdMaterialActiveInfo * This,
    /* [in] */ enum ReMaterialOrigin dwOrigin);


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



#endif 	/* __IRdMaterialActiveInfo_INTERFACE_DEFINED__ */


#ifndef __IRdMaterialChunk_INTERFACE_DEFINED__
#define __IRdMaterialChunk_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdMaterialChunk;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7CBD1090-F487-45cf-B9F8-83B838B48779")
    IRdMaterialChunk : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialIndex( 
            /* [retval][out] */ RtDWORD *pdwIndex) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMaterialIndex( 
            /* [in] */ RtDWORD dwIndex) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNumMaterialItems( 
            /* [retval][out] */ RtDWORD *pdwNum) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialItem( 
            /* [in] */ RtMatClsId *MatClsId,
            /* [retval][out] */ IRsObject **ppMaterial) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE EnumMaterialItems( 
            /* [retval][out] */ IRsEnumMaterialItems **ppEnumMaterialItems) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialInfo( 
            /* [retval][out] */ IRdMaterialActiveInfo **ppMaterialInfo) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMaterialInfo( 
            /* [in] */ IRdMaterialActiveInfo *pMaterialInfo) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdMaterialChunkVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdMaterialChunk * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdMaterialChunk * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdMaterialChunk * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialIndex )( 
            IRdMaterialChunk * This,
            /* [retval][out] */ RtDWORD *pdwIndex);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMaterialIndex )( 
            IRdMaterialChunk * This,
            /* [in] */ RtDWORD dwIndex);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNumMaterialItems )( 
            IRdMaterialChunk * This,
            /* [retval][out] */ RtDWORD *pdwNum);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialItem )( 
            IRdMaterialChunk * This,
            /* [in] */ RtMatClsId *MatClsId,
            /* [retval][out] */ IRsObject **ppMaterial);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumMaterialItems )( 
            IRdMaterialChunk * This,
            /* [retval][out] */ IRsEnumMaterialItems **ppEnumMaterialItems);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialInfo )( 
            IRdMaterialChunk * This,
            /* [retval][out] */ IRdMaterialActiveInfo **ppMaterialInfo);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMaterialInfo )( 
            IRdMaterialChunk * This,
            /* [in] */ IRdMaterialActiveInfo *pMaterialInfo);
        
        END_INTERFACE
    } IRdMaterialChunkVtbl;

    interface IRdMaterialChunk
    {
        CONST_VTBL struct IRdMaterialChunkVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IRdMaterialChunk_GetMaterialIndex(This,pdwIndex)	\
    (This)->lpVtbl -> GetMaterialIndex(This,pdwIndex)

#define IRdMaterialChunk_SetMaterialIndex(This,dwIndex)	\
    (This)->lpVtbl -> SetMaterialIndex(This,dwIndex)

#define IRdMaterialChunk_GetNumMaterialItems(This,pdwNum)	\
    (This)->lpVtbl -> GetNumMaterialItems(This,pdwNum)

#define IRdMaterialChunk_GetMaterialItem(This,MatClsId,ppMaterial)	\
    (This)->lpVtbl -> GetMaterialItem(This,MatClsId,ppMaterial)

#define IRdMaterialChunk_EnumMaterialItems(This,ppEnumMaterialItems)	\
    (This)->lpVtbl -> EnumMaterialItems(This,ppEnumMaterialItems)

#define IRdMaterialChunk_GetMaterialInfo(This,ppMaterialInfo)	\
    (This)->lpVtbl -> GetMaterialInfo(This,ppMaterialInfo)

#define IRdMaterialChunk_SetMaterialInfo(This,pMaterialInfo)	\
    (This)->lpVtbl -> SetMaterialInfo(This,pMaterialInfo)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMaterialChunk_GetMaterialIndex_Proxy( 
    IRdMaterialChunk * This,
    /* [retval][out] */ RtDWORD *pdwIndex);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMaterialChunk_SetMaterialIndex_Proxy( 
    IRdMaterialChunk * This,
    /* [in] */ RtDWORD dwIndex);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMaterialChunk_GetNumMaterialItems_Proxy( 
    IRdMaterialChunk * This,
    /* [retval][out] */ RtDWORD *pdwNum);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMaterialChunk_GetMaterialItem_Proxy( 
    IRdMaterialChunk * This,
    /* [in] */ RtMatClsId *MatClsId,
    /* [retval][out] */ IRsObject **ppMaterial);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMaterialChunk_EnumMaterialItems_Proxy( 
    IRdMaterialChunk * This,
    /* [retval][out] */ IRsEnumMaterialItems **ppEnumMaterialItems);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMaterialChunk_GetMaterialInfo_Proxy( 
    IRdMaterialChunk * This,
    /* [retval][out] */ IRdMaterialActiveInfo **ppMaterialInfo);


void __RPC_STUB IRdMaterialChunk_GetMaterialInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMaterialChunk_SetMaterialInfo_Proxy( 
    IRdMaterialChunk * This,
    /* [in] */ IRdMaterialActiveInfo *pMaterialInfo);


void __RPC_STUB IRdMaterialChunk_SetMaterialInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdMaterialChunk_INTERFACE_DEFINED__ */


#ifndef __IRdMaterialChunkDisp_INTERFACE_DEFINED__
#define __IRdMaterialChunkDisp_INTERFACE_DEFINED__

/* interface IRdMaterialChunkDisp */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdMaterialChunkDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("66fb4f9a-392d-4c4e-9d8f-6254465c7bf0")
    IRdMaterialChunkDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMaterialIndex( 
            /* [retval][out] */ RtDWORD *pIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumMaterialItems( 
            /* [retval][out] */ RtDWORD *pNum) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdMaterialChunkDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdMaterialChunkDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdMaterialChunkDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdMaterialChunkDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdMaterialChunkDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdMaterialChunkDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdMaterialChunkDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdMaterialChunkDisp * 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 *GetMaterialIndex )( 
            IRdMaterialChunkDisp * This,
            /* [retval][out] */ RtDWORD *pIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNumMaterialItems )( 
            IRdMaterialChunkDisp * This,
            /* [retval][out] */ RtDWORD *pNum);
        
        END_INTERFACE
    } IRdMaterialChunkDispVtbl;

    interface IRdMaterialChunkDisp
    {
        CONST_VTBL struct IRdMaterialChunkDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdMaterialChunkDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdMaterialChunkDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdMaterialChunkDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdMaterialChunkDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdMaterialChunkDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdMaterialChunkDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdMaterialChunkDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdMaterialChunkDisp_GetMaterialIndex(This,pIndex)	\
    (This)->lpVtbl -> GetMaterialIndex(This,pIndex)

#define IRdMaterialChunkDisp_GetNumMaterialItems(This,pNum)	\
    (This)->lpVtbl -> GetNumMaterialItems(This,pNum)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMaterialChunkDisp_GetMaterialIndex_Proxy( 
    IRdMaterialChunkDisp * This,
    /* [retval][out] */ RtDWORD *pIndex);


void __RPC_STUB IRdMaterialChunkDisp_GetMaterialIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMaterialChunkDisp_GetNumMaterialItems_Proxy( 
    IRdMaterialChunkDisp * This,
    /* [retval][out] */ RtDWORD *pNum);


void __RPC_STUB IRdMaterialChunkDisp_GetNumMaterialItems_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdMaterialChunkDisp_INTERFACE_DEFINED__ */


#ifndef __IRdMaterialList_INTERFACE_DEFINED__
#define __IRdMaterialList_INTERFACE_DEFINED__

/* interface IRdMaterialList */
/* [unique][helpstring][object][uuid] */ 


EXTERN_C const IID IID_IRdMaterialList;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2BB7B002-E5E4-4eec-91F4-E2A98A0816ED")
    IRdMaterialList : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumMaterialChunks( 
            /* [retval][out] */ RtDWORD *pNum) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMaterialChunk( 
            /* [in] */ RtDWORD dwOrder,
            /* [retval][out] */ IRdMaterialChunk **ppMaterialChunk) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMaterialChunkByIndex( 
            /* [in] */ RtDWORD dwMatInd,
            /* [retval][out] */ IRdMaterialChunk **ppMaterialChunk) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMaterialEncaps( 
            /* [in] */ RtDWORD dwMatInd,
            /* [retval][out] */ IRnEncapsulator **ppMaterialEncaps) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMaterialIndices( 
            /* [out] */ RtDWORD *pIndices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNextMaterialIndex( 
            /* [out][in] */ RtLong *pdwIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CheckMaterialIndicesDuplicity( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdMaterialListVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdMaterialList * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdMaterialList * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdMaterialList * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNumMaterialChunks )( 
            IRdMaterialList * This,
            /* [retval][out] */ RtDWORD *pNum);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialChunk )( 
            IRdMaterialList * This,
            /* [in] */ RtDWORD dwOrder,
            /* [retval][out] */ IRdMaterialChunk **ppMaterialChunk);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialChunkByIndex )( 
            IRdMaterialList * This,
            /* [in] */ RtDWORD dwMatInd,
            /* [retval][out] */ IRdMaterialChunk **ppMaterialChunk);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialEncaps )( 
            IRdMaterialList * This,
            /* [in] */ RtDWORD dwMatInd,
            /* [retval][out] */ IRnEncapsulator **ppMaterialEncaps);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialIndices )( 
            IRdMaterialList * This,
            /* [out] */ RtDWORD *pIndices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNextMaterialIndex )( 
            IRdMaterialList * This,
            /* [out][in] */ RtLong *pdwIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CheckMaterialIndicesDuplicity )( 
            IRdMaterialList * This);
        
        END_INTERFACE
    } IRdMaterialListVtbl;

    interface IRdMaterialList
    {
        CONST_VTBL struct IRdMaterialListVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdMaterialList_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdMaterialList_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdMaterialList_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdMaterialList_GetNumMaterialChunks(This,pNum)	\
    (This)->lpVtbl -> GetNumMaterialChunks(This,pNum)

#define IRdMaterialList_GetMaterialChunk(This,dwOrder,ppMaterialChunk)	\
    (This)->lpVtbl -> GetMaterialChunk(This,dwOrder,ppMaterialChunk)

#define IRdMaterialList_GetMaterialChunkByIndex(This,dwMatInd,ppMaterialChunk)	\
    (This)->lpVtbl -> GetMaterialChunkByIndex(This,dwMatInd,ppMaterialChunk)

#define IRdMaterialList_GetMaterialEncaps(This,dwMatInd,ppMaterialEncaps)	\
    (This)->lpVtbl -> GetMaterialEncaps(This,dwMatInd,ppMaterialEncaps)

#define IRdMaterialList_GetMaterialIndices(This,pIndices)	\
    (This)->lpVtbl -> GetMaterialIndices(This,pIndices)

#define IRdMaterialList_GetNextMaterialIndex(This,pdwIndex)	\
    (This)->lpVtbl -> GetNextMaterialIndex(This,pdwIndex)

#define IRdMaterialList_CheckMaterialIndicesDuplicity(This)	\
    (This)->lpVtbl -> CheckMaterialIndicesDuplicity(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMaterialList_GetNumMaterialChunks_Proxy( 
    IRdMaterialList * This,
    /* [retval][out] */ RtDWORD *pNum);


void __RPC_STUB IRdMaterialList_GetNumMaterialChunks_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMaterialList_GetMaterialChunk_Proxy( 
    IRdMaterialList * This,
    /* [in] */ RtDWORD dwOrder,
    /* [retval][out] */ IRdMaterialChunk **ppMaterialChunk);


void __RPC_STUB IRdMaterialList_GetMaterialChunk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMaterialList_GetMaterialChunkByIndex_Proxy( 
    IRdMaterialList * This,
    /* [in] */ RtDWORD dwMatInd,
    /* [retval][out] */ IRdMaterialChunk **ppMaterialChunk);


void __RPC_STUB IRdMaterialList_GetMaterialChunkByIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMaterialList_GetMaterialEncaps_Proxy( 
    IRdMaterialList * This,
    /* [in] */ RtDWORD dwMatInd,
    /* [retval][out] */ IRnEncapsulator **ppMaterialEncaps);


void __RPC_STUB IRdMaterialList_GetMaterialEncaps_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMaterialList_GetMaterialIndices_Proxy( 
    IRdMaterialList * This,
    /* [out] */ RtDWORD *pIndices);


void __RPC_STUB IRdMaterialList_GetMaterialIndices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMaterialList_GetNextMaterialIndex_Proxy( 
    IRdMaterialList * This,
    /* [out][in] */ RtLong *pdwIndex);


void __RPC_STUB IRdMaterialList_GetNextMaterialIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMaterialList_CheckMaterialIndicesDuplicity_Proxy( 
    IRdMaterialList * This);


void __RPC_STUB IRdMaterialList_CheckMaterialIndicesDuplicity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdMaterialList_INTERFACE_DEFINED__ */


#ifndef __IRdMaterialListDisp_INTERFACE_DEFINED__
#define __IRdMaterialListDisp_INTERFACE_DEFINED__

/* interface IRdMaterialListDisp */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdMaterialListDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("b33ee7ae-14b3-405b-9098-b1e67db211fd")
    IRdMaterialListDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumMaterialChunks( 
            /* [retval][out] */ RtDWORD *pNum) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMaterialChunk( 
            /* [in] */ RtDWORD dwOrder,
            /* [retval][out] */ IRdMaterialChunkDisp **ppMaterialChunk) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMaterialChunkByIndex( 
            /* [in] */ RtDWORD dwMatInd,
            /* [retval][out] */ IRdMaterialChunkDisp **ppMaterialChunk) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMaterialIndices( 
            /* [out] */ RtDWORD *pIndices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNextMaterialIndex( 
            /* [out][in] */ RtLong *pdwIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CheckMaterialIndicesDuplicity( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdMaterialListDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdMaterialListDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdMaterialListDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdMaterialListDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdMaterialListDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdMaterialListDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdMaterialListDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdMaterialListDisp * 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 *GetNumMaterialChunks )( 
            IRdMaterialListDisp * This,
            /* [retval][out] */ RtDWORD *pNum);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialChunk )( 
            IRdMaterialListDisp * This,
            /* [in] */ RtDWORD dwOrder,
            /* [retval][out] */ IRdMaterialChunkDisp **ppMaterialChunk);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialChunkByIndex )( 
            IRdMaterialListDisp * This,
            /* [in] */ RtDWORD dwMatInd,
            /* [retval][out] */ IRdMaterialChunkDisp **ppMaterialChunk);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialIndices )( 
            IRdMaterialListDisp * This,
            /* [out] */ RtDWORD *pIndices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNextMaterialIndex )( 
            IRdMaterialListDisp * This,
            /* [out][in] */ RtLong *pdwIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CheckMaterialIndicesDuplicity )( 
            IRdMaterialListDisp * This);
        
        END_INTERFACE
    } IRdMaterialListDispVtbl;

    interface IRdMaterialListDisp
    {
        CONST_VTBL struct IRdMaterialListDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdMaterialListDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdMaterialListDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdMaterialListDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdMaterialListDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdMaterialListDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdMaterialListDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdMaterialListDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdMaterialListDisp_GetNumMaterialChunks(This,pNum)	\
    (This)->lpVtbl -> GetNumMaterialChunks(This,pNum)

#define IRdMaterialListDisp_GetMaterialChunk(This,dwOrder,ppMaterialChunk)	\
    (This)->lpVtbl -> GetMaterialChunk(This,dwOrder,ppMaterialChunk)

#define IRdMaterialListDisp_GetMaterialChunkByIndex(This,dwMatInd,ppMaterialChunk)	\
    (This)->lpVtbl -> GetMaterialChunkByIndex(This,dwMatInd,ppMaterialChunk)

#define IRdMaterialListDisp_GetMaterialIndices(This,pIndices)	\
    (This)->lpVtbl -> GetMaterialIndices(This,pIndices)

#define IRdMaterialListDisp_GetNextMaterialIndex(This,pdwIndex)	\
    (This)->lpVtbl -> GetNextMaterialIndex(This,pdwIndex)

#define IRdMaterialListDisp_CheckMaterialIndicesDuplicity(This)	\
    (This)->lpVtbl -> CheckMaterialIndicesDuplicity(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMaterialListDisp_GetNumMaterialChunks_Proxy( 
    IRdMaterialListDisp * This,
    /* [retval][out] */ RtDWORD *pNum);


void __RPC_STUB IRdMaterialListDisp_GetNumMaterialChunks_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMaterialListDisp_GetMaterialChunk_Proxy( 
    IRdMaterialListDisp * This,
    /* [in] */ RtDWORD dwOrder,
    /* [retval][out] */ IRdMaterialChunkDisp **ppMaterialChunk);


void __RPC_STUB IRdMaterialListDisp_GetMaterialChunk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMaterialListDisp_GetMaterialChunkByIndex_Proxy( 
    IRdMaterialListDisp * This,
    /* [in] */ RtDWORD dwMatInd,
    /* [retval][out] */ IRdMaterialChunkDisp **ppMaterialChunk);


void __RPC_STUB IRdMaterialListDisp_GetMaterialChunkByIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMaterialListDisp_GetMaterialIndices_Proxy( 
    IRdMaterialListDisp * This,
    /* [out] */ RtDWORD *pIndices);


void __RPC_STUB IRdMaterialListDisp_GetMaterialIndices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMaterialListDisp_GetNextMaterialIndex_Proxy( 
    IRdMaterialListDisp * This,
    /* [out][in] */ RtLong *pdwIndex);


void __RPC_STUB IRdMaterialListDisp_GetNextMaterialIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMaterialListDisp_CheckMaterialIndicesDuplicity_Proxy( 
    IRdMaterialListDisp * This);


void __RPC_STUB IRdMaterialListDisp_CheckMaterialIndicesDuplicity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdMaterialListDisp_INTERFACE_DEFINED__ */


#ifndef __IRdArrayObjInfo_INTERFACE_DEFINED__
#define __IRdArrayObjInfo_INTERFACE_DEFINED__

/* interface IRdArrayObjInfo */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdArrayObjInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9E7444E6-CE67-4edf-A2E0-2B4E0A14216A")
    IRdArrayObjInfo : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdArrayObjInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdArrayObjInfo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdArrayObjInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdArrayObjInfo * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdArrayObjInfo * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdArrayObjInfo * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdArrayObjInfo * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdArrayObjInfo * 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 *Clear )( 
            IRdArrayObjInfo * This);
        
        END_INTERFACE
    } IRdArrayObjInfoVtbl;

    interface IRdArrayObjInfo
    {
        CONST_VTBL struct IRdArrayObjInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdArrayObjInfo_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdArrayObjInfo_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdArrayObjInfo_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdArrayObjInfo_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdArrayObjInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdArrayObjInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdArrayObjInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdArrayObjInfo_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdArrayObjInfo_Clear_Proxy( 
    IRdArrayObjInfo * This);


void __RPC_STUB IRdArrayObjInfo_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdArrayObjInfo_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1322 */
/* [local] */ 

typedef 
enum _tagRtLayerStatus
    {	LAYERSTAT_SHOW	= 0,
	LAYERSTAT_HIDDEN	= 1,
	LAYERSTAT_LOCKED	= 2,
	LAYERSTAT_FORCE_DWORD	= -1
    } 	RtLayerStatus;



extern RPC_IF_HANDLE __MIDL_itf__Space3D_1322_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1322_v0_0_s_ifspec;

#ifndef __IRdLayersInfo_INTERFACE_DEFINED__
#define __IRdLayersInfo_INTERFACE_DEFINED__

/* interface IRdLayersInfo */
/* [unique][helpstring][object][uuid] */ 


EXTERN_C const IID IID_IRdLayersInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("AF87DB79-692C-4874-9B19-00D51B624BBF")
    IRdLayersInfo : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNumLayers( 
            /* [retval][out] */ RtDWORD *pNum) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetNumLayers( 
            /* [in] */ RtDWORD newNum) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetLayerInfo( 
            /* [in] */ RtDWORD iLayer,
            /* [out] */ RtLayerStatus *pStatus,
            /* [out] */ BSTR *pbsName,
            /* [out] */ IRdColor **ppWireframeColor) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetLayerInfo( 
            /* [in] */ RtDWORD iLayer,
            /* [in] */ RtLayerStatus status,
            /* [in] */ BSTR bsName,
            /* [in] */ IRdColor *pWireframeColor) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetActiveLayer( 
            /* [retval][out] */ RtDWORD *pActiveLayer) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetActiveLayer( 
            /* [in] */ RtDWORD newActiveLayer) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdLayersInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdLayersInfo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdLayersInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdLayersInfo * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdLayersInfo * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNumLayers )( 
            IRdLayersInfo * This,
            /* [retval][out] */ RtDWORD *pNum);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetNumLayers )( 
            IRdLayersInfo * This,
            /* [in] */ RtDWORD newNum);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetLayerInfo )( 
            IRdLayersInfo * This,
            /* [in] */ RtDWORD iLayer,
            /* [out] */ RtLayerStatus *pStatus,
            /* [out] */ BSTR *pbsName,
            /* [out] */ IRdColor **ppWireframeColor);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetLayerInfo )( 
            IRdLayersInfo * This,
            /* [in] */ RtDWORD iLayer,
            /* [in] */ RtLayerStatus status,
            /* [in] */ BSTR bsName,
            /* [in] */ IRdColor *pWireframeColor);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetActiveLayer )( 
            IRdLayersInfo * This,
            /* [retval][out] */ RtDWORD *pActiveLayer);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetActiveLayer )( 
            IRdLayersInfo * This,
            /* [in] */ RtDWORD newActiveLayer);
        
        END_INTERFACE
    } IRdLayersInfoVtbl;

    interface IRdLayersInfo
    {
        CONST_VTBL struct IRdLayersInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdLayersInfo_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdLayersInfo_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdLayersInfo_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdLayersInfo_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdLayersInfo_GetNumLayers(This,pNum)	\
    (This)->lpVtbl -> GetNumLayers(This,pNum)

#define IRdLayersInfo_SetNumLayers(This,newNum)	\
    (This)->lpVtbl -> SetNumLayers(This,newNum)

#define IRdLayersInfo_GetLayerInfo(This,iLayer,pStatus,pbsName,ppWireframeColor)	\
    (This)->lpVtbl -> GetLayerInfo(This,iLayer,pStatus,pbsName,ppWireframeColor)

#define IRdLayersInfo_SetLayerInfo(This,iLayer,status,bsName,pWireframeColor)	\
    (This)->lpVtbl -> SetLayerInfo(This,iLayer,status,bsName,pWireframeColor)

#define IRdLayersInfo_GetActiveLayer(This,pActiveLayer)	\
    (This)->lpVtbl -> GetActiveLayer(This,pActiveLayer)

#define IRdLayersInfo_SetActiveLayer(This,newActiveLayer)	\
    (This)->lpVtbl -> SetActiveLayer(This,newActiveLayer)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdLayersInfo_Clear_Proxy( 
    IRdLayersInfo * This);


void __RPC_STUB IRdLayersInfo_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdLayersInfo_GetNumLayers_Proxy( 
    IRdLayersInfo * This,
    /* [retval][out] */ RtDWORD *pNum);


void __RPC_STUB IRdLayersInfo_GetNumLayers_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdLayersInfo_SetNumLayers_Proxy( 
    IRdLayersInfo * This,
    /* [in] */ RtDWORD newNum);


void __RPC_STUB IRdLayersInfo_SetNumLayers_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdLayersInfo_GetLayerInfo_Proxy( 
    IRdLayersInfo * This,
    /* [in] */ RtDWORD iLayer,
    /* [out] */ RtLayerStatus *pStatus,
    /* [out] */ BSTR *pbsName,
    /* [out] */ IRdColor **ppWireframeColor);


void __RPC_STUB IRdLayersInfo_GetLayerInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdLayersInfo_SetLayerInfo_Proxy( 
    IRdLayersInfo * This,
    /* [in] */ RtDWORD iLayer,
    /* [in] */ RtLayerStatus status,
    /* [in] */ BSTR bsName,
    /* [in] */ IRdColor *pWireframeColor);


void __RPC_STUB IRdLayersInfo_SetLayerInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdLayersInfo_GetActiveLayer_Proxy( 
    IRdLayersInfo * This,
    /* [retval][out] */ RtDWORD *pActiveLayer);


void __RPC_STUB IRdLayersInfo_GetActiveLayer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdLayersInfo_SetActiveLayer_Proxy( 
    IRdLayersInfo * This,
    /* [in] */ RtDWORD newActiveLayer);


void __RPC_STUB IRdLayersInfo_SetActiveLayer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdLayersInfo_INTERFACE_DEFINED__ */


#ifndef __IRdLayersInfoDisp_INTERFACE_DEFINED__
#define __IRdLayersInfoDisp_INTERFACE_DEFINED__

/* interface IRdLayersInfoDisp */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdLayersInfoDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3542c60b-8b02-488e-9536-37a942a72d4d")
    IRdLayersInfoDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumLayers( 
            /* [retval][out] */ RtDWORD *pNum) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumLayers( 
            /* [in] */ RtDWORD newNum) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetLayerInfo( 
            /* [in] */ RtDWORD iLayer,
            /* [out] */ RtLayerStatus *pStatus,
            /* [out] */ BSTR *pbsName,
            /* [out] */ IDispatch **ppWireframeColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetLayerInfo( 
            /* [in] */ RtDWORD iLayer,
            /* [in] */ RtLayerStatus status,
            /* [in] */ BSTR bsName,
            /* [in] */ IDispatch *pWireframeColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetActiveLayer( 
            /* [retval][out] */ RtDWORD *pActiveLayer) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetActiveLayer( 
            /* [in] */ RtDWORD newActiveLayer) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdLayersInfoDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdLayersInfoDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdLayersInfoDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdLayersInfoDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdLayersInfoDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdLayersInfoDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdLayersInfoDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdLayersInfoDisp * 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 *Clear )( 
            IRdLayersInfoDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNumLayers )( 
            IRdLayersInfoDisp * This,
            /* [retval][out] */ RtDWORD *pNum);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumLayers )( 
            IRdLayersInfoDisp * This,
            /* [in] */ RtDWORD newNum);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLayerInfo )( 
            IRdLayersInfoDisp * This,
            /* [in] */ RtDWORD iLayer,
            /* [out] */ RtLayerStatus *pStatus,
            /* [out] */ BSTR *pbsName,
            /* [out] */ IDispatch **ppWireframeColor);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLayerInfo )( 
            IRdLayersInfoDisp * This,
            /* [in] */ RtDWORD iLayer,
            /* [in] */ RtLayerStatus status,
            /* [in] */ BSTR bsName,
            /* [in] */ IDispatch *pWireframeColor);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetActiveLayer )( 
            IRdLayersInfoDisp * This,
            /* [retval][out] */ RtDWORD *pActiveLayer);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetActiveLayer )( 
            IRdLayersInfoDisp * This,
            /* [in] */ RtDWORD newActiveLayer);
        
        END_INTERFACE
    } IRdLayersInfoDispVtbl;

    interface IRdLayersInfoDisp
    {
        CONST_VTBL struct IRdLayersInfoDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdLayersInfoDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdLayersInfoDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdLayersInfoDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdLayersInfoDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdLayersInfoDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdLayersInfoDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdLayersInfoDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdLayersInfoDisp_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdLayersInfoDisp_GetNumLayers(This,pNum)	\
    (This)->lpVtbl -> GetNumLayers(This,pNum)

#define IRdLayersInfoDisp_SetNumLayers(This,newNum)	\
    (This)->lpVtbl -> SetNumLayers(This,newNum)

#define IRdLayersInfoDisp_GetLayerInfo(This,iLayer,pStatus,pbsName,ppWireframeColor)	\
    (This)->lpVtbl -> GetLayerInfo(This,iLayer,pStatus,pbsName,ppWireframeColor)

#define IRdLayersInfoDisp_SetLayerInfo(This,iLayer,status,bsName,pWireframeColor)	\
    (This)->lpVtbl -> SetLayerInfo(This,iLayer,status,bsName,pWireframeColor)

#define IRdLayersInfoDisp_GetActiveLayer(This,pActiveLayer)	\
    (This)->lpVtbl -> GetActiveLayer(This,pActiveLayer)

#define IRdLayersInfoDisp_SetActiveLayer(This,newActiveLayer)	\
    (This)->lpVtbl -> SetActiveLayer(This,newActiveLayer)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdLayersInfoDisp_Clear_Proxy( 
    IRdLayersInfoDisp * This);


void __RPC_STUB IRdLayersInfoDisp_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdLayersInfoDisp_GetNumLayers_Proxy( 
    IRdLayersInfoDisp * This,
    /* [retval][out] */ RtDWORD *pNum);


void __RPC_STUB IRdLayersInfoDisp_GetNumLayers_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdLayersInfoDisp_SetNumLayers_Proxy( 
    IRdLayersInfoDisp * This,
    /* [in] */ RtDWORD newNum);


void __RPC_STUB IRdLayersInfoDisp_SetNumLayers_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdLayersInfoDisp_GetLayerInfo_Proxy( 
    IRdLayersInfoDisp * This,
    /* [in] */ RtDWORD iLayer,
    /* [out] */ RtLayerStatus *pStatus,
    /* [out] */ BSTR *pbsName,
    /* [out] */ IDispatch **ppWireframeColor);


void __RPC_STUB IRdLayersInfoDisp_GetLayerInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdLayersInfoDisp_SetLayerInfo_Proxy( 
    IRdLayersInfoDisp * This,
    /* [in] */ RtDWORD iLayer,
    /* [in] */ RtLayerStatus status,
    /* [in] */ BSTR bsName,
    /* [in] */ IDispatch *pWireframeColor);


void __RPC_STUB IRdLayersInfoDisp_SetLayerInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdLayersInfoDisp_GetActiveLayer_Proxy( 
    IRdLayersInfoDisp * This,
    /* [retval][out] */ RtDWORD *pActiveLayer);


void __RPC_STUB IRdLayersInfoDisp_GetActiveLayer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdLayersInfoDisp_SetActiveLayer_Proxy( 
    IRdLayersInfoDisp * This,
    /* [in] */ RtDWORD newActiveLayer);


void __RPC_STUB IRdLayersInfoDisp_SetActiveLayer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdLayersInfoDisp_INTERFACE_DEFINED__ */


#ifndef __IRdSphereTree_INTERFACE_DEFINED__
#define __IRdSphereTree_INTERFACE_DEFINED__

/* interface IRdSphereTree */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdSphereTree;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("dc6360fb-c171-4155-9a86-8e69e449de48")
    IRdSphereTree : public IRsDataObject
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetBoundingBox( 
            /* [in] */ IRdMatrixf *pMatrix,
            /* [out] */ RtFloat *box) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSphereTree( 
            /* [in] */ RtSphereTree *pSphereTree) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockData( 
            /* [retval][out] */ RtSphereTree **ppSphereTree) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnLockData( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMesh( 
            /* [in] */ IRdMesh *pMesh) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMesh( 
            /* [out] */ IRdMesh **pMesh) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdSphereTreeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdSphereTree * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdSphereTree * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdSphereTree * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRdSphereTree * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRdSphereTree * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDefault )( 
            IRdSphereTree * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IRdSphereTree * This,
            /* [in] */ IRdMatrixf *pMatrix,
            /* [out] */ RtFloat *box);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSphereTree )( 
            IRdSphereTree * This,
            /* [in] */ RtSphereTree *pSphereTree);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockData )( 
            IRdSphereTree * This,
            /* [retval][out] */ RtSphereTree **ppSphereTree);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnLockData )( 
            IRdSphereTree * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMesh )( 
            IRdSphereTree * This,
            /* [in] */ IRdMesh *pMesh);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMesh )( 
            IRdSphereTree * This,
            /* [out] */ IRdMesh **pMesh);
        
        END_INTERFACE
    } IRdSphereTreeVtbl;

    interface IRdSphereTree
    {
        CONST_VTBL struct IRdSphereTreeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdSphereTree_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdSphereTree_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdSphereTree_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdSphereTree_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRdSphereTree_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#define IRdSphereTree_SetDefault(This)	\
    (This)->lpVtbl -> SetDefault(This)


#define IRdSphereTree_GetBoundingBox(This,pMatrix,box)	\
    (This)->lpVtbl -> GetBoundingBox(This,pMatrix,box)

#define IRdSphereTree_SetSphereTree(This,pSphereTree)	\
    (This)->lpVtbl -> SetSphereTree(This,pSphereTree)

#define IRdSphereTree_LockData(This,ppSphereTree)	\
    (This)->lpVtbl -> LockData(This,ppSphereTree)

#define IRdSphereTree_UnLockData(This)	\
    (This)->lpVtbl -> UnLockData(This)

#define IRdSphereTree_SetMesh(This,pMesh)	\
    (This)->lpVtbl -> SetMesh(This,pMesh)

#define IRdSphereTree_GetMesh(This,pMesh)	\
    (This)->lpVtbl -> GetMesh(This,pMesh)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdSphereTree_GetBoundingBox_Proxy( 
    IRdSphereTree * This,
    /* [in] */ IRdMatrixf *pMatrix,
    /* [out] */ RtFloat *box);


void __RPC_STUB IRdSphereTree_GetBoundingBox_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdSphereTree_SetSphereTree_Proxy( 
    IRdSphereTree * This,
    /* [in] */ RtSphereTree *pSphereTree);


void __RPC_STUB IRdSphereTree_SetSphereTree_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdSphereTree_LockData_Proxy( 
    IRdSphereTree * This,
    /* [retval][out] */ RtSphereTree **ppSphereTree);


void __RPC_STUB IRdSphereTree_LockData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdSphereTree_UnLockData_Proxy( 
    IRdSphereTree * This);


void __RPC_STUB IRdSphereTree_UnLockData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdSphereTree_SetMesh_Proxy( 
    IRdSphereTree * This,
    /* [in] */ IRdMesh *pMesh);


void __RPC_STUB IRdSphereTree_SetMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdSphereTree_GetMesh_Proxy( 
    IRdSphereTree * This,
    /* [out] */ IRdMesh **pMesh);


void __RPC_STUB IRdSphereTree_GetMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdSphereTree_INTERFACE_DEFINED__ */


#ifndef __IRdOBBTree_INTERFACE_DEFINED__
#define __IRdOBBTree_INTERFACE_DEFINED__

/* interface IRdOBBTree */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdOBBTree;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9E9B28B1-7EFE-4447-8686-A1E4C413FF74")
    IRdOBBTree : public IRsDataObject
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetBBox( 
            /* [in] */ IRdMatrixf *pMatrix,
            /* [out] */ RtFloat *box) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetOBBox( 
            /* [in] */ RtOBBox *obbox) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE TransformOBBox( 
            /* [in] */ IRdMatrixf *matrix) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockData( 
            /* [retval][out] */ RtOBBox **pObbTree) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnLockData( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMesh( 
            /* [in] */ IRdMesh *pMesh) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMesh( 
            /* [out] */ IRdMesh **pMesh) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetOBBox( 
            /* [in] */ RtMatrixf *matrix,
            /* [out] */ RtFloat *box) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdOBBTreeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdOBBTree * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdOBBTree * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdOBBTree * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRdOBBTree * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRdOBBTree * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDefault )( 
            IRdOBBTree * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetBBox )( 
            IRdOBBTree * This,
            /* [in] */ IRdMatrixf *pMatrix,
            /* [out] */ RtFloat *box);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetOBBox )( 
            IRdOBBTree * This,
            /* [in] */ RtOBBox *obbox);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *TransformOBBox )( 
            IRdOBBTree * This,
            /* [in] */ IRdMatrixf *matrix);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockData )( 
            IRdOBBTree * This,
            /* [retval][out] */ RtOBBox **pObbTree);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnLockData )( 
            IRdOBBTree * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMesh )( 
            IRdOBBTree * This,
            /* [in] */ IRdMesh *pMesh);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMesh )( 
            IRdOBBTree * This,
            /* [out] */ IRdMesh **pMesh);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetOBBox )( 
            IRdOBBTree * This,
            /* [in] */ RtMatrixf *matrix,
            /* [out] */ RtFloat *box);
        
        END_INTERFACE
    } IRdOBBTreeVtbl;

    interface IRdOBBTree
    {
        CONST_VTBL struct IRdOBBTreeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdOBBTree_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdOBBTree_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdOBBTree_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdOBBTree_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRdOBBTree_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#define IRdOBBTree_SetDefault(This)	\
    (This)->lpVtbl -> SetDefault(This)


#define IRdOBBTree_GetBBox(This,pMatrix,box)	\
    (This)->lpVtbl -> GetBBox(This,pMatrix,box)

#define IRdOBBTree_SetOBBox(This,obbox)	\
    (This)->lpVtbl -> SetOBBox(This,obbox)

#define IRdOBBTree_TransformOBBox(This,matrix)	\
    (This)->lpVtbl -> TransformOBBox(This,matrix)

#define IRdOBBTree_LockData(This,pObbTree)	\
    (This)->lpVtbl -> LockData(This,pObbTree)

#define IRdOBBTree_UnLockData(This)	\
    (This)->lpVtbl -> UnLockData(This)

#define IRdOBBTree_SetMesh(This,pMesh)	\
    (This)->lpVtbl -> SetMesh(This,pMesh)

#define IRdOBBTree_GetMesh(This,pMesh)	\
    (This)->lpVtbl -> GetMesh(This,pMesh)

#define IRdOBBTree_GetOBBox(This,matrix,box)	\
    (This)->lpVtbl -> GetOBBox(This,matrix,box)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdOBBTree_GetBBox_Proxy( 
    IRdOBBTree * This,
    /* [in] */ IRdMatrixf *pMatrix,
    /* [out] */ RtFloat *box);


void __RPC_STUB IRdOBBTree_GetBBox_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdOBBTree_SetOBBox_Proxy( 
    IRdOBBTree * This,
    /* [in] */ RtOBBox *obbox);


void __RPC_STUB IRdOBBTree_SetOBBox_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdOBBTree_TransformOBBox_Proxy( 
    IRdOBBTree * This,
    /* [in] */ IRdMatrixf *matrix);


void __RPC_STUB IRdOBBTree_TransformOBBox_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdOBBTree_LockData_Proxy( 
    IRdOBBTree * This,
    /* [retval][out] */ RtOBBox **pObbTree);


void __RPC_STUB IRdOBBTree_LockData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdOBBTree_UnLockData_Proxy( 
    IRdOBBTree * This);


void __RPC_STUB IRdOBBTree_UnLockData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdOBBTree_SetMesh_Proxy( 
    IRdOBBTree * This,
    /* [in] */ IRdMesh *pMesh);


void __RPC_STUB IRdOBBTree_SetMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdOBBTree_GetMesh_Proxy( 
    IRdOBBTree * This,
    /* [out] */ IRdMesh **pMesh);


void __RPC_STUB IRdOBBTree_GetMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdOBBTree_GetOBBox_Proxy( 
    IRdOBBTree * This,
    /* [in] */ RtMatrixf *matrix,
    /* [out] */ RtFloat *box);


void __RPC_STUB IRdOBBTree_GetOBBox_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdOBBTree_INTERFACE_DEFINED__ */


#ifndef __IRnSpace3D_INTERFACE_DEFINED__
#define __IRnSpace3D_INTERFACE_DEFINED__

/* interface IRnSpace3D */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnSpace3D;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("859D237E-B8ED-484D-93E1-F80B1BE8AA21")
    IRnSpace3D : public IRsObject
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddToSpace( 
            /* [in] */ IRsNode *pNode,
            /* [in] */ IRnEncapsulator *pOwner) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveFromSpace( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE IsInSpace( 
            /* [in] */ IRsNode *pNode,
            /* [retval][out] */ RtLong *pDepth) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_SceneHasChanged( 
            /* [retval][out] */ RtBOOL *pVal) = 0;
        
        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_SceneHasChanged( 
            /* [in] */ RtBOOL newVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_PrompForSave( 
            /* [retval][out] */ RtBOOL *pVal) = 0;
        
        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_PrompForSave( 
            /* [in] */ RtBOOL newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnSpace3DVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnSpace3D * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnSpace3D * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnSpace3D * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRnSpace3D * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRnSpace3D * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddToSpace )( 
            IRnSpace3D * This,
            /* [in] */ IRsNode *pNode,
            /* [in] */ IRnEncapsulator *pOwner);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveFromSpace )( 
            IRnSpace3D * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *IsInSpace )( 
            IRnSpace3D * This,
            /* [in] */ IRsNode *pNode,
            /* [retval][out] */ RtLong *pDepth);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_SceneHasChanged )( 
            IRnSpace3D * This,
            /* [retval][out] */ RtBOOL *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_SceneHasChanged )( 
            IRnSpace3D * This,
            /* [in] */ RtBOOL newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_PrompForSave )( 
            IRnSpace3D * This,
            /* [retval][out] */ RtBOOL *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_PrompForSave )( 
            IRnSpace3D * This,
            /* [in] */ RtBOOL newVal);
        
        END_INTERFACE
    } IRnSpace3DVtbl;

    interface IRnSpace3D
    {
        CONST_VTBL struct IRnSpace3DVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnSpace3D_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnSpace3D_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnSpace3D_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnSpace3D_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRnSpace3D_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#define IRnSpace3D_AddToSpace(This,pNode,pOwner)	\
    (This)->lpVtbl -> AddToSpace(This,pNode,pOwner)

#define IRnSpace3D_RemoveFromSpace(This,pNode)	\
    (This)->lpVtbl -> RemoveFromSpace(This,pNode)

#define IRnSpace3D_IsInSpace(This,pNode,pDepth)	\
    (This)->lpVtbl -> IsInSpace(This,pNode,pDepth)

#define IRnSpace3D_get_SceneHasChanged(This,pVal)	\
    (This)->lpVtbl -> get_SceneHasChanged(This,pVal)

#define IRnSpace3D_put_SceneHasChanged(This,newVal)	\
    (This)->lpVtbl -> put_SceneHasChanged(This,newVal)

#define IRnSpace3D_get_PrompForSave(This,pVal)	\
    (This)->lpVtbl -> get_PrompForSave(This,pVal)

#define IRnSpace3D_put_PrompForSave(This,newVal)	\
    (This)->lpVtbl -> put_PrompForSave(This,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnSpace3D_AddToSpace_Proxy( 
    IRnSpace3D * This,
    /* [in] */ IRsNode *pNode,
    /* [in] */ IRnEncapsulator *pOwner);


void __RPC_STUB IRnSpace3D_AddToSpace_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnSpace3D_RemoveFromSpace_Proxy( 
    IRnSpace3D * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRnSpace3D_RemoveFromSpace_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnSpace3D_IsInSpace_Proxy( 
    IRnSpace3D * This,
    /* [in] */ IRsNode *pNode,
    /* [retval][out] */ RtLong *pDepth);


void __RPC_STUB IRnSpace3D_IsInSpace_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IRnSpace3D_get_SceneHasChanged_Proxy( 
    IRnSpace3D * This,
    /* [retval][out] */ RtBOOL *pVal);


void __RPC_STUB IRnSpace3D_get_SceneHasChanged_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IRnSpace3D_put_SceneHasChanged_Proxy( 
    IRnSpace3D * This,
    /* [in] */ RtBOOL newVal);


void __RPC_STUB IRnSpace3D_put_SceneHasChanged_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IRnSpace3D_get_PrompForSave_Proxy( 
    IRnSpace3D * This,
    /* [retval][out] */ RtBOOL *pVal);


void __RPC_STUB IRnSpace3D_get_PrompForSave_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IRnSpace3D_put_PrompForSave_Proxy( 
    IRnSpace3D * This,
    /* [in] */ RtBOOL newVal);


void __RPC_STUB IRnSpace3D_put_PrompForSave_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRnSpace3D_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1327 */
/* [local] */ 

typedef struct tagRfS3DObjStat
    {
    RtDWORD dwNumObjs;
    RtDWORD dwNumVertices;
    RtDWORD dwNumFaces;
    } 	RfS3DObjStat;



extern RPC_IF_HANDLE __MIDL_itf__Space3D_1327_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1327_v0_0_s_ifspec;

#ifndef __IRfObjectHelper_INTERFACE_DEFINED__
#define __IRfObjectHelper_INTERFACE_DEFINED__

/* interface IRfObjectHelper */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRfObjectHelper;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FA690A6E-74B5-4911-BEE7-D15E489067A9")
    IRfObjectHelper : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetObjStatistic( 
            /* [in] */ IRsNode *pNode,
            /* [retval][out] */ RfS3DObjStat *pRfS3DObjStat) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfObjectHelperVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfObjectHelper * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfObjectHelper * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfObjectHelper * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetObjStatistic )( 
            IRfObjectHelper * This,
            /* [in] */ IRsNode *pNode,
            /* [retval][out] */ RfS3DObjStat *pRfS3DObjStat);
        
        END_INTERFACE
    } IRfObjectHelperVtbl;

    interface IRfObjectHelper
    {
        CONST_VTBL struct IRfObjectHelperVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfObjectHelper_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfObjectHelper_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfObjectHelper_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfObjectHelper_GetObjStatistic(This,pNode,pRfS3DObjStat)	\
    (This)->lpVtbl -> GetObjStatistic(This,pNode,pRfS3DObjStat)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfObjectHelper_GetObjStatistic_Proxy( 
    IRfObjectHelper * This,
    /* [in] */ IRsNode *pNode,
    /* [retval][out] */ RfS3DObjStat *pRfS3DObjStat);


void __RPC_STUB IRfObjectHelper_GetObjStatistic_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfObjectHelper_INTERFACE_DEFINED__ */


#ifndef __IRfSceneHelper_INTERFACE_DEFINED__
#define __IRfSceneHelper_INTERFACE_DEFINED__

/* interface IRfSceneHelper */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRfSceneHelper;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A689F6E5-632E-4CA6-820F-905C22380D07")
    IRfSceneHelper : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCurrentScene( 
            /* [retval][out] */ IRnSpace3D **ppCurrScene) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetCurrentScene( 
            /* [in] */ IRnSpace3D *pNewScene) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCurrentSceneName( 
            /* [retval][out] */ BSTR *pbszCurrSceneName) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE EnumScenes( 
            /* [retval][out] */ IRsEnumNodes **ppEnum) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RenameCurrentScene( 
            /* [in] */ BSTR bszNewSceneName) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ReplaceCurrScene( 
            /* [in] */ IRnSpace3D *pNewSpace3D) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ClearCurrentScene( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SaveScene( 
            /* [in] */ BSTR bstrFileName,
            /* [in] */ BSTR bstrAuthor,
            /* [in] */ BSTR bstrDescr,
            /* [in] */ IRdBitmap *pThumbnail,
            /* [in] */ IRsNode *pScene) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SaveSceneNode( 
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [in] */ IRsNode *pScene) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LoadScene( 
            /* [in] */ BSTR bstrFileName) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LoadSceneNode( 
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [in] */ IRsNode **ppScene) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfSceneHelperVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfSceneHelper * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfSceneHelper * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfSceneHelper * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCurrentScene )( 
            IRfSceneHelper * This,
            /* [retval][out] */ IRnSpace3D **ppCurrScene);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetCurrentScene )( 
            IRfSceneHelper * This,
            /* [in] */ IRnSpace3D *pNewScene);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCurrentSceneName )( 
            IRfSceneHelper * This,
            /* [retval][out] */ BSTR *pbszCurrSceneName);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnumScenes )( 
            IRfSceneHelper * This,
            /* [retval][out] */ IRsEnumNodes **ppEnum);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RenameCurrentScene )( 
            IRfSceneHelper * This,
            /* [in] */ BSTR bszNewSceneName);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ReplaceCurrScene )( 
            IRfSceneHelper * This,
            /* [in] */ IRnSpace3D *pNewSpace3D);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ClearCurrentScene )( 
            IRfSceneHelper * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SaveScene )( 
            IRfSceneHelper * This,
            /* [in] */ BSTR bstrFileName,
            /* [in] */ BSTR bstrAuthor,
            /* [in] */ BSTR bstrDescr,
            /* [in] */ IRdBitmap *pThumbnail,
            /* [in] */ IRsNode *pScene);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SaveSceneNode )( 
            IRfSceneHelper * This,
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [in] */ IRsNode *pScene);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LoadScene )( 
            IRfSceneHelper * This,
            /* [in] */ BSTR bstrFileName);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LoadSceneNode )( 
            IRfSceneHelper * This,
            /* [in] */ IRsFileHandle *pRsFileHandle,
            /* [in] */ IRsNode **ppScene);
        
        END_INTERFACE
    } IRfSceneHelperVtbl;

    interface IRfSceneHelper
    {
        CONST_VTBL struct IRfSceneHelperVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfSceneHelper_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfSceneHelper_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfSceneHelper_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfSceneHelper_GetCurrentScene(This,ppCurrScene)	\
    (This)->lpVtbl -> GetCurrentScene(This,ppCurrScene)

#define IRfSceneHelper_SetCurrentScene(This,pNewScene)	\
    (This)->lpVtbl -> SetCurrentScene(This,pNewScene)

#define IRfSceneHelper_GetCurrentSceneName(This,pbszCurrSceneName)	\
    (This)->lpVtbl -> GetCurrentSceneName(This,pbszCurrSceneName)

#define IRfSceneHelper_EnumScenes(This,ppEnum)	\
    (This)->lpVtbl -> EnumScenes(This,ppEnum)

#define IRfSceneHelper_RenameCurrentScene(This,bszNewSceneName)	\
    (This)->lpVtbl -> RenameCurrentScene(This,bszNewSceneName)

#define IRfSceneHelper_ReplaceCurrScene(This,pNewSpace3D)	\
    (This)->lpVtbl -> ReplaceCurrScene(This,pNewSpace3D)

#define IRfSceneHelper_ClearCurrentScene(This)	\
    (This)->lpVtbl -> ClearCurrentScene(This)

#define IRfSceneHelper_SaveScene(This,bstrFileName,bstrAuthor,bstrDescr,pThumbnail,pScene)	\
    (This)->lpVtbl -> SaveScene(This,bstrFileName,bstrAuthor,bstrDescr,pThumbnail,pScene)

#define IRfSceneHelper_SaveSceneNode(This,pRsFileHandle,pScene)	\
    (This)->lpVtbl -> SaveSceneNode(This,pRsFileHandle,pScene)

#define IRfSceneHelper_LoadScene(This,bstrFileName)	\
    (This)->lpVtbl -> LoadScene(This,bstrFileName)

#define IRfSceneHelper_LoadSceneNode(This,pRsFileHandle,ppScene)	\
    (This)->lpVtbl -> LoadSceneNode(This,pRsFileHandle,ppScene)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfSceneHelper_GetCurrentScene_Proxy( 
    IRfSceneHelper * This,
    /* [retval][out] */ IRnSpace3D **ppCurrScene);


void __RPC_STUB IRfSceneHelper_GetCurrentScene_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfSceneHelper_SetCurrentScene_Proxy( 
    IRfSceneHelper * This,
    /* [in] */ IRnSpace3D *pNewScene);


void __RPC_STUB IRfSceneHelper_SetCurrentScene_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfSceneHelper_GetCurrentSceneName_Proxy( 
    IRfSceneHelper * This,
    /* [retval][out] */ BSTR *pbszCurrSceneName);


void __RPC_STUB IRfSceneHelper_GetCurrentSceneName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfSceneHelper_EnumScenes_Proxy( 
    IRfSceneHelper * This,
    /* [retval][out] */ IRsEnumNodes **ppEnum);


void __RPC_STUB IRfSceneHelper_EnumScenes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfSceneHelper_RenameCurrentScene_Proxy( 
    IRfSceneHelper * This,
    /* [in] */ BSTR bszNewSceneName);


void __RPC_STUB IRfSceneHelper_RenameCurrentScene_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfSceneHelper_ReplaceCurrScene_Proxy( 
    IRfSceneHelper * This,
    /* [in] */ IRnSpace3D *pNewSpace3D);


void __RPC_STUB IRfSceneHelper_ReplaceCurrScene_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfSceneHelper_ClearCurrentScene_Proxy( 
    IRfSceneHelper * This);


void __RPC_STUB IRfSceneHelper_ClearCurrentScene_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfSceneHelper_SaveScene_Proxy( 
    IRfSceneHelper * This,
    /* [in] */ BSTR bstrFileName,
    /* [in] */ BSTR bstrAuthor,
    /* [in] */ BSTR bstrDescr,
    /* [in] */ IRdBitmap *pThumbnail,
    /* [in] */ IRsNode *pScene);


void __RPC_STUB IRfSceneHelper_SaveScene_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfSceneHelper_SaveSceneNode_Proxy( 
    IRfSceneHelper * This,
    /* [in] */ IRsFileHandle *pRsFileHandle,
    /* [in] */ IRsNode *pScene);


void __RPC_STUB IRfSceneHelper_SaveSceneNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfSceneHelper_LoadScene_Proxy( 
    IRfSceneHelper * This,
    /* [in] */ BSTR bstrFileName);


void __RPC_STUB IRfSceneHelper_LoadScene_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfSceneHelper_LoadSceneNode_Proxy( 
    IRfSceneHelper * This,
    /* [in] */ IRsFileHandle *pRsFileHandle,
    /* [in] */ IRsNode **ppScene);


void __RPC_STUB IRfSceneHelper_LoadSceneNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfSceneHelper_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1329 */
/* [local] */ 

struct RtGeometryIdentificationTableInfo
    {
    RtUlong size_x;
    RtUlong size_y;
    RtFloat scale;
    RtVector2f offset;
    } ;
struct RtGeometryIdentificationTable
    {
    struct RtGeometryIdentificationTableInfo info;
    RtUlong data[ 8192 ];
    } ;
struct RtGeometryIdentificationTriangleList
    {
    RtUlong triangle_index;
    RtUlong next;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1329_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1329_v0_0_s_ifspec;

#ifndef __IRdGeometryIdentificationTableStream_INTERFACE_DEFINED__
#define __IRdGeometryIdentificationTableStream_INTERFACE_DEFINED__

/* interface IRdGeometryIdentificationTableStream */
/* [unique][helpstring][dual][uuid][local][object] */ 


EXTERN_C const IID IID_IRdGeometryIdentificationTableStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F0EE8101-6ACD-4c37-882D-DA38FF9C7696")
    IRdGeometryIdentificationTableStream : public IDispatch
    {
    public:
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetupTimestamps( 
            /* [in] */ IUnknown *pMesh) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdGeometryIdentificationTableStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdGeometryIdentificationTableStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdGeometryIdentificationTableStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdGeometryIdentificationTableStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdGeometryIdentificationTableStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdGeometryIdentificationTableStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdGeometryIdentificationTableStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdGeometryIdentificationTableStream * 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);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetupTimestamps )( 
            IRdGeometryIdentificationTableStream * This,
            /* [in] */ IUnknown *pMesh);
        
        END_INTERFACE
    } IRdGeometryIdentificationTableStreamVtbl;

    interface IRdGeometryIdentificationTableStream
    {
        CONST_VTBL struct IRdGeometryIdentificationTableStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdGeometryIdentificationTableStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdGeometryIdentificationTableStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdGeometryIdentificationTableStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdGeometryIdentificationTableStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdGeometryIdentificationTableStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdGeometryIdentificationTableStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdGeometryIdentificationTableStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdGeometryIdentificationTableStream_SetupTimestamps(This,pMesh)	\
    (This)->lpVtbl -> SetupTimestamps(This,pMesh)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [local] */ HRESULT STDMETHODCALLTYPE IRdGeometryIdentificationTableStream_SetupTimestamps_Proxy( 
    IRdGeometryIdentificationTableStream * This,
    /* [in] */ IUnknown *pMesh);


void __RPC_STUB IRdGeometryIdentificationTableStream_SetupTimestamps_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdGeometryIdentificationTableStream_INTERFACE_DEFINED__ */


#ifndef __IRfMeshSet_INTERFACE_DEFINED__
#define __IRfMeshSet_INTERFACE_DEFINED__

/* interface IRfMeshSet */
/* [unique][helpstring][uuid][local][object] */ 


EXTERN_C const IID IID_IRfMeshSet;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("350A868E-5532-4577-A204-C39FB176DF21")
    IRfMeshSet : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Attach( 
            /* [in] */ IRdMesh *pMesh) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Detach( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMesh( 
            /* [retval][out] */ IRdMesh **ppMesh) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetVertexNormals( 
            /* [in] */ IRdVertexNormalsStream **ppStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RecalculateNormals( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ApplyPlanarUVMapping( 
            /* [in] */ IRdMatrixf *pTransf) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ApplyCylindricalUVMapping( 
            /* [in] */ IRdMatrixf *pTransf) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ApplySphericalUVMapping( 
            /* [in] */ IRdMatrixf *pTransf) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateFacesStreams( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFacesUnities( 
            /* [retval][out] */ IRdFaceUnityStream **ppOutStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSuperfacesUnities( 
            /* [retval][out] */ IRdSuperfaceUnityStream **ppOutStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetTrianglesNeighbors( 
            /* [in] */ IRdTriangleNeighboursStream **ppNeighbors) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateTriangleEdgesStream( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateFaceNormals( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateAutofacetFaceNormals( 
            /* [in] */ RtFloat angle) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetVertexTopology( 
            /* [in] */ IRdVertexTopologyInfo **ppInfoStream,
            /* [in] */ IRdVertexTopologyData **ppDataStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RebuildEdgeStream( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE TopologySortTriangles( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMeshRayIntersection( 
            /* [in] */ RtPoint *pPos,
            /* [in] */ RtVector3f *pRay,
            /* [out] */ RtUlong *pdwTriangle,
            /* [out] */ RtPoint *pptBarycentric,
            /* [out] */ RtPoint *pptPosition,
            /* [out] */ RtVector3f *pptNormal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateVertexNormals( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateGeometryLookupStreams( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateGeometryIdentificationTable( 
            /* [in] */ IRdGeometryIdentificationTableStream **ppTable) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ContainsMeshObj( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetEdgeNeighbors( 
            /* [retval][out] */ IRdEdgeNeighborsStream **ppNeighbors) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfMeshSetVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfMeshSet * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfMeshSet * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfMeshSet * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Attach )( 
            IRfMeshSet * This,
            /* [in] */ IRdMesh *pMesh);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Detach )( 
            IRfMeshSet * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMesh )( 
            IRfMeshSet * This,
            /* [retval][out] */ IRdMesh **ppMesh);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetVertexNormals )( 
            IRfMeshSet * This,
            /* [in] */ IRdVertexNormalsStream **ppStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RecalculateNormals )( 
            IRfMeshSet * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ApplyPlanarUVMapping )( 
            IRfMeshSet * This,
            /* [in] */ IRdMatrixf *pTransf);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ApplyCylindricalUVMapping )( 
            IRfMeshSet * This,
            /* [in] */ IRdMatrixf *pTransf);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ApplySphericalUVMapping )( 
            IRfMeshSet * This,
            /* [in] */ IRdMatrixf *pTransf);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateFacesStreams )( 
            IRfMeshSet * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFacesUnities )( 
            IRfMeshSet * This,
            /* [retval][out] */ IRdFaceUnityStream **ppOutStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSuperfacesUnities )( 
            IRfMeshSet * This,
            /* [retval][out] */ IRdSuperfaceUnityStream **ppOutStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTrianglesNeighbors )( 
            IRfMeshSet * This,
            /* [in] */ IRdTriangleNeighboursStream **ppNeighbors);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateTriangleEdgesStream )( 
            IRfMeshSet * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateFaceNormals )( 
            IRfMeshSet * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateAutofacetFaceNormals )( 
            IRfMeshSet * This,
            /* [in] */ RtFloat angle);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetVertexTopology )( 
            IRfMeshSet * This,
            /* [in] */ IRdVertexTopologyInfo **ppInfoStream,
            /* [in] */ IRdVertexTopologyData **ppDataStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RebuildEdgeStream )( 
            IRfMeshSet * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *TopologySortTriangles )( 
            IRfMeshSet * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMeshRayIntersection )( 
            IRfMeshSet * This,
            /* [in] */ RtPoint *pPos,
            /* [in] */ RtVector3f *pRay,
            /* [out] */ RtUlong *pdwTriangle,
            /* [out] */ RtPoint *pptBarycentric,
            /* [out] */ RtPoint *pptPosition,
            /* [out] */ RtVector3f *pptNormal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateVertexNormals )( 
            IRfMeshSet * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateGeometryLookupStreams )( 
            IRfMeshSet * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateGeometryIdentificationTable )( 
            IRfMeshSet * This,
            /* [in] */ IRdGeometryIdentificationTableStream **ppTable);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ContainsMeshObj )( 
            IRfMeshSet * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetEdgeNeighbors )( 
            IRfMeshSet * This,
            /* [retval][out] */ IRdEdgeNeighborsStream **ppNeighbors);
        
        END_INTERFACE
    } IRfMeshSetVtbl;

    interface IRfMeshSet
    {
        CONST_VTBL struct IRfMeshSetVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfMeshSet_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfMeshSet_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfMeshSet_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfMeshSet_Attach(This,pMesh)	\
    (This)->lpVtbl -> Attach(This,pMesh)

#define IRfMeshSet_Detach(This)	\
    (This)->lpVtbl -> Detach(This)

#define IRfMeshSet_GetMesh(This,ppMesh)	\
    (This)->lpVtbl -> GetMesh(This,ppMesh)

#define IRfMeshSet_GetVertexNormals(This,ppStream)	\
    (This)->lpVtbl -> GetVertexNormals(This,ppStream)

#define IRfMeshSet_RecalculateNormals(This)	\
    (This)->lpVtbl -> RecalculateNormals(This)

#define IRfMeshSet_ApplyPlanarUVMapping(This,pTransf)	\
    (This)->lpVtbl -> ApplyPlanarUVMapping(This,pTransf)

#define IRfMeshSet_ApplyCylindricalUVMapping(This,pTransf)	\
    (This)->lpVtbl -> ApplyCylindricalUVMapping(This,pTransf)

#define IRfMeshSet_ApplySphericalUVMapping(This,pTransf)	\
    (This)->lpVtbl -> ApplySphericalUVMapping(This,pTransf)

#define IRfMeshSet_CreateFacesStreams(This)	\
    (This)->lpVtbl -> CreateFacesStreams(This)

#define IRfMeshSet_GetFacesUnities(This,ppOutStream)	\
    (This)->lpVtbl -> GetFacesUnities(This,ppOutStream)

#define IRfMeshSet_GetSuperfacesUnities(This,ppOutStream)	\
    (This)->lpVtbl -> GetSuperfacesUnities(This,ppOutStream)

#define IRfMeshSet_GetTrianglesNeighbors(This,ppNeighbors)	\
    (This)->lpVtbl -> GetTrianglesNeighbors(This,ppNeighbors)

#define IRfMeshSet_CreateTriangleEdgesStream(This)	\
    (This)->lpVtbl -> CreateTriangleEdgesStream(This)

#define IRfMeshSet_CreateFaceNormals(This)	\
    (This)->lpVtbl -> CreateFaceNormals(This)

#define IRfMeshSet_CreateAutofacetFaceNormals(This,angle)	\
    (This)->lpVtbl -> CreateAutofacetFaceNormals(This,angle)

#define IRfMeshSet_GetVertexTopology(This,ppInfoStream,ppDataStream)	\
    (This)->lpVtbl -> GetVertexTopology(This,ppInfoStream,ppDataStream)

#define IRfMeshSet_RebuildEdgeStream(This)	\
    (This)->lpVtbl -> RebuildEdgeStream(This)

#define IRfMeshSet_TopologySortTriangles(This)	\
    (This)->lpVtbl -> TopologySortTriangles(This)

#define IRfMeshSet_GetMeshRayIntersection(This,pPos,pRay,pdwTriangle,pptBarycentric,pptPosition,pptNormal)	\
    (This)->lpVtbl -> GetMeshRayIntersection(This,pPos,pRay,pdwTriangle,pptBarycentric,pptPosition,pptNormal)

#define IRfMeshSet_CreateVertexNormals(This)	\
    (This)->lpVtbl -> CreateVertexNormals(This)

#define IRfMeshSet_CreateGeometryLookupStreams(This)	\
    (This)->lpVtbl -> CreateGeometryLookupStreams(This)

#define IRfMeshSet_CreateGeometryIdentificationTable(This,ppTable)	\
    (This)->lpVtbl -> CreateGeometryIdentificationTable(This,ppTable)

#define IRfMeshSet_ContainsMeshObj(This,pNode)	\
    (This)->lpVtbl -> ContainsMeshObj(This,pNode)

#define IRfMeshSet_GetEdgeNeighbors(This,ppNeighbors)	\
    (This)->lpVtbl -> GetEdgeNeighbors(This,ppNeighbors)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_Attach_Proxy( 
    IRfMeshSet * This,
    /* [in] */ IRdMesh *pMesh);


void __RPC_STUB IRfMeshSet_Attach_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_Detach_Proxy( 
    IRfMeshSet * This);


void __RPC_STUB IRfMeshSet_Detach_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_GetMesh_Proxy( 
    IRfMeshSet * This,
    /* [retval][out] */ IRdMesh **ppMesh);


void __RPC_STUB IRfMeshSet_GetMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_GetVertexNormals_Proxy( 
    IRfMeshSet * This,
    /* [in] */ IRdVertexNormalsStream **ppStream);


void __RPC_STUB IRfMeshSet_GetVertexNormals_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_RecalculateNormals_Proxy( 
    IRfMeshSet * This);


void __RPC_STUB IRfMeshSet_RecalculateNormals_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_ApplyPlanarUVMapping_Proxy( 
    IRfMeshSet * This,
    /* [in] */ IRdMatrixf *pTransf);


void __RPC_STUB IRfMeshSet_ApplyPlanarUVMapping_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_ApplyCylindricalUVMapping_Proxy( 
    IRfMeshSet * This,
    /* [in] */ IRdMatrixf *pTransf);


void __RPC_STUB IRfMeshSet_ApplyCylindricalUVMapping_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_ApplySphericalUVMapping_Proxy( 
    IRfMeshSet * This,
    /* [in] */ IRdMatrixf *pTransf);


void __RPC_STUB IRfMeshSet_ApplySphericalUVMapping_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_CreateFacesStreams_Proxy( 
    IRfMeshSet * This);


void __RPC_STUB IRfMeshSet_CreateFacesStreams_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_GetFacesUnities_Proxy( 
    IRfMeshSet * This,
    /* [retval][out] */ IRdFaceUnityStream **ppOutStream);


void __RPC_STUB IRfMeshSet_GetFacesUnities_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_GetSuperfacesUnities_Proxy( 
    IRfMeshSet * This,
    /* [retval][out] */ IRdSuperfaceUnityStream **ppOutStream);


void __RPC_STUB IRfMeshSet_GetSuperfacesUnities_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_GetTrianglesNeighbors_Proxy( 
    IRfMeshSet * This,
    /* [in] */ IRdTriangleNeighboursStream **ppNeighbors);


void __RPC_STUB IRfMeshSet_GetTrianglesNeighbors_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_CreateTriangleEdgesStream_Proxy( 
    IRfMeshSet * This);


void __RPC_STUB IRfMeshSet_CreateTriangleEdgesStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_CreateFaceNormals_Proxy( 
    IRfMeshSet * This);


void __RPC_STUB IRfMeshSet_CreateFaceNormals_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_CreateAutofacetFaceNormals_Proxy( 
    IRfMeshSet * This,
    /* [in] */ RtFloat angle);


void __RPC_STUB IRfMeshSet_CreateAutofacetFaceNormals_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_GetVertexTopology_Proxy( 
    IRfMeshSet * This,
    /* [in] */ IRdVertexTopologyInfo **ppInfoStream,
    /* [in] */ IRdVertexTopologyData **ppDataStream);


void __RPC_STUB IRfMeshSet_GetVertexTopology_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_RebuildEdgeStream_Proxy( 
    IRfMeshSet * This);


void __RPC_STUB IRfMeshSet_RebuildEdgeStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_TopologySortTriangles_Proxy( 
    IRfMeshSet * This);


void __RPC_STUB IRfMeshSet_TopologySortTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_GetMeshRayIntersection_Proxy( 
    IRfMeshSet * This,
    /* [in] */ RtPoint *pPos,
    /* [in] */ RtVector3f *pRay,
    /* [out] */ RtUlong *pdwTriangle,
    /* [out] */ RtPoint *pptBarycentric,
    /* [out] */ RtPoint *pptPosition,
    /* [out] */ RtVector3f *pptNormal);


void __RPC_STUB IRfMeshSet_GetMeshRayIntersection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_CreateVertexNormals_Proxy( 
    IRfMeshSet * This);


void __RPC_STUB IRfMeshSet_CreateVertexNormals_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_CreateGeometryLookupStreams_Proxy( 
    IRfMeshSet * This);


void __RPC_STUB IRfMeshSet_CreateGeometryLookupStreams_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_CreateGeometryIdentificationTable_Proxy( 
    IRfMeshSet * This,
    /* [in] */ IRdGeometryIdentificationTableStream **ppTable);


void __RPC_STUB IRfMeshSet_CreateGeometryIdentificationTable_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_ContainsMeshObj_Proxy( 
    IRfMeshSet * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRfMeshSet_ContainsMeshObj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshSet_GetEdgeNeighbors_Proxy( 
    IRfMeshSet * This,
    /* [retval][out] */ IRdEdgeNeighborsStream **ppNeighbors);


void __RPC_STUB IRfMeshSet_GetEdgeNeighbors_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfMeshSet_INTERFACE_DEFINED__ */


#ifndef __IRfMeshSetDisp_INTERFACE_DEFINED__
#define __IRfMeshSetDisp_INTERFACE_DEFINED__

/* interface IRfMeshSetDisp */
/* [object][unique][helpstring][uuid][dual] */ 


EXTERN_C const IID IID_IRfMeshSetDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("62DC39A8-5D18-46be-BD23-4DCA8B85D1A2")
    IRfMeshSetDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetVertexNormals( 
            /* [retval][out] */ VARIANT *ppStream) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RecalculateNormals( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetFacesUnities( 
            /* [retval][out] */ VARIANT *ppOutStream) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSuperfacesUnities( 
            /* [retval][out] */ VARIANT *ppOutStream) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTrianglesNeighbors( 
            /* [retval][out] */ VARIANT *ppNeighbors) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateFaceNormals( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateAutofacetFaceNormals( 
            /* [in] */ RtFloat angle) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetVertexTopologyInfo( 
            /* [retval][out] */ VARIANT *ppInfoStream) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetVertexTopologyData( 
            /* [retval][out] */ VARIANT *ppDataStream) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateVertexNormals( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetEdgeNeighbors( 
            /* [retval][out] */ VARIANT *ppNeighbors) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfMeshSetDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfMeshSetDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfMeshSetDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfMeshSetDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRfMeshSetDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRfMeshSetDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRfMeshSetDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRfMeshSetDisp * 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 *GetVertexNormals )( 
            IRfMeshSetDisp * This,
            /* [retval][out] */ VARIANT *ppStream);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RecalculateNormals )( 
            IRfMeshSetDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetFacesUnities )( 
            IRfMeshSetDisp * This,
            /* [retval][out] */ VARIANT *ppOutStream);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSuperfacesUnities )( 
            IRfMeshSetDisp * This,
            /* [retval][out] */ VARIANT *ppOutStream);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTrianglesNeighbors )( 
            IRfMeshSetDisp * This,
            /* [retval][out] */ VARIANT *ppNeighbors);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateFaceNormals )( 
            IRfMeshSetDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateAutofacetFaceNormals )( 
            IRfMeshSetDisp * This,
            /* [in] */ RtFloat angle);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetVertexTopologyInfo )( 
            IRfMeshSetDisp * This,
            /* [retval][out] */ VARIANT *ppInfoStream);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetVertexTopologyData )( 
            IRfMeshSetDisp * This,
            /* [retval][out] */ VARIANT *ppDataStream);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateVertexNormals )( 
            IRfMeshSetDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetEdgeNeighbors )( 
            IRfMeshSetDisp * This,
            /* [retval][out] */ VARIANT *ppNeighbors);
        
        END_INTERFACE
    } IRfMeshSetDispVtbl;

    interface IRfMeshSetDisp
    {
        CONST_VTBL struct IRfMeshSetDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfMeshSetDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfMeshSetDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfMeshSetDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfMeshSetDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRfMeshSetDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRfMeshSetDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRfMeshSetDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRfMeshSetDisp_GetVertexNormals(This,ppStream)	\
    (This)->lpVtbl -> GetVertexNormals(This,ppStream)

#define IRfMeshSetDisp_RecalculateNormals(This)	\
    (This)->lpVtbl -> RecalculateNormals(This)

#define IRfMeshSetDisp_GetFacesUnities(This,ppOutStream)	\
    (This)->lpVtbl -> GetFacesUnities(This,ppOutStream)

#define IRfMeshSetDisp_GetSuperfacesUnities(This,ppOutStream)	\
    (This)->lpVtbl -> GetSuperfacesUnities(This,ppOutStream)

#define IRfMeshSetDisp_GetTrianglesNeighbors(This,ppNeighbors)	\
    (This)->lpVtbl -> GetTrianglesNeighbors(This,ppNeighbors)

#define IRfMeshSetDisp_CreateFaceNormals(This)	\
    (This)->lpVtbl -> CreateFaceNormals(This)

#define IRfMeshSetDisp_CreateAutofacetFaceNormals(This,angle)	\
    (This)->lpVtbl -> CreateAutofacetFaceNormals(This,angle)

#define IRfMeshSetDisp_GetVertexTopologyInfo(This,ppInfoStream)	\
    (This)->lpVtbl -> GetVertexTopologyInfo(This,ppInfoStream)

#define IRfMeshSetDisp_GetVertexTopologyData(This,ppDataStream)	\
    (This)->lpVtbl -> GetVertexTopologyData(This,ppDataStream)

#define IRfMeshSetDisp_CreateVertexNormals(This)	\
    (This)->lpVtbl -> CreateVertexNormals(This)

#define IRfMeshSetDisp_GetEdgeNeighbors(This,ppNeighbors)	\
    (This)->lpVtbl -> GetEdgeNeighbors(This,ppNeighbors)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfMeshSetDisp_GetVertexNormals_Proxy( 
    IRfMeshSetDisp * This,
    /* [retval][out] */ VARIANT *ppStream);


void __RPC_STUB IRfMeshSetDisp_GetVertexNormals_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfMeshSetDisp_RecalculateNormals_Proxy( 
    IRfMeshSetDisp * This);


void __RPC_STUB IRfMeshSetDisp_RecalculateNormals_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfMeshSetDisp_GetFacesUnities_Proxy( 
    IRfMeshSetDisp * This,
    /* [retval][out] */ VARIANT *ppOutStream);


void __RPC_STUB IRfMeshSetDisp_GetFacesUnities_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfMeshSetDisp_GetSuperfacesUnities_Proxy( 
    IRfMeshSetDisp * This,
    /* [retval][out] */ VARIANT *ppOutStream);


void __RPC_STUB IRfMeshSetDisp_GetSuperfacesUnities_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfMeshSetDisp_GetTrianglesNeighbors_Proxy( 
    IRfMeshSetDisp * This,
    /* [retval][out] */ VARIANT *ppNeighbors);


void __RPC_STUB IRfMeshSetDisp_GetTrianglesNeighbors_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfMeshSetDisp_CreateFaceNormals_Proxy( 
    IRfMeshSetDisp * This);


void __RPC_STUB IRfMeshSetDisp_CreateFaceNormals_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfMeshSetDisp_CreateAutofacetFaceNormals_Proxy( 
    IRfMeshSetDisp * This,
    /* [in] */ RtFloat angle);


void __RPC_STUB IRfMeshSetDisp_CreateAutofacetFaceNormals_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfMeshSetDisp_GetVertexTopologyInfo_Proxy( 
    IRfMeshSetDisp * This,
    /* [retval][out] */ VARIANT *ppInfoStream);


void __RPC_STUB IRfMeshSetDisp_GetVertexTopologyInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfMeshSetDisp_GetVertexTopologyData_Proxy( 
    IRfMeshSetDisp * This,
    /* [retval][out] */ VARIANT *ppDataStream);


void __RPC_STUB IRfMeshSetDisp_GetVertexTopologyData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfMeshSetDisp_CreateVertexNormals_Proxy( 
    IRfMeshSetDisp * This);


void __RPC_STUB IRfMeshSetDisp_CreateVertexNormals_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRfMeshSetDisp_GetEdgeNeighbors_Proxy( 
    IRfMeshSetDisp * This,
    /* [retval][out] */ VARIANT *ppNeighbors);


void __RPC_STUB IRfMeshSetDisp_GetEdgeNeighbors_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfMeshSetDisp_INTERFACE_DEFINED__ */


#ifndef __IRdNURBSCurve_INTERFACE_DEFINED__
#define __IRdNURBSCurve_INTERFACE_DEFINED__

/* interface IRdNURBSCurve */
/* [unique][helpstring][uuid][local][object] */ 


EXTERN_C const IID IID_IRdNURBSCurve;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BF46DC20-552F-4dce-9154-4F5D95A1349D")
    IRdNURBSCurve : public IRsObject
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Reset( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetParams( 
            /* [in] */ RtUlong ulDegree,
            /* [in] */ RtUlong ulNumPoints) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockWeights( 
            /* [retval][out] */ RtDouble **ppWeights) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnlockWeights( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockControlPoints( 
            /* [retval][out] */ RtPoint **ppPoints) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnlockControlPoints( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockKnots( 
            /* [retval][out] */ RtDouble **ppKnots) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnlockKnots( void) = 0;
        
        virtual /* [helpstring] */ RtUlong STDMETHODCALLTYPE GetNumPoints( void) = 0;
        
        virtual /* [helpstring] */ RtUlong STDMETHODCALLTYPE GetNumKnots( void) = 0;
        
        virtual /* [helpstring] */ RtUlong STDMETHODCALLTYPE GetDegree( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Reverse( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdNURBSCurveVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdNURBSCurve * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdNURBSCurve * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdNURBSCurve * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRdNURBSCurve * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRdNURBSCurve * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Reset )( 
            IRdNURBSCurve * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetParams )( 
            IRdNURBSCurve * This,
            /* [in] */ RtUlong ulDegree,
            /* [in] */ RtUlong ulNumPoints);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockWeights )( 
            IRdNURBSCurve * This,
            /* [retval][out] */ RtDouble **ppWeights);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnlockWeights )( 
            IRdNURBSCurve * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockControlPoints )( 
            IRdNURBSCurve * This,
            /* [retval][out] */ RtPoint **ppPoints);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnlockControlPoints )( 
            IRdNURBSCurve * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockKnots )( 
            IRdNURBSCurve * This,
            /* [retval][out] */ RtDouble **ppKnots);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnlockKnots )( 
            IRdNURBSCurve * This);
        
        /* [helpstring] */ RtUlong ( STDMETHODCALLTYPE *GetNumPoints )( 
            IRdNURBSCurve * This);
        
        /* [helpstring] */ RtUlong ( STDMETHODCALLTYPE *GetNumKnots )( 
            IRdNURBSCurve * This);
        
        /* [helpstring] */ RtUlong ( STDMETHODCALLTYPE *GetDegree )( 
            IRdNURBSCurve * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Reverse )( 
            IRdNURBSCurve * This);
        
        END_INTERFACE
    } IRdNURBSCurveVtbl;

    interface IRdNURBSCurve
    {
        CONST_VTBL struct IRdNURBSCurveVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdNURBSCurve_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdNURBSCurve_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdNURBSCurve_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdNURBSCurve_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRdNURBSCurve_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#define IRdNURBSCurve_Reset(This)	\
    (This)->lpVtbl -> Reset(This)

#define IRdNURBSCurve_SetParams(This,ulDegree,ulNumPoints)	\
    (This)->lpVtbl -> SetParams(This,ulDegree,ulNumPoints)

#define IRdNURBSCurve_LockWeights(This,ppWeights)	\
    (This)->lpVtbl -> LockWeights(This,ppWeights)

#define IRdNURBSCurve_UnlockWeights(This)	\
    (This)->lpVtbl -> UnlockWeights(This)

#define IRdNURBSCurve_LockControlPoints(This,ppPoints)	\
    (This)->lpVtbl -> LockControlPoints(This,ppPoints)

#define IRdNURBSCurve_UnlockControlPoints(This)	\
    (This)->lpVtbl -> UnlockControlPoints(This)

#define IRdNURBSCurve_LockKnots(This,ppKnots)	\
    (This)->lpVtbl -> LockKnots(This,ppKnots)

#define IRdNURBSCurve_UnlockKnots(This)	\
    (This)->lpVtbl -> UnlockKnots(This)

#define IRdNURBSCurve_GetNumPoints(This)	\
    (This)->lpVtbl -> GetNumPoints(This)

#define IRdNURBSCurve_GetNumKnots(This)	\
    (This)->lpVtbl -> GetNumKnots(This)

#define IRdNURBSCurve_GetDegree(This)	\
    (This)->lpVtbl -> GetDegree(This)

#define IRdNURBSCurve_Reverse(This)	\
    (This)->lpVtbl -> Reverse(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdNURBSCurve_Reset_Proxy( 
    IRdNURBSCurve * This);


void __RPC_STUB IRdNURBSCurve_Reset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdNURBSCurve_SetParams_Proxy( 
    IRdNURBSCurve * This,
    /* [in] */ RtUlong ulDegree,
    /* [in] */ RtUlong ulNumPoints);


void __RPC_STUB IRdNURBSCurve_SetParams_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdNURBSCurve_LockWeights_Proxy( 
    IRdNURBSCurve * This,
    /* [retval][out] */ RtDouble **ppWeights);


void __RPC_STUB IRdNURBSCurve_LockWeights_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdNURBSCurve_UnlockWeights_Proxy( 
    IRdNURBSCurve * This);


void __RPC_STUB IRdNURBSCurve_UnlockWeights_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdNURBSCurve_LockControlPoints_Proxy( 
    IRdNURBSCurve * This,
    /* [retval][out] */ RtPoint **ppPoints);


void __RPC_STUB IRdNURBSCurve_LockControlPoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdNURBSCurve_UnlockControlPoints_Proxy( 
    IRdNURBSCurve * This);


void __RPC_STUB IRdNURBSCurve_UnlockControlPoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdNURBSCurve_LockKnots_Proxy( 
    IRdNURBSCurve * This,
    /* [retval][out] */ RtDouble **ppKnots);


void __RPC_STUB IRdNURBSCurve_LockKnots_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdNURBSCurve_UnlockKnots_Proxy( 
    IRdNURBSCurve * This);


void __RPC_STUB IRdNURBSCurve_UnlockKnots_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ RtUlong STDMETHODCALLTYPE IRdNURBSCurve_GetNumPoints_Proxy( 
    IRdNURBSCurve * This);


void __RPC_STUB IRdNURBSCurve_GetNumPoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ RtUlong STDMETHODCALLTYPE IRdNURBSCurve_GetNumKnots_Proxy( 
    IRdNURBSCurve * This);


void __RPC_STUB IRdNURBSCurve_GetNumKnots_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ RtUlong STDMETHODCALLTYPE IRdNURBSCurve_GetDegree_Proxy( 
    IRdNURBSCurve * This);


void __RPC_STUB IRdNURBSCurve_GetDegree_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdNURBSCurve_Reverse_Proxy( 
    IRdNURBSCurve * This);


void __RPC_STUB IRdNURBSCurve_Reverse_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdNURBSCurve_INTERFACE_DEFINED__ */


#ifndef __IRdNURBSPatch_INTERFACE_DEFINED__
#define __IRdNURBSPatch_INTERFACE_DEFINED__

/* interface IRdNURBSPatch */
/* [unique][helpstring][uuid][local][object] */ 


EXTERN_C const IID IID_IRdNURBSPatch;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("329C4A10-F3F1-4a8a-B7D8-9C75C0BAAEE3")
    IRdNURBSPatch : public IRsObject
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Reset( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetParams( 
            /* [in] */ RtUlong ulUDegree,
            /* [in] */ RtUlong ulVDegree,
            /* [in] */ RtUlong ulNumUPoints,
            /* [in] */ RtUlong ulNumVPoints) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockWeights( 
            /* [retval][out] */ RtDouble **ppWeights) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnlockWeights( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockControlPoints( 
            /* [retval][out] */ RtPoint **ppPoints) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnlockControlPoints( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockUKnots( 
            /* [retval][out] */ RtDouble **ppUKnots) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnlockUKnots( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockVKnots( 
            /* [retval][out] */ RtDouble **ppVKnots) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnlockVKnots( void) = 0;
        
        virtual /* [helpstring] */ RtUlong STDMETHODCALLTYPE GetNumUPoints( void) = 0;
        
        virtual /* [helpstring] */ RtUlong STDMETHODCALLTYPE GetNumVPoints( void) = 0;
        
        virtual /* [helpstring] */ RtUlong STDMETHODCALLTYPE GetNumUKnots( void) = 0;
        
        virtual /* [helpstring] */ RtUlong STDMETHODCALLTYPE GetNumVKnots( void) = 0;
        
        virtual /* [helpstring] */ RtUlong STDMETHODCALLTYPE GetUDegree( void) = 0;
        
        virtual /* [helpstring] */ RtUlong STDMETHODCALLTYPE GetVDegree( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddTrimCurve( 
            /* [in] */ IRdNURBSCurve *pTrimCurve) = 0;
        
        virtual /* [helpstring] */ RtUlong STDMETHODCALLTYPE GetNumTrimCurves( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetTrimCurve( 
            /* [in] */ RtUlong index,
            /* [out] */ IRdNURBSCurve **ppTrimCurve) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveTrimCurve( 
            /* [in] */ RtUlong index) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdNURBSPatchVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdNURBSPatch * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdNURBSPatch * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdNURBSPatch * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRdNURBSPatch * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRdNURBSPatch * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Reset )( 
            IRdNURBSPatch * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetParams )( 
            IRdNURBSPatch * This,
            /* [in] */ RtUlong ulUDegree,
            /* [in] */ RtUlong ulVDegree,
            /* [in] */ RtUlong ulNumUPoints,
            /* [in] */ RtUlong ulNumVPoints);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockWeights )( 
            IRdNURBSPatch * This,
            /* [retval][out] */ RtDouble **ppWeights);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnlockWeights )( 
            IRdNURBSPatch * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockControlPoints )( 
            IRdNURBSPatch * This,
            /* [retval][out] */ RtPoint **ppPoints);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnlockControlPoints )( 
            IRdNURBSPatch * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockUKnots )( 
            IRdNURBSPatch * This,
            /* [retval][out] */ RtDouble **ppUKnots);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnlockUKnots )( 
            IRdNURBSPatch * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockVKnots )( 
            IRdNURBSPatch * This,
            /* [retval][out] */ RtDouble **ppVKnots);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnlockVKnots )( 
            IRdNURBSPatch * This);
        
        /* [helpstring] */ RtUlong ( STDMETHODCALLTYPE *GetNumUPoints )( 
            IRdNURBSPatch * This);
        
        /* [helpstring] */ RtUlong ( STDMETHODCALLTYPE *GetNumVPoints )( 
            IRdNURBSPatch * This);
        
        /* [helpstring] */ RtUlong ( STDMETHODCALLTYPE *GetNumUKnots )( 
            IRdNURBSPatch * This);
        
        /* [helpstring] */ RtUlong ( STDMETHODCALLTYPE *GetNumVKnots )( 
            IRdNURBSPatch * This);
        
        /* [helpstring] */ RtUlong ( STDMETHODCALLTYPE *GetUDegree )( 
            IRdNURBSPatch * This);
        
        /* [helpstring] */ RtUlong ( STDMETHODCALLTYPE *GetVDegree )( 
            IRdNURBSPatch * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddTrimCurve )( 
            IRdNURBSPatch * This,
            /* [in] */ IRdNURBSCurve *pTrimCurve);
        
        /* [helpstring] */ RtUlong ( STDMETHODCALLTYPE *GetNumTrimCurves )( 
            IRdNURBSPatch * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTrimCurve )( 
            IRdNURBSPatch * This,
            /* [in] */ RtUlong index,
            /* [out] */ IRdNURBSCurve **ppTrimCurve);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveTrimCurve )( 
            IRdNURBSPatch * This,
            /* [in] */ RtUlong index);
        
        END_INTERFACE
    } IRdNURBSPatchVtbl;

    interface IRdNURBSPatch
    {
        CONST_VTBL struct IRdNURBSPatchVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdNURBSPatch_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdNURBSPatch_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdNURBSPatch_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdNURBSPatch_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRdNURBSPatch_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#define IRdNURBSPatch_Reset(This)	\
    (This)->lpVtbl -> Reset(This)

#define IRdNURBSPatch_SetParams(This,ulUDegree,ulVDegree,ulNumUPoints,ulNumVPoints)	\
    (This)->lpVtbl -> SetParams(This,ulUDegree,ulVDegree,ulNumUPoints,ulNumVPoints)

#define IRdNURBSPatch_LockWeights(This,ppWeights)	\
    (This)->lpVtbl -> LockWeights(This,ppWeights)

#define IRdNURBSPatch_UnlockWeights(This)	\
    (This)->lpVtbl -> UnlockWeights(This)

#define IRdNURBSPatch_LockControlPoints(This,ppPoints)	\
    (This)->lpVtbl -> LockControlPoints(This,ppPoints)

#define IRdNURBSPatch_UnlockControlPoints(This)	\
    (This)->lpVtbl -> UnlockControlPoints(This)

#define IRdNURBSPatch_LockUKnots(This,ppUKnots)	\
    (This)->lpVtbl -> LockUKnots(This,ppUKnots)

#define IRdNURBSPatch_UnlockUKnots(This)	\
    (This)->lpVtbl -> UnlockUKnots(This)

#define IRdNURBSPatch_LockVKnots(This,ppVKnots)	\
    (This)->lpVtbl -> LockVKnots(This,ppVKnots)

#define IRdNURBSPatch_UnlockVKnots(This)	\
    (This)->lpVtbl -> UnlockVKnots(This)

#define IRdNURBSPatch_GetNumUPoints(This)	\
    (This)->lpVtbl -> GetNumUPoints(This)

#define IRdNURBSPatch_GetNumVPoints(This)	\
    (This)->lpVtbl -> GetNumVPoints(This)

#define IRdNURBSPatch_GetNumUKnots(This)	\
    (This)->lpVtbl -> GetNumUKnots(This)

#define IRdNURBSPatch_GetNumVKnots(This)	\
    (This)->lpVtbl -> GetNumVKnots(This)

#define IRdNURBSPatch_GetUDegree(This)	\
    (This)->lpVtbl -> GetUDegree(This)

#define IRdNURBSPatch_GetVDegree(This)	\
    (This)->lpVtbl -> GetVDegree(This)

#define IRdNURBSPatch_AddTrimCurve(This,pTrimCurve)	\
    (This)->lpVtbl -> AddTrimCurve(This,pTrimCurve)

#define IRdNURBSPatch_GetNumTrimCurves(This)	\
    (This)->lpVtbl -> GetNumTrimCurves(This)

#define IRdNURBSPatch_GetTrimCurve(This,index,ppTrimCurve)	\
    (This)->lpVtbl -> GetTrimCurve(This,index,ppTrimCurve)

#define IRdNURBSPatch_RemoveTrimCurve(This,index)	\
    (This)->lpVtbl -> RemoveTrimCurve(This,index)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdNURBSPatch_Reset_Proxy( 
    IRdNURBSPatch * This);


void __RPC_STUB IRdNURBSPatch_Reset_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdNURBSPatch_SetParams_Proxy( 
    IRdNURBSPatch * This,
    /* [in] */ RtUlong ulUDegree,
    /* [in] */ RtUlong ulVDegree,
    /* [in] */ RtUlong ulNumUPoints,
    /* [in] */ RtUlong ulNumVPoints);


void __RPC_STUB IRdNURBSPatch_SetParams_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdNURBSPatch_LockWeights_Proxy( 
    IRdNURBSPatch * This,
    /* [retval][out] */ RtDouble **ppWeights);


void __RPC_STUB IRdNURBSPatch_LockWeights_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdNURBSPatch_UnlockWeights_Proxy( 
    IRdNURBSPatch * This);


void __RPC_STUB IRdNURBSPatch_UnlockWeights_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdNURBSPatch_LockControlPoints_Proxy( 
    IRdNURBSPatch * This,
    /* [retval][out] */ RtPoint **ppPoints);


void __RPC_STUB IRdNURBSPatch_LockControlPoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdNURBSPatch_UnlockControlPoints_Proxy( 
    IRdNURBSPatch * This);


void __RPC_STUB IRdNURBSPatch_UnlockControlPoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdNURBSPatch_LockUKnots_Proxy( 
    IRdNURBSPatch * This,
    /* [retval][out] */ RtDouble **ppUKnots);


void __RPC_STUB IRdNURBSPatch_LockUKnots_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdNURBSPatch_UnlockUKnots_Proxy( 
    IRdNURBSPatch * This);


void __RPC_STUB IRdNURBSPatch_UnlockUKnots_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdNURBSPatch_LockVKnots_Proxy( 
    IRdNURBSPatch * This,
    /* [retval][out] */ RtDouble **ppVKnots);


void __RPC_STUB IRdNURBSPatch_LockVKnots_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdNURBSPatch_UnlockVKnots_Proxy( 
    IRdNURBSPatch * This);


void __RPC_STUB IRdNURBSPatch_UnlockVKnots_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ RtUlong STDMETHODCALLTYPE IRdNURBSPatch_GetNumUPoints_Proxy( 
    IRdNURBSPatch * This);


void __RPC_STUB IRdNURBSPatch_GetNumUPoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ RtUlong STDMETHODCALLTYPE IRdNURBSPatch_GetNumVPoints_Proxy( 
    IRdNURBSPatch * This);


void __RPC_STUB IRdNURBSPatch_GetNumVPoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ RtUlong STDMETHODCALLTYPE IRdNURBSPatch_GetNumUKnots_Proxy( 
    IRdNURBSPatch * This);


void __RPC_STUB IRdNURBSPatch_GetNumUKnots_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ RtUlong STDMETHODCALLTYPE IRdNURBSPatch_GetNumVKnots_Proxy( 
    IRdNURBSPatch * This);


void __RPC_STUB IRdNURBSPatch_GetNumVKnots_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ RtUlong STDMETHODCALLTYPE IRdNURBSPatch_GetUDegree_Proxy( 
    IRdNURBSPatch * This);


void __RPC_STUB IRdNURBSPatch_GetUDegree_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ RtUlong STDMETHODCALLTYPE IRdNURBSPatch_GetVDegree_Proxy( 
    IRdNURBSPatch * This);


void __RPC_STUB IRdNURBSPatch_GetVDegree_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdNURBSPatch_AddTrimCurve_Proxy( 
    IRdNURBSPatch * This,
    /* [in] */ IRdNURBSCurve *pTrimCurve);


void __RPC_STUB IRdNURBSPatch_AddTrimCurve_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ RtUlong STDMETHODCALLTYPE IRdNURBSPatch_GetNumTrimCurves_Proxy( 
    IRdNURBSPatch * This);


void __RPC_STUB IRdNURBSPatch_GetNumTrimCurves_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdNURBSPatch_GetTrimCurve_Proxy( 
    IRdNURBSPatch * This,
    /* [in] */ RtUlong index,
    /* [out] */ IRdNURBSCurve **ppTrimCurve);


void __RPC_STUB IRdNURBSPatch_GetTrimCurve_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdNURBSPatch_RemoveTrimCurve_Proxy( 
    IRdNURBSPatch * This,
    /* [in] */ RtUlong index);


void __RPC_STUB IRdNURBSPatch_RemoveTrimCurve_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdNURBSPatch_INTERFACE_DEFINED__ */


#ifndef __IRfNURBSSet_INTERFACE_DEFINED__
#define __IRfNURBSSet_INTERFACE_DEFINED__

/* interface IRfNURBSSet */
/* [unique][helpstring][uuid][local][object] */ 


EXTERN_C const IID IID_IRfNURBSSet;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D0655AFD-C2C8-495f-95A1-FF325BD1770A")
    IRfNURBSSet : public IUnknown
    {
    public:
        virtual /* [helpstring] */ RtUlong STDMETHODCALLTYPE FindSpan( 
            /* [in] */ RtUlong ulNumPoints,
            /* [in] */ RtUlong ulDegree,
            /* [in] */ RtDouble u,
            /* [in] */ RtDouble *pKnots) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateNURBSSphere( 
            /* [in] */ RtPoint center,
            /* [in] */ RtDouble radius,
            /* [retval][out] */ IRdNURBSPatch **ppPatch) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateNURBSTorus( 
            /* [in] */ RtPoint center,
            /* [in] */ RtDouble radius1,
            /* [in] */ RtDouble radius2,
            /* [retval][out] */ IRdNURBSPatch **ppPatch) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateNURBSCone( 
            /* [in] */ RtPoint center,
            /* [in] */ RtDouble radius1,
            /* [in] */ RtDouble radius2,
            /* [in] */ RtDouble height,
            /* [retval][out] */ IRdNURBSPatch **ppPatch) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateNURBSBox( 
            /* [in] */ RtPoint center,
            /* [in] */ RtFloat sizex,
            /* [in] */ RtFloat sizey,
            /* [in] */ RtFloat sizez,
            /* [retval][out] */ IRdNURBSPatch **ppPatch) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateNURBSCircle( 
            /* [in] */ RtPoint center,
            /* [in] */ RtPoint startPoint,
            /* [in] */ RtPoint upVector,
            /* [retval][out] */ IRdNURBSCurve **ppCurve) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateNURBSHalfCircle( 
            /* [in] */ RtPoint center,
            /* [in] */ RtPoint startPoint,
            /* [in] */ RtPoint upVector,
            /* [retval][out] */ IRdNURBSCurve **ppCurve) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateNURBSPolyLine( 
            /* [in] */ RtPoint *points,
            /* [in] */ RtUlong ulNumPoints,
            /* [retval][out] */ IRdNURBSCurve **ppCurve) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE NURBSCurveApprox( 
            /* [in] */ RtUlong ulPrec,
            /* [in] */ IRdNURBSCurve *pCurve,
            /* [retval][out] */ RtPoint **ppApproxPoints) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE NURBSPatchApprox( 
            /* [in] */ RtUlong ulUPrec,
            /* [in] */ RtUlong ulVPrec,
            /* [in] */ IRdNURBSPatch *pPatch,
            /* [out] */ RtPoint *pApproxPoints,
            /* [in] */ RtBool bComputeNorms,
            /* [out] */ RtPoint *pNormals) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE NURBSPatchPoint( 
            /* [in] */ RtFloat u,
            /* [in] */ RtFloat v,
            /* [in] */ IRdNURBSPatch *pPatch,
            /* [out] */ RtPoint *pPoint) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ConvertCurveToPCRB( 
            /* [out][in] */ IRdNURBSCurve *pCurve) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE IncDegPCRBCurve( 
            /* [in] */ RtUlong ulDifDegree,
            /* [out][in] */ IRdNURBSCurve *pCurve) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ConvertPatchToPCRB( 
            /* [in] */ RtUlong ulDir,
            /* [in] */ RtUlong ulDifDegree,
            /* [out][in] */ IRdNURBSPatch *pPatch) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetChordLengthPatch( 
            /* [out][in] */ IRdNURBSPatch *pPatch) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE InsertKnotSurface( 
            /* [in] */ RtUlong ulDir,
            /* [in] */ RtDouble u,
            /* [in] */ RtUlong ulMult,
            /* [out][in] */ IRdNURBSPatch *pPatch) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfNURBSSetVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfNURBSSet * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfNURBSSet * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfNURBSSet * This);
        
        /* [helpstring] */ RtUlong ( STDMETHODCALLTYPE *FindSpan )( 
            IRfNURBSSet * This,
            /* [in] */ RtUlong ulNumPoints,
            /* [in] */ RtUlong ulDegree,
            /* [in] */ RtDouble u,
            /* [in] */ RtDouble *pKnots);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateNURBSSphere )( 
            IRfNURBSSet * This,
            /* [in] */ RtPoint center,
            /* [in] */ RtDouble radius,
            /* [retval][out] */ IRdNURBSPatch **ppPatch);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateNURBSTorus )( 
            IRfNURBSSet * This,
            /* [in] */ RtPoint center,
            /* [in] */ RtDouble radius1,
            /* [in] */ RtDouble radius2,
            /* [retval][out] */ IRdNURBSPatch **ppPatch);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateNURBSCone )( 
            IRfNURBSSet * This,
            /* [in] */ RtPoint center,
            /* [in] */ RtDouble radius1,
            /* [in] */ RtDouble radius2,
            /* [in] */ RtDouble height,
            /* [retval][out] */ IRdNURBSPatch **ppPatch);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateNURBSBox )( 
            IRfNURBSSet * This,
            /* [in] */ RtPoint center,
            /* [in] */ RtFloat sizex,
            /* [in] */ RtFloat sizey,
            /* [in] */ RtFloat sizez,
            /* [retval][out] */ IRdNURBSPatch **ppPatch);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateNURBSCircle )( 
            IRfNURBSSet * This,
            /* [in] */ RtPoint center,
            /* [in] */ RtPoint startPoint,
            /* [in] */ RtPoint upVector,
            /* [retval][out] */ IRdNURBSCurve **ppCurve);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateNURBSHalfCircle )( 
            IRfNURBSSet * This,
            /* [in] */ RtPoint center,
            /* [in] */ RtPoint startPoint,
            /* [in] */ RtPoint upVector,
            /* [retval][out] */ IRdNURBSCurve **ppCurve);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateNURBSPolyLine )( 
            IRfNURBSSet * This,
            /* [in] */ RtPoint *points,
            /* [in] */ RtUlong ulNumPoints,
            /* [retval][out] */ IRdNURBSCurve **ppCurve);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *NURBSCurveApprox )( 
            IRfNURBSSet * This,
            /* [in] */ RtUlong ulPrec,
            /* [in] */ IRdNURBSCurve *pCurve,
            /* [retval][out] */ RtPoint **ppApproxPoints);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *NURBSPatchApprox )( 
            IRfNURBSSet * This,
            /* [in] */ RtUlong ulUPrec,
            /* [in] */ RtUlong ulVPrec,
            /* [in] */ IRdNURBSPatch *pPatch,
            /* [out] */ RtPoint *pApproxPoints,
            /* [in] */ RtBool bComputeNorms,
            /* [out] */ RtPoint *pNormals);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *NURBSPatchPoint )( 
            IRfNURBSSet * This,
            /* [in] */ RtFloat u,
            /* [in] */ RtFloat v,
            /* [in] */ IRdNURBSPatch *pPatch,
            /* [out] */ RtPoint *pPoint);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ConvertCurveToPCRB )( 
            IRfNURBSSet * This,
            /* [out][in] */ IRdNURBSCurve *pCurve);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *IncDegPCRBCurve )( 
            IRfNURBSSet * This,
            /* [in] */ RtUlong ulDifDegree,
            /* [out][in] */ IRdNURBSCurve *pCurve);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ConvertPatchToPCRB )( 
            IRfNURBSSet * This,
            /* [in] */ RtUlong ulDir,
            /* [in] */ RtUlong ulDifDegree,
            /* [out][in] */ IRdNURBSPatch *pPatch);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetChordLengthPatch )( 
            IRfNURBSSet * This,
            /* [out][in] */ IRdNURBSPatch *pPatch);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *InsertKnotSurface )( 
            IRfNURBSSet * This,
            /* [in] */ RtUlong ulDir,
            /* [in] */ RtDouble u,
            /* [in] */ RtUlong ulMult,
            /* [out][in] */ IRdNURBSPatch *pPatch);
        
        END_INTERFACE
    } IRfNURBSSetVtbl;

    interface IRfNURBSSet
    {
        CONST_VTBL struct IRfNURBSSetVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfNURBSSet_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfNURBSSet_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfNURBSSet_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfNURBSSet_FindSpan(This,ulNumPoints,ulDegree,u,pKnots)	\
    (This)->lpVtbl -> FindSpan(This,ulNumPoints,ulDegree,u,pKnots)

#define IRfNURBSSet_CreateNURBSSphere(This,center,radius,ppPatch)	\
    (This)->lpVtbl -> CreateNURBSSphere(This,center,radius,ppPatch)

#define IRfNURBSSet_CreateNURBSTorus(This,center,radius1,radius2,ppPatch)	\
    (This)->lpVtbl -> CreateNURBSTorus(This,center,radius1,radius2,ppPatch)

#define IRfNURBSSet_CreateNURBSCone(This,center,radius1,radius2,height,ppPatch)	\
    (This)->lpVtbl -> CreateNURBSCone(This,center,radius1,radius2,height,ppPatch)

#define IRfNURBSSet_CreateNURBSBox(This,center,sizex,sizey,sizez,ppPatch)	\
    (This)->lpVtbl -> CreateNURBSBox(This,center,sizex,sizey,sizez,ppPatch)

#define IRfNURBSSet_CreateNURBSCircle(This,center,startPoint,upVector,ppCurve)	\
    (This)->lpVtbl -> CreateNURBSCircle(This,center,startPoint,upVector,ppCurve)

#define IRfNURBSSet_CreateNURBSHalfCircle(This,center,startPoint,upVector,ppCurve)	\
    (This)->lpVtbl -> CreateNURBSHalfCircle(This,center,startPoint,upVector,ppCurve)

#define IRfNURBSSet_CreateNURBSPolyLine(This,points,ulNumPoints,ppCurve)	\
    (This)->lpVtbl -> CreateNURBSPolyLine(This,points,ulNumPoints,ppCurve)

#define IRfNURBSSet_NURBSCurveApprox(This,ulPrec,pCurve,ppApproxPoints)	\
    (This)->lpVtbl -> NURBSCurveApprox(This,ulPrec,pCurve,ppApproxPoints)

#define IRfNURBSSet_NURBSPatchApprox(This,ulUPrec,ulVPrec,pPatch,pApproxPoints,bComputeNorms,pNormals)	\
    (This)->lpVtbl -> NURBSPatchApprox(This,ulUPrec,ulVPrec,pPatch,pApproxPoints,bComputeNorms,pNormals)

#define IRfNURBSSet_NURBSPatchPoint(This,u,v,pPatch,pPoint)	\
    (This)->lpVtbl -> NURBSPatchPoint(This,u,v,pPatch,pPoint)

#define IRfNURBSSet_ConvertCurveToPCRB(This,pCurve)	\
    (This)->lpVtbl -> ConvertCurveToPCRB(This,pCurve)

#define IRfNURBSSet_IncDegPCRBCurve(This,ulDifDegree,pCurve)	\
    (This)->lpVtbl -> IncDegPCRBCurve(This,ulDifDegree,pCurve)

#define IRfNURBSSet_ConvertPatchToPCRB(This,ulDir,ulDifDegree,pPatch)	\
    (This)->lpVtbl -> ConvertPatchToPCRB(This,ulDir,ulDifDegree,pPatch)

#define IRfNURBSSet_SetChordLengthPatch(This,pPatch)	\
    (This)->lpVtbl -> SetChordLengthPatch(This,pPatch)

#define IRfNURBSSet_InsertKnotSurface(This,ulDir,u,ulMult,pPatch)	\
    (This)->lpVtbl -> InsertKnotSurface(This,ulDir,u,ulMult,pPatch)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ RtUlong STDMETHODCALLTYPE IRfNURBSSet_FindSpan_Proxy( 
    IRfNURBSSet * This,
    /* [in] */ RtUlong ulNumPoints,
    /* [in] */ RtUlong ulDegree,
    /* [in] */ RtDouble u,
    /* [in] */ RtDouble *pKnots);


void __RPC_STUB IRfNURBSSet_FindSpan_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfNURBSSet_CreateNURBSSphere_Proxy( 
    IRfNURBSSet * This,
    /* [in] */ RtPoint center,
    /* [in] */ RtDouble radius,
    /* [retval][out] */ IRdNURBSPatch **ppPatch);


void __RPC_STUB IRfNURBSSet_CreateNURBSSphere_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfNURBSSet_CreateNURBSTorus_Proxy( 
    IRfNURBSSet * This,
    /* [in] */ RtPoint center,
    /* [in] */ RtDouble radius1,
    /* [in] */ RtDouble radius2,
    /* [retval][out] */ IRdNURBSPatch **ppPatch);


void __RPC_STUB IRfNURBSSet_CreateNURBSTorus_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfNURBSSet_CreateNURBSCone_Proxy( 
    IRfNURBSSet * This,
    /* [in] */ RtPoint center,
    /* [in] */ RtDouble radius1,
    /* [in] */ RtDouble radius2,
    /* [in] */ RtDouble height,
    /* [retval][out] */ IRdNURBSPatch **ppPatch);


void __RPC_STUB IRfNURBSSet_CreateNURBSCone_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfNURBSSet_CreateNURBSBox_Proxy( 
    IRfNURBSSet * This,
    /* [in] */ RtPoint center,
    /* [in] */ RtFloat sizex,
    /* [in] */ RtFloat sizey,
    /* [in] */ RtFloat sizez,
    /* [retval][out] */ IRdNURBSPatch **ppPatch);


void __RPC_STUB IRfNURBSSet_CreateNURBSBox_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfNURBSSet_CreateNURBSCircle_Proxy( 
    IRfNURBSSet * This,
    /* [in] */ RtPoint center,
    /* [in] */ RtPoint startPoint,
    /* [in] */ RtPoint upVector,
    /* [retval][out] */ IRdNURBSCurve **ppCurve);


void __RPC_STUB IRfNURBSSet_CreateNURBSCircle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfNURBSSet_CreateNURBSHalfCircle_Proxy( 
    IRfNURBSSet * This,
    /* [in] */ RtPoint center,
    /* [in] */ RtPoint startPoint,
    /* [in] */ RtPoint upVector,
    /* [retval][out] */ IRdNURBSCurve **ppCurve);


void __RPC_STUB IRfNURBSSet_CreateNURBSHalfCircle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfNURBSSet_CreateNURBSPolyLine_Proxy( 
    IRfNURBSSet * This,
    /* [in] */ RtPoint *points,
    /* [in] */ RtUlong ulNumPoints,
    /* [retval][out] */ IRdNURBSCurve **ppCurve);


void __RPC_STUB IRfNURBSSet_CreateNURBSPolyLine_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfNURBSSet_NURBSCurveApprox_Proxy( 
    IRfNURBSSet * This,
    /* [in] */ RtUlong ulPrec,
    /* [in] */ IRdNURBSCurve *pCurve,
    /* [retval][out] */ RtPoint **ppApproxPoints);


void __RPC_STUB IRfNURBSSet_NURBSCurveApprox_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfNURBSSet_NURBSPatchApprox_Proxy( 
    IRfNURBSSet * This,
    /* [in] */ RtUlong ulUPrec,
    /* [in] */ RtUlong ulVPrec,
    /* [in] */ IRdNURBSPatch *pPatch,
    /* [out] */ RtPoint *pApproxPoints,
    /* [in] */ RtBool bComputeNorms,
    /* [out] */ RtPoint *pNormals);


void __RPC_STUB IRfNURBSSet_NURBSPatchApprox_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfNURBSSet_NURBSPatchPoint_Proxy( 
    IRfNURBSSet * This,
    /* [in] */ RtFloat u,
    /* [in] */ RtFloat v,
    /* [in] */ IRdNURBSPatch *pPatch,
    /* [out] */ RtPoint *pPoint);


void __RPC_STUB IRfNURBSSet_NURBSPatchPoint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfNURBSSet_ConvertCurveToPCRB_Proxy( 
    IRfNURBSSet * This,
    /* [out][in] */ IRdNURBSCurve *pCurve);


void __RPC_STUB IRfNURBSSet_ConvertCurveToPCRB_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfNURBSSet_IncDegPCRBCurve_Proxy( 
    IRfNURBSSet * This,
    /* [in] */ RtUlong ulDifDegree,
    /* [out][in] */ IRdNURBSCurve *pCurve);


void __RPC_STUB IRfNURBSSet_IncDegPCRBCurve_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfNURBSSet_ConvertPatchToPCRB_Proxy( 
    IRfNURBSSet * This,
    /* [in] */ RtUlong ulDir,
    /* [in] */ RtUlong ulDifDegree,
    /* [out][in] */ IRdNURBSPatch *pPatch);


void __RPC_STUB IRfNURBSSet_ConvertPatchToPCRB_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfNURBSSet_SetChordLengthPatch_Proxy( 
    IRfNURBSSet * This,
    /* [out][in] */ IRdNURBSPatch *pPatch);


void __RPC_STUB IRfNURBSSet_SetChordLengthPatch_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfNURBSSet_InsertKnotSurface_Proxy( 
    IRfNURBSSet * This,
    /* [in] */ RtUlong ulDir,
    /* [in] */ RtDouble u,
    /* [in] */ RtUlong ulMult,
    /* [out][in] */ IRdNURBSPatch *pPatch);


void __RPC_STUB IRfNURBSSet_InsertKnotSurface_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfNURBSSet_INTERFACE_DEFINED__ */


#ifndef __IRnMaterialListManager_INTERFACE_DEFINED__
#define __IRnMaterialListManager_INTERFACE_DEFINED__

/* interface IRnMaterialListManager */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnMaterialListManager;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("C8360A29-C47F-47cc-A9DE-F917FEA0B525")
    IRnMaterialListManager : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialsCount( 
            /* [out] */ RtDWORD *pdwCount) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMaterialsCount( 
            /* [in] */ RtDWORD dwMatNum) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialConnectorName( 
            /* [in] */ RtDWORD dwIndex,
            /* [out] */ BSTR *bsConName) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialConnector( 
            /* [in] */ RtDWORD dwIndex,
            /* [out] */ IRsConnector **ppCon) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnMaterialListManagerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnMaterialListManager * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnMaterialListManager * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnMaterialListManager * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialsCount )( 
            IRnMaterialListManager * This,
            /* [out] */ RtDWORD *pdwCount);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMaterialsCount )( 
            IRnMaterialListManager * This,
            /* [in] */ RtDWORD dwMatNum);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialConnectorName )( 
            IRnMaterialListManager * This,
            /* [in] */ RtDWORD dwIndex,
            /* [out] */ BSTR *bsConName);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialConnector )( 
            IRnMaterialListManager * This,
            /* [in] */ RtDWORD dwIndex,
            /* [out] */ IRsConnector **ppCon);
        
        END_INTERFACE
    } IRnMaterialListManagerVtbl;

    interface IRnMaterialListManager
    {
        CONST_VTBL struct IRnMaterialListManagerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnMaterialListManager_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnMaterialListManager_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnMaterialListManager_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnMaterialListManager_GetMaterialsCount(This,pdwCount)	\
    (This)->lpVtbl -> GetMaterialsCount(This,pdwCount)

#define IRnMaterialListManager_SetMaterialsCount(This,dwMatNum)	\
    (This)->lpVtbl -> SetMaterialsCount(This,dwMatNum)

#define IRnMaterialListManager_GetMaterialConnectorName(This,dwIndex,bsConName)	\
    (This)->lpVtbl -> GetMaterialConnectorName(This,dwIndex,bsConName)

#define IRnMaterialListManager_GetMaterialConnector(This,dwIndex,ppCon)	\
    (This)->lpVtbl -> GetMaterialConnector(This,dwIndex,ppCon)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnMaterialListManager_GetMaterialsCount_Proxy( 
    IRnMaterialListManager * This,
    /* [out] */ RtDWORD *pdwCount);


void __RPC_STUB IRnMaterialListManager_GetMaterialsCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnMaterialListManager_SetMaterialsCount_Proxy( 
    IRnMaterialListManager * This,
    /* [in] */ RtDWORD dwMatNum);


void __RPC_STUB IRnMaterialListManager_SetMaterialsCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnMaterialListManager_GetMaterialConnectorName_Proxy( 
    IRnMaterialListManager * This,
    /* [in] */ RtDWORD dwIndex,
    /* [out] */ BSTR *bsConName);


void __RPC_STUB IRnMaterialListManager_GetMaterialConnectorName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnMaterialListManager_GetMaterialConnector_Proxy( 
    IRnMaterialListManager * This,
    /* [in] */ RtDWORD dwIndex,
    /* [out] */ IRsConnector **ppCon);


void __RPC_STUB IRnMaterialListManager_GetMaterialConnector_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRnMaterialListManager_INTERFACE_DEFINED__ */


#ifndef __IRsMaterialFlavorManager_INTERFACE_DEFINED__
#define __IRsMaterialFlavorManager_INTERFACE_DEFINED__

/* interface IRsMaterialFlavorManager */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsMaterialFlavorManager;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("402B675D-E1D4-4861-915E-A4F1E949E315")
    IRsMaterialFlavorManager : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMaterialFlavorsCount( 
            /* [in] */ RtDWORD dwMatNum) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialFlavorsCount( 
            /* [out] */ RtDWORD *pdwCount) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialFlavorConnector( 
            /* [in] */ RtDWORD dwIndex,
            /* [out] */ IRsConnector **ppCon) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsMaterialFlavorManagerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsMaterialFlavorManager * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsMaterialFlavorManager * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsMaterialFlavorManager * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMaterialFlavorsCount )( 
            IRsMaterialFlavorManager * This,
            /* [in] */ RtDWORD dwMatNum);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialFlavorsCount )( 
            IRsMaterialFlavorManager * This,
            /* [out] */ RtDWORD *pdwCount);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialFlavorConnector )( 
            IRsMaterialFlavorManager * This,
            /* [in] */ RtDWORD dwIndex,
            /* [out] */ IRsConnector **ppCon);
        
        END_INTERFACE
    } IRsMaterialFlavorManagerVtbl;

    interface IRsMaterialFlavorManager
    {
        CONST_VTBL struct IRsMaterialFlavorManagerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsMaterialFlavorManager_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsMaterialFlavorManager_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsMaterialFlavorManager_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsMaterialFlavorManager_SetMaterialFlavorsCount(This,dwMatNum)	\
    (This)->lpVtbl -> SetMaterialFlavorsCount(This,dwMatNum)

#define IRsMaterialFlavorManager_GetMaterialFlavorsCount(This,pdwCount)	\
    (This)->lpVtbl -> GetMaterialFlavorsCount(This,pdwCount)

#define IRsMaterialFlavorManager_GetMaterialFlavorConnector(This,dwIndex,ppCon)	\
    (This)->lpVtbl -> GetMaterialFlavorConnector(This,dwIndex,ppCon)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsMaterialFlavorManager_SetMaterialFlavorsCount_Proxy( 
    IRsMaterialFlavorManager * This,
    /* [in] */ RtDWORD dwMatNum);


void __RPC_STUB IRsMaterialFlavorManager_SetMaterialFlavorsCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsMaterialFlavorManager_GetMaterialFlavorsCount_Proxy( 
    IRsMaterialFlavorManager * This,
    /* [out] */ RtDWORD *pdwCount);


void __RPC_STUB IRsMaterialFlavorManager_GetMaterialFlavorsCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsMaterialFlavorManager_GetMaterialFlavorConnector_Proxy( 
    IRsMaterialFlavorManager * This,
    /* [in] */ RtDWORD dwIndex,
    /* [out] */ IRsConnector **ppCon);


void __RPC_STUB IRsMaterialFlavorManager_GetMaterialFlavorConnector_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsMaterialFlavorManager_INTERFACE_DEFINED__ */


#ifndef __IRnMaterialFlavorManager_INTERFACE_DEFINED__
#define __IRnMaterialFlavorManager_INTERFACE_DEFINED__

/* interface IRnMaterialFlavorManager */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnMaterialFlavorManager;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("68F73D62-30AB-431e-87E5-9D52908ED566")
    IRnMaterialFlavorManager : public IRsMaterialFlavorManager
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnMaterialFlavorManagerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnMaterialFlavorManager * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnMaterialFlavorManager * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnMaterialFlavorManager * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMaterialFlavorsCount )( 
            IRnMaterialFlavorManager * This,
            /* [in] */ RtDWORD dwMatNum);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialFlavorsCount )( 
            IRnMaterialFlavorManager * This,
            /* [out] */ RtDWORD *pdwCount);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialFlavorConnector )( 
            IRnMaterialFlavorManager * This,
            /* [in] */ RtDWORD dwIndex,
            /* [out] */ IRsConnector **ppCon);
        
        END_INTERFACE
    } IRnMaterialFlavorManagerVtbl;

    interface IRnMaterialFlavorManager
    {
        CONST_VTBL struct IRnMaterialFlavorManagerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnMaterialFlavorManager_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnMaterialFlavorManager_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnMaterialFlavorManager_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnMaterialFlavorManager_SetMaterialFlavorsCount(This,dwMatNum)	\
    (This)->lpVtbl -> SetMaterialFlavorsCount(This,dwMatNum)

#define IRnMaterialFlavorManager_GetMaterialFlavorsCount(This,pdwCount)	\
    (This)->lpVtbl -> GetMaterialFlavorsCount(This,pdwCount)

#define IRnMaterialFlavorManager_GetMaterialFlavorConnector(This,dwIndex,ppCon)	\
    (This)->lpVtbl -> GetMaterialFlavorConnector(This,dwIndex,ppCon)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnMaterialFlavorManager_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1338 */
/* [local] */ 

struct RtMaterialIndexTranslation
    {
    RtDWORD dwOriginalIndex;
    RtDWORD dwNewIndex;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1338_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1338_v0_0_s_ifspec;

#ifndef __IRfMaterialListSet_INTERFACE_DEFINED__
#define __IRfMaterialListSet_INTERFACE_DEFINED__

/* interface IRfMaterialListSet */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRfMaterialListSet;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("54529D3C-D32F-4b30-A945-5FDDCA4C6A6E")
    IRfMaterialListSet : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AssignMatListMngNode( 
            /* [in] */ IRnMaterialListManager *pMatListMng) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Attach( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateMaterialListManager( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetAssignedMatListMng( 
            /* [out] */ IRsNode **ppNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFreeMaterialIndex( 
            /* [out] */ RtDWORD *pdwIndex) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddMaterialChunk( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtMatClsId activeMatClsId,
            /* [out] */ IRsNode **ppNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialsCount( 
            /* [retval][out] */ RtDWORD *pdwCount) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialIndices( 
            /* [out] */ RtDWORD *pIndices) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNextMaterialIndex( 
            /* [out][in] */ RtLong *pdwIndex) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterial( 
            /* [in] */ RtDWORD dwMatInd,
            /* [in] */ RtMatClsId MatClsId,
            /* [out] */ IRsObject **ppMaterial) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMaterial( 
            /* [in] */ RtDWORD dwMatInd,
            /* [in] */ IRsNode *pMaterial) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMaterialFromGeneric( 
            /* [in] */ RtDWORD dwMatInd,
            /* [in] */ IRdMaterialGeneric *pMaterial) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteMaterials( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialFlavorManager( 
            /* [in] */ RtDWORD dwMatInd,
            /* [out] */ IRsNode **ppNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialFlavorManagerByOrder( 
            /* [in] */ RtDWORD dwMatOrder,
            /* [out] */ IRsNode **ppNode,
            /* [out] */ RtDWORD *pdwMatIndex) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FindMaterialFlavorNode( 
            /* [in] */ RtDWORD dwMatInd,
            /* [in] */ RtMatClsId MatClsId,
            /* [out] */ IRsNode **ppMatItemNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialNode( 
            /* [in] */ RtDWORD dwMatInd,
            /* [in] */ IRsNode **ppSrNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialNodeByOrder( 
            /* [in] */ RtDWORD dwMatOrder,
            /* [in] */ IRsNode **ppNode,
            /* [in] */ RtDWORD *pdwMatIndex) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSharedMaterialNode( 
            /* [in] */ IRsNode *pNode,
            /* [in] */ IRsNode **ppSharedMaterial) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE PermutateMaterials( 
            /* [in] */ RtUlong *pdwLookup,
            /* [in] */ RtUlong dwLookupSize) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialIndex( 
            /* [in] */ IRsMaterialGeneric *pGeneric,
            /* [in] */ RtDWORD *pdwIndex,
            /* [in] */ IRsNode **ppMaterialNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SynchronizeMaterialFromGeneric( 
            /* [in] */ RtDWORD dwMatInd,
            /* [in] */ IRdMaterialGeneric *spMaterial,
            /* [in] */ enum RtMaterialGenComponent dwComponentFilter) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialGeneric( 
            /* [in] */ RtDWORD dwMatInd,
            /* [out] */ IRsMaterialGeneric **ppMaterial) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialGenericByOrder( 
            /* [in] */ RtDWORD dwMatInd,
            /* [out] */ IRsMaterialGeneric **ppMaterial) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialGenericDesc( 
            /* [in] */ RtDWORD dwMatInd,
            /* [out] */ IRdMaterialGeneric **ppMaterial) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ConvertToMaterialList( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FindMaterialConnector( 
            /* [in] */ IRsNode *pNode,
            /* [retval][out] */ IRsConnector **ppConnector) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialListManagerNode( 
            /* [retval][out] */ IRsNode **ppNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE MergeMaterialLists( 
            /* [in] */ IRsNode *pNode,
            /* [out] */ struct RtMaterialIndexTranslation **ppTranslations,
            /* [out] */ RtDWORD *pTranslationsCount) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteUnusedMaterials( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateEmptyMaterialList( 
            /* [in] */ IRsNode **ppMaterialListEncaps) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialConnector( 
            /* [in] */ RtDWORD dwMatInd,
            /* [out] */ IRsConnector **ppCon) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFreeMaterialConnector( 
            /* [out] */ RtDWORD *pdwUnusedCon) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMaterialList( 
            /* [in] */ IRsNode *pMaterial) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveMaterial( 
            /* [in] */ RtDWORD dwMatInd) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfMaterialListSetVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfMaterialListSet * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfMaterialListSet * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfMaterialListSet * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AssignMatListMngNode )( 
            IRfMaterialListSet * This,
            /* [in] */ IRnMaterialListManager *pMatListMng);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Attach )( 
            IRfMaterialListSet * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateMaterialListManager )( 
            IRfMaterialListSet * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAssignedMatListMng )( 
            IRfMaterialListSet * This,
            /* [out] */ IRsNode **ppNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFreeMaterialIndex )( 
            IRfMaterialListSet * This,
            /* [out] */ RtDWORD *pdwIndex);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddMaterialChunk )( 
            IRfMaterialListSet * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtMatClsId activeMatClsId,
            /* [out] */ IRsNode **ppNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialsCount )( 
            IRfMaterialListSet * This,
            /* [retval][out] */ RtDWORD *pdwCount);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialIndices )( 
            IRfMaterialListSet * This,
            /* [out] */ RtDWORD *pIndices);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNextMaterialIndex )( 
            IRfMaterialListSet * This,
            /* [out][in] */ RtLong *pdwIndex);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterial )( 
            IRfMaterialListSet * This,
            /* [in] */ RtDWORD dwMatInd,
            /* [in] */ RtMatClsId MatClsId,
            /* [out] */ IRsObject **ppMaterial);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMaterial )( 
            IRfMaterialListSet * This,
            /* [in] */ RtDWORD dwMatInd,
            /* [in] */ IRsNode *pMaterial);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMaterialFromGeneric )( 
            IRfMaterialListSet * This,
            /* [in] */ RtDWORD dwMatInd,
            /* [in] */ IRdMaterialGeneric *pMaterial);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteMaterials )( 
            IRfMaterialListSet * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialFlavorManager )( 
            IRfMaterialListSet * This,
            /* [in] */ RtDWORD dwMatInd,
            /* [out] */ IRsNode **ppNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialFlavorManagerByOrder )( 
            IRfMaterialListSet * This,
            /* [in] */ RtDWORD dwMatOrder,
            /* [out] */ IRsNode **ppNode,
            /* [out] */ RtDWORD *pdwMatIndex);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FindMaterialFlavorNode )( 
            IRfMaterialListSet * This,
            /* [in] */ RtDWORD dwMatInd,
            /* [in] */ RtMatClsId MatClsId,
            /* [out] */ IRsNode **ppMatItemNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialNode )( 
            IRfMaterialListSet * This,
            /* [in] */ RtDWORD dwMatInd,
            /* [in] */ IRsNode **ppSrNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialNodeByOrder )( 
            IRfMaterialListSet * This,
            /* [in] */ RtDWORD dwMatOrder,
            /* [in] */ IRsNode **ppNode,
            /* [in] */ RtDWORD *pdwMatIndex);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSharedMaterialNode )( 
            IRfMaterialListSet * This,
            /* [in] */ IRsNode *pNode,
            /* [in] */ IRsNode **ppSharedMaterial);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *PermutateMaterials )( 
            IRfMaterialListSet * This,
            /* [in] */ RtUlong *pdwLookup,
            /* [in] */ RtUlong dwLookupSize);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialIndex )( 
            IRfMaterialListSet * This,
            /* [in] */ IRsMaterialGeneric *pGeneric,
            /* [in] */ RtDWORD *pdwIndex,
            /* [in] */ IRsNode **ppMaterialNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SynchronizeMaterialFromGeneric )( 
            IRfMaterialListSet * This,
            /* [in] */ RtDWORD dwMatInd,
            /* [in] */ IRdMaterialGeneric *spMaterial,
            /* [in] */ enum RtMaterialGenComponent dwComponentFilter);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialGeneric )( 
            IRfMaterialListSet * This,
            /* [in] */ RtDWORD dwMatInd,
            /* [out] */ IRsMaterialGeneric **ppMaterial);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialGenericByOrder )( 
            IRfMaterialListSet * This,
            /* [in] */ RtDWORD dwMatInd,
            /* [out] */ IRsMaterialGeneric **ppMaterial);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialGenericDesc )( 
            IRfMaterialListSet * This,
            /* [in] */ RtDWORD dwMatInd,
            /* [out] */ IRdMaterialGeneric **ppMaterial);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ConvertToMaterialList )( 
            IRfMaterialListSet * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FindMaterialConnector )( 
            IRfMaterialListSet * This,
            /* [in] */ IRsNode *pNode,
            /* [retval][out] */ IRsConnector **ppConnector);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialListManagerNode )( 
            IRfMaterialListSet * This,
            /* [retval][out] */ IRsNode **ppNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MergeMaterialLists )( 
            IRfMaterialListSet * This,
            /* [in] */ IRsNode *pNode,
            /* [out] */ struct RtMaterialIndexTranslation **ppTranslations,
            /* [out] */ RtDWORD *pTranslationsCount);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteUnusedMaterials )( 
            IRfMaterialListSet * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateEmptyMaterialList )( 
            IRfMaterialListSet * This,
            /* [in] */ IRsNode **ppMaterialListEncaps);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialConnector )( 
            IRfMaterialListSet * This,
            /* [in] */ RtDWORD dwMatInd,
            /* [out] */ IRsConnector **ppCon);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFreeMaterialConnector )( 
            IRfMaterialListSet * This,
            /* [out] */ RtDWORD *pdwUnusedCon);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMaterialList )( 
            IRfMaterialListSet * This,
            /* [in] */ IRsNode *pMaterial);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveMaterial )( 
            IRfMaterialListSet * This,
            /* [in] */ RtDWORD dwMatInd);
        
        END_INTERFACE
    } IRfMaterialListSetVtbl;

    interface IRfMaterialListSet
    {
        CONST_VTBL struct IRfMaterialListSetVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfMaterialListSet_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfMaterialListSet_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfMaterialListSet_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfMaterialListSet_AssignMatListMngNode(This,pMatListMng)	\
    (This)->lpVtbl -> AssignMatListMngNode(This,pMatListMng)

#define IRfMaterialListSet_Attach(This,pNode)	\
    (This)->lpVtbl -> Attach(This,pNode)

#define IRfMaterialListSet_CreateMaterialListManager(This)	\
    (This)->lpVtbl -> CreateMaterialListManager(This)

#define IRfMaterialListSet_GetAssignedMatListMng(This,ppNode)	\
    (This)->lpVtbl -> GetAssignedMatListMng(This,ppNode)

#define IRfMaterialListSet_GetFreeMaterialIndex(This,pdwIndex)	\
    (This)->lpVtbl -> GetFreeMaterialIndex(This,pdwIndex)

#define IRfMaterialListSet_AddMaterialChunk(This,dwIndex,activeMatClsId,ppNode)	\
    (This)->lpVtbl -> AddMaterialChunk(This,dwIndex,activeMatClsId,ppNode)

#define IRfMaterialListSet_GetMaterialsCount(This,pdwCount)	\
    (This)->lpVtbl -> GetMaterialsCount(This,pdwCount)

#define IRfMaterialListSet_GetMaterialIndices(This,pIndices)	\
    (This)->lpVtbl -> GetMaterialIndices(This,pIndices)

#define IRfMaterialListSet_GetNextMaterialIndex(This,pdwIndex)	\
    (This)->lpVtbl -> GetNextMaterialIndex(This,pdwIndex)

#define IRfMaterialListSet_GetMaterial(This,dwMatInd,MatClsId,ppMaterial)	\
    (This)->lpVtbl -> GetMaterial(This,dwMatInd,MatClsId,ppMaterial)

#define IRfMaterialListSet_SetMaterial(This,dwMatInd,pMaterial)	\
    (This)->lpVtbl -> SetMaterial(This,dwMatInd,pMaterial)

#define IRfMaterialListSet_SetMaterialFromGeneric(This,dwMatInd,pMaterial)	\
    (This)->lpVtbl -> SetMaterialFromGeneric(This,dwMatInd,pMaterial)

#define IRfMaterialListSet_DeleteMaterials(This)	\
    (This)->lpVtbl -> DeleteMaterials(This)

#define IRfMaterialListSet_GetMaterialFlavorManager(This,dwMatInd,ppNode)	\
    (This)->lpVtbl -> GetMaterialFlavorManager(This,dwMatInd,ppNode)

#define IRfMaterialListSet_GetMaterialFlavorManagerByOrder(This,dwMatOrder,ppNode,pdwMatIndex)	\
    (This)->lpVtbl -> GetMaterialFlavorManagerByOrder(This,dwMatOrder,ppNode,pdwMatIndex)

#define IRfMaterialListSet_FindMaterialFlavorNode(This,dwMatInd,MatClsId,ppMatItemNode)	\
    (This)->lpVtbl -> FindMaterialFlavorNode(This,dwMatInd,MatClsId,ppMatItemNode)

#define IRfMaterialListSet_GetMaterialNode(This,dwMatInd,ppSrNode)	\
    (This)->lpVtbl -> GetMaterialNode(This,dwMatInd,ppSrNode)

#define IRfMaterialListSet_GetMaterialNodeByOrder(This,dwMatOrder,ppNode,pdwMatIndex)	\
    (This)->lpVtbl -> GetMaterialNodeByOrder(This,dwMatOrder,ppNode,pdwMatIndex)

#define IRfMaterialListSet_GetSharedMaterialNode(This,pNode,ppSharedMaterial)	\
    (This)->lpVtbl -> GetSharedMaterialNode(This,pNode,ppSharedMaterial)

#define IRfMaterialListSet_PermutateMaterials(This,pdwLookup,dwLookupSize)	\
    (This)->lpVtbl -> PermutateMaterials(This,pdwLookup,dwLookupSize)

#define IRfMaterialListSet_GetMaterialIndex(This,pGeneric,pdwIndex,ppMaterialNode)	\
    (This)->lpVtbl -> GetMaterialIndex(This,pGeneric,pdwIndex,ppMaterialNode)

#define IRfMaterialListSet_SynchronizeMaterialFromGeneric(This,dwMatInd,spMaterial,dwComponentFilter)	\
    (This)->lpVtbl -> SynchronizeMaterialFromGeneric(This,dwMatInd,spMaterial,dwComponentFilter)

#define IRfMaterialListSet_GetMaterialGeneric(This,dwMatInd,ppMaterial)	\
    (This)->lpVtbl -> GetMaterialGeneric(This,dwMatInd,ppMaterial)

#define IRfMaterialListSet_GetMaterialGenericByOrder(This,dwMatInd,ppMaterial)	\
    (This)->lpVtbl -> GetMaterialGenericByOrder(This,dwMatInd,ppMaterial)

#define IRfMaterialListSet_GetMaterialGenericDesc(This,dwMatInd,ppMaterial)	\
    (This)->lpVtbl -> GetMaterialGenericDesc(This,dwMatInd,ppMaterial)

#define IRfMaterialListSet_ConvertToMaterialList(This)	\
    (This)->lpVtbl -> ConvertToMaterialList(This)

#define IRfMaterialListSet_FindMaterialConnector(This,pNode,ppConnector)	\
    (This)->lpVtbl -> FindMaterialConnector(This,pNode,ppConnector)

#define IRfMaterialListSet_GetMaterialListManagerNode(This,ppNode)	\
    (This)->lpVtbl -> GetMaterialListManagerNode(This,ppNode)

#define IRfMaterialListSet_MergeMaterialLists(This,pNode,ppTranslations,pTranslationsCount)	\
    (This)->lpVtbl -> MergeMaterialLists(This,pNode,ppTranslations,pTranslationsCount)

#define IRfMaterialListSet_DeleteUnusedMaterials(This)	\
    (This)->lpVtbl -> DeleteUnusedMaterials(This)

#define IRfMaterialListSet_CreateEmptyMaterialList(This,ppMaterialListEncaps)	\
    (This)->lpVtbl -> CreateEmptyMaterialList(This,ppMaterialListEncaps)

#define IRfMaterialListSet_GetMaterialConnector(This,dwMatInd,ppCon)	\
    (This)->lpVtbl -> GetMaterialConnector(This,dwMatInd,ppCon)

#define IRfMaterialListSet_GetFreeMaterialConnector(This,pdwUnusedCon)	\
    (This)->lpVtbl -> GetFreeMaterialConnector(This,pdwUnusedCon)

#define IRfMaterialListSet_SetMaterialList(This,pMaterial)	\
    (This)->lpVtbl -> SetMaterialList(This,pMaterial)

#define IRfMaterialListSet_RemoveMaterial(This,dwMatInd)	\
    (This)->lpVtbl -> RemoveMaterial(This,dwMatInd)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_AssignMatListMngNode_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ IRnMaterialListManager *pMatListMng);


void __RPC_STUB IRfMaterialListSet_AssignMatListMngNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_Attach_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRfMaterialListSet_Attach_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_CreateMaterialListManager_Proxy( 
    IRfMaterialListSet * This);


void __RPC_STUB IRfMaterialListSet_CreateMaterialListManager_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_GetAssignedMatListMng_Proxy( 
    IRfMaterialListSet * This,
    /* [out] */ IRsNode **ppNode);


void __RPC_STUB IRfMaterialListSet_GetAssignedMatListMng_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_GetFreeMaterialIndex_Proxy( 
    IRfMaterialListSet * This,
    /* [out] */ RtDWORD *pdwIndex);


void __RPC_STUB IRfMaterialListSet_GetFreeMaterialIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_AddMaterialChunk_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtMatClsId activeMatClsId,
    /* [out] */ IRsNode **ppNode);


void __RPC_STUB IRfMaterialListSet_AddMaterialChunk_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_GetMaterialsCount_Proxy( 
    IRfMaterialListSet * This,
    /* [retval][out] */ RtDWORD *pdwCount);


void __RPC_STUB IRfMaterialListSet_GetMaterialsCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_GetMaterialIndices_Proxy( 
    IRfMaterialListSet * This,
    /* [out] */ RtDWORD *pIndices);


void __RPC_STUB IRfMaterialListSet_GetMaterialIndices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_GetNextMaterialIndex_Proxy( 
    IRfMaterialListSet * This,
    /* [out][in] */ RtLong *pdwIndex);


void __RPC_STUB IRfMaterialListSet_GetNextMaterialIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_GetMaterial_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ RtDWORD dwMatInd,
    /* [in] */ RtMatClsId MatClsId,
    /* [out] */ IRsObject **ppMaterial);


void __RPC_STUB IRfMaterialListSet_GetMaterial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_SetMaterial_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ RtDWORD dwMatInd,
    /* [in] */ IRsNode *pMaterial);


void __RPC_STUB IRfMaterialListSet_SetMaterial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_SetMaterialFromGeneric_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ RtDWORD dwMatInd,
    /* [in] */ IRdMaterialGeneric *pMaterial);


void __RPC_STUB IRfMaterialListSet_SetMaterialFromGeneric_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_DeleteMaterials_Proxy( 
    IRfMaterialListSet * This);


void __RPC_STUB IRfMaterialListSet_DeleteMaterials_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_GetMaterialFlavorManager_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ RtDWORD dwMatInd,
    /* [out] */ IRsNode **ppNode);


void __RPC_STUB IRfMaterialListSet_GetMaterialFlavorManager_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_GetMaterialFlavorManagerByOrder_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ RtDWORD dwMatOrder,
    /* [out] */ IRsNode **ppNode,
    /* [out] */ RtDWORD *pdwMatIndex);


void __RPC_STUB IRfMaterialListSet_GetMaterialFlavorManagerByOrder_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_FindMaterialFlavorNode_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ RtDWORD dwMatInd,
    /* [in] */ RtMatClsId MatClsId,
    /* [out] */ IRsNode **ppMatItemNode);


void __RPC_STUB IRfMaterialListSet_FindMaterialFlavorNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_GetMaterialNode_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ RtDWORD dwMatInd,
    /* [in] */ IRsNode **ppSrNode);


void __RPC_STUB IRfMaterialListSet_GetMaterialNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_GetMaterialNodeByOrder_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ RtDWORD dwMatOrder,
    /* [in] */ IRsNode **ppNode,
    /* [in] */ RtDWORD *pdwMatIndex);


void __RPC_STUB IRfMaterialListSet_GetMaterialNodeByOrder_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_GetSharedMaterialNode_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ IRsNode *pNode,
    /* [in] */ IRsNode **ppSharedMaterial);


void __RPC_STUB IRfMaterialListSet_GetSharedMaterialNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_PermutateMaterials_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ RtUlong *pdwLookup,
    /* [in] */ RtUlong dwLookupSize);


void __RPC_STUB IRfMaterialListSet_PermutateMaterials_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_GetMaterialIndex_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ IRsMaterialGeneric *pGeneric,
    /* [in] */ RtDWORD *pdwIndex,
    /* [in] */ IRsNode **ppMaterialNode);


void __RPC_STUB IRfMaterialListSet_GetMaterialIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_SynchronizeMaterialFromGeneric_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ RtDWORD dwMatInd,
    /* [in] */ IRdMaterialGeneric *spMaterial,
    /* [in] */ enum RtMaterialGenComponent dwComponentFilter);


void __RPC_STUB IRfMaterialListSet_SynchronizeMaterialFromGeneric_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_GetMaterialGeneric_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ RtDWORD dwMatInd,
    /* [out] */ IRsMaterialGeneric **ppMaterial);


void __RPC_STUB IRfMaterialListSet_GetMaterialGeneric_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_GetMaterialGenericByOrder_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ RtDWORD dwMatInd,
    /* [out] */ IRsMaterialGeneric **ppMaterial);


void __RPC_STUB IRfMaterialListSet_GetMaterialGenericByOrder_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_GetMaterialGenericDesc_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ RtDWORD dwMatInd,
    /* [out] */ IRdMaterialGeneric **ppMaterial);


void __RPC_STUB IRfMaterialListSet_GetMaterialGenericDesc_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_ConvertToMaterialList_Proxy( 
    IRfMaterialListSet * This);


void __RPC_STUB IRfMaterialListSet_ConvertToMaterialList_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_FindMaterialConnector_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ IRsNode *pNode,
    /* [retval][out] */ IRsConnector **ppConnector);


void __RPC_STUB IRfMaterialListSet_FindMaterialConnector_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_GetMaterialListManagerNode_Proxy( 
    IRfMaterialListSet * This,
    /* [retval][out] */ IRsNode **ppNode);


void __RPC_STUB IRfMaterialListSet_GetMaterialListManagerNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_MergeMaterialLists_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ IRsNode *pNode,
    /* [out] */ struct RtMaterialIndexTranslation **ppTranslations,
    /* [out] */ RtDWORD *pTranslationsCount);


void __RPC_STUB IRfMaterialListSet_MergeMaterialLists_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_DeleteUnusedMaterials_Proxy( 
    IRfMaterialListSet * This);


void __RPC_STUB IRfMaterialListSet_DeleteUnusedMaterials_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_CreateEmptyMaterialList_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ IRsNode **ppMaterialListEncaps);


void __RPC_STUB IRfMaterialListSet_CreateEmptyMaterialList_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_GetMaterialConnector_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ RtDWORD dwMatInd,
    /* [out] */ IRsConnector **ppCon);


void __RPC_STUB IRfMaterialListSet_GetMaterialConnector_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_GetFreeMaterialConnector_Proxy( 
    IRfMaterialListSet * This,
    /* [out] */ RtDWORD *pdwUnusedCon);


void __RPC_STUB IRfMaterialListSet_GetFreeMaterialConnector_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_SetMaterialList_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ IRsNode *pMaterial);


void __RPC_STUB IRfMaterialListSet_SetMaterialList_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialListSet_RemoveMaterial_Proxy( 
    IRfMaterialListSet * This,
    /* [in] */ RtDWORD dwMatInd);


void __RPC_STUB IRfMaterialListSet_RemoveMaterial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfMaterialListSet_INTERFACE_DEFINED__ */


#ifndef __IRfTransformSet_INTERFACE_DEFINED__
#define __IRfTransformSet_INTERFACE_DEFINED__

/* interface IRfTransformSet */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRfTransformSet;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2F1D0D32-4788-4bd9-BC01-26D43A6D4A6F")
    IRfTransformSet : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddTransformAttr( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CheckConExport( 
            /* [in] */ IRsBaseNode *pOwnerBase,
            /* [in] */ CONID *pConId,
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtBool bSetValue) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CorrectTransformAttr( 
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtBOOL bForceTo3D) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CorrectTransformAttrOwner( 
            /* [in] */ IRsNode *pNode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfTransformSetVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfTransformSet * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfTransformSet * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfTransformSet * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddTransformAttr )( 
            IRfTransformSet * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CheckConExport )( 
            IRfTransformSet * This,
            /* [in] */ IRsBaseNode *pOwnerBase,
            /* [in] */ CONID *pConId,
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtBool bSetValue);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CorrectTransformAttr )( 
            IRfTransformSet * This,
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtBOOL bForceTo3D);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CorrectTransformAttrOwner )( 
            IRfTransformSet * This,
            /* [in] */ IRsNode *pNode);
        
        END_INTERFACE
    } IRfTransformSetVtbl;

    interface IRfTransformSet
    {
        CONST_VTBL struct IRfTransformSetVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfTransformSet_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfTransformSet_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfTransformSet_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfTransformSet_AddTransformAttr(This,pNode)	\
    (This)->lpVtbl -> AddTransformAttr(This,pNode)

#define IRfTransformSet_CheckConExport(This,pOwnerBase,pConId,pNode,bSetValue)	\
    (This)->lpVtbl -> CheckConExport(This,pOwnerBase,pConId,pNode,bSetValue)

#define IRfTransformSet_CorrectTransformAttr(This,pNode,bForceTo3D)	\
    (This)->lpVtbl -> CorrectTransformAttr(This,pNode,bForceTo3D)

#define IRfTransformSet_CorrectTransformAttrOwner(This,pNode)	\
    (This)->lpVtbl -> CorrectTransformAttrOwner(This,pNode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfTransformSet_AddTransformAttr_Proxy( 
    IRfTransformSet * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRfTransformSet_AddTransformAttr_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfTransformSet_CheckConExport_Proxy( 
    IRfTransformSet * This,
    /* [in] */ IRsBaseNode *pOwnerBase,
    /* [in] */ CONID *pConId,
    /* [in] */ IRsNode *pNode,
    /* [in] */ RtBool bSetValue);


void __RPC_STUB IRfTransformSet_CheckConExport_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfTransformSet_CorrectTransformAttr_Proxy( 
    IRfTransformSet * This,
    /* [in] */ IRsNode *pNode,
    /* [in] */ RtBOOL bForceTo3D);


void __RPC_STUB IRfTransformSet_CorrectTransformAttr_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfTransformSet_CorrectTransformAttrOwner_Proxy( 
    IRfTransformSet * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRfTransformSet_CorrectTransformAttrOwner_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfTransformSet_INTERFACE_DEFINED__ */


#ifndef __IRfVolumeTree_INTERFACE_DEFINED__
#define __IRfVolumeTree_INTERFACE_DEFINED__

/* interface IRfVolumeTree */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRfVolumeTree;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("18F7B120-3A28-4ccd-A5A2-0EC39FCDC86C")
    IRfVolumeTree : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DefaultVolumeTree( 
            /* [out] */ IRsNode **ppNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ObjectsInFrustum( 
            /* [in] */ IRsNode *pSceneRoot,
            /* [in] */ RtVector4f *pPlanes,
            /* [out] */ IRsNodeList **ppObjecList) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfVolumeTreeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfVolumeTree * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfVolumeTree * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfVolumeTree * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DefaultVolumeTree )( 
            IRfVolumeTree * This,
            /* [out] */ IRsNode **ppNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ObjectsInFrustum )( 
            IRfVolumeTree * This,
            /* [in] */ IRsNode *pSceneRoot,
            /* [in] */ RtVector4f *pPlanes,
            /* [out] */ IRsNodeList **ppObjecList);
        
        END_INTERFACE
    } IRfVolumeTreeVtbl;

    interface IRfVolumeTree
    {
        CONST_VTBL struct IRfVolumeTreeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfVolumeTree_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfVolumeTree_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfVolumeTree_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfVolumeTree_DefaultVolumeTree(This,ppNode)	\
    (This)->lpVtbl -> DefaultVolumeTree(This,ppNode)

#define IRfVolumeTree_ObjectsInFrustum(This,pSceneRoot,pPlanes,ppObjecList)	\
    (This)->lpVtbl -> ObjectsInFrustum(This,pSceneRoot,pPlanes,ppObjecList)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfVolumeTree_DefaultVolumeTree_Proxy( 
    IRfVolumeTree * This,
    /* [out] */ IRsNode **ppNode);


void __RPC_STUB IRfVolumeTree_DefaultVolumeTree_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfVolumeTree_ObjectsInFrustum_Proxy( 
    IRfVolumeTree * This,
    /* [in] */ IRsNode *pSceneRoot,
    /* [in] */ RtVector4f *pPlanes,
    /* [out] */ IRsNodeList **ppObjecList);


void __RPC_STUB IRfVolumeTree_ObjectsInFrustum_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfVolumeTree_INTERFACE_DEFINED__ */


#ifndef __IRsStreamCache_INTERFACE_DEFINED__
#define __IRsStreamCache_INTERFACE_DEFINED__

/* interface IRsStreamCache */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsStreamCache;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D78243B5-B3AF-45B2-A03D-19B7ACBA1586")
    IRsStreamCache : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE QueryCache( 
            /* [in] */ IUnknown *pSource,
            /* [in] */ GUID gStreamId,
            /* [retval][out] */ IRsCachedStream **ppStream) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ReleaseStream( 
            /* [in] */ IRsCachedStream *ppStream) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddStream( 
            /* [in] */ IRsCachedStream *ppStream) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Destroy( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsStreamCacheVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsStreamCache * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsStreamCache * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsStreamCache * This);
        
        HRESULT ( STDMETHODCALLTYPE *QueryCache )( 
            IRsStreamCache * This,
            /* [in] */ IUnknown *pSource,
            /* [in] */ GUID gStreamId,
            /* [retval][out] */ IRsCachedStream **ppStream);
        
        HRESULT ( STDMETHODCALLTYPE *ReleaseStream )( 
            IRsStreamCache * This,
            /* [in] */ IRsCachedStream *ppStream);
        
        HRESULT ( STDMETHODCALLTYPE *AddStream )( 
            IRsStreamCache * This,
            /* [in] */ IRsCachedStream *ppStream);
        
        HRESULT ( STDMETHODCALLTYPE *Destroy )( 
            IRsStreamCache * This);
        
        END_INTERFACE
    } IRsStreamCacheVtbl;

    interface IRsStreamCache
    {
        CONST_VTBL struct IRsStreamCacheVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsStreamCache_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsStreamCache_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsStreamCache_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsStreamCache_QueryCache(This,pSource,gStreamId,ppStream)	\
    (This)->lpVtbl -> QueryCache(This,pSource,gStreamId,ppStream)

#define IRsStreamCache_ReleaseStream(This,ppStream)	\
    (This)->lpVtbl -> ReleaseStream(This,ppStream)

#define IRsStreamCache_AddStream(This,ppStream)	\
    (This)->lpVtbl -> AddStream(This,ppStream)

#define IRsStreamCache_Destroy(This)	\
    (This)->lpVtbl -> Destroy(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsStreamCache_QueryCache_Proxy( 
    IRsStreamCache * This,
    /* [in] */ IUnknown *pSource,
    /* [in] */ GUID gStreamId,
    /* [retval][out] */ IRsCachedStream **ppStream);


void __RPC_STUB IRsStreamCache_QueryCache_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsStreamCache_ReleaseStream_Proxy( 
    IRsStreamCache * This,
    /* [in] */ IRsCachedStream *ppStream);


void __RPC_STUB IRsStreamCache_ReleaseStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsStreamCache_AddStream_Proxy( 
    IRsStreamCache * This,
    /* [in] */ IRsCachedStream *ppStream);


void __RPC_STUB IRsStreamCache_AddStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsStreamCache_Destroy_Proxy( 
    IRsStreamCache * This);


void __RPC_STUB IRsStreamCache_Destroy_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsStreamCache_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1342 */
/* [local] */ 


enum RtSnapSkipElements
    {	SSET_NONE	= 0,
	SSET_VERTICES	= 1,
	SSET_EDGES	= 2,
	SSET_TRIANGLES	= 4,
	SSET_FACES	= 8,
	SSET_UNBOUND_2D	= 16,
	SSET_REF_POSITION_INVALID	= 32,
	SSET_REF_EDGE_VISIBLE	= 64,
	SSET_NO_HARD_DIM_CONSTRAINTS	= 128
    } ;

enum RtPositionSnapMode
    {	PSM_SELECTION	= 0,
	PSM_DIRECT	= 1
    } ;
struct RtMovementSnapperInfo
    {
    RtUlong dwDimension;
    RtVector3f vtAxes[ 3 ];
    RtFloat fSteps[ 3 ];
    RtUlong dwPrevDimension;
    RtVector3f vtPrevAxes[ 3 ];
    RtPoint ptInitialPosition;
    RtPoint ptActualPosition;
    RtMatrixf mCoordSys;
    RtMatrixf mCoordSysInv;
    enum RtPositionSnapMode mSelectionMode;
    RtUlong dwSkipElements;
    } ;
struct RtPositionSnappingParameters
    {
    struct RtMovementSnapperInfo *pSnapperInfo;
    RtMatrixf mCameraViewMatrix;
    RtMatrixf mCameraProjectionMatrix;
    RtMatrixf mProjectionMatrix;
    struct RtViewport tViewport;
    RtBool bTrackingEnabled;
    RtPoint ptCurrentPosition;
    RtVector2f ptScreenPosition;
    RtFloat fCurrentBestWeight;
    IRsNode *pViewNode;
    IRsObjectList *pObjectList;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1342_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1342_v0_0_s_ifspec;

#ifndef __IRdPositionSnapTool_INTERFACE_DEFINED__
#define __IRdPositionSnapTool_INTERFACE_DEFINED__

/* interface IRdPositionSnapTool */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdPositionSnapTool;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9F50E0F5-6FB5-4941-B3B0-1E14BEDB2761")
    IRdPositionSnapTool : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetParameters( 
            /* [in] */ IRsNode *pViewNode,
            /* [in] */ IRsObjectList *pObjectList) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetSnappedPosition( 
            /* [in] */ struct RtPositionSnappingParameters *pSnapParams,
            /* [out] */ RtPoint *pptOutPos,
            /* [out] */ RtFloat *pfWeight) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetSnappedPosition( 
            /* [in] */ struct RtPositionSnappingParameters *pSnapParams,
            /* [in] */ RtPoint *ptSnapPos) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ApplyMovementConstraints( 
            /* [in] */ struct RtPositionSnappingParameters *pSnapParams) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE NotifyPositionSnapActive( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE NotifyPositionSnapperDeactivate( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HidePositionSnapMarkers( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdPositionSnapToolVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdPositionSnapTool * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdPositionSnapTool * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdPositionSnapTool * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetParameters )( 
            IRdPositionSnapTool * This,
            /* [in] */ IRsNode *pViewNode,
            /* [in] */ IRsObjectList *pObjectList);
        
        HRESULT ( STDMETHODCALLTYPE *GetSnappedPosition )( 
            IRdPositionSnapTool * This,
            /* [in] */ struct RtPositionSnappingParameters *pSnapParams,
            /* [out] */ RtPoint *pptOutPos,
            /* [out] */ RtFloat *pfWeight);
        
        HRESULT ( STDMETHODCALLTYPE *SetSnappedPosition )( 
            IRdPositionSnapTool * This,
            /* [in] */ struct RtPositionSnappingParameters *pSnapParams,
            /* [in] */ RtPoint *ptSnapPos);
        
        HRESULT ( STDMETHODCALLTYPE *ApplyMovementConstraints )( 
            IRdPositionSnapTool * This,
            /* [in] */ struct RtPositionSnappingParameters *pSnapParams);
        
        HRESULT ( STDMETHODCALLTYPE *NotifyPositionSnapActive )( 
            IRdPositionSnapTool * This);
        
        HRESULT ( STDMETHODCALLTYPE *NotifyPositionSnapperDeactivate )( 
            IRdPositionSnapTool * This);
        
        HRESULT ( STDMETHODCALLTYPE *HidePositionSnapMarkers )( 
            IRdPositionSnapTool * This);
        
        END_INTERFACE
    } IRdPositionSnapToolVtbl;

    interface IRdPositionSnapTool
    {
        CONST_VTBL struct IRdPositionSnapToolVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdPositionSnapTool_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdPositionSnapTool_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdPositionSnapTool_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdPositionSnapTool_SetParameters(This,pViewNode,pObjectList)	\
    (This)->lpVtbl -> SetParameters(This,pViewNode,pObjectList)

#define IRdPositionSnapTool_GetSnappedPosition(This,pSnapParams,pptOutPos,pfWeight)	\
    (This)->lpVtbl -> GetSnappedPosition(This,pSnapParams,pptOutPos,pfWeight)

#define IRdPositionSnapTool_SetSnappedPosition(This,pSnapParams,ptSnapPos)	\
    (This)->lpVtbl -> SetSnappedPosition(This,pSnapParams,ptSnapPos)

#define IRdPositionSnapTool_ApplyMovementConstraints(This,pSnapParams)	\
    (This)->lpVtbl -> ApplyMovementConstraints(This,pSnapParams)

#define IRdPositionSnapTool_NotifyPositionSnapActive(This)	\
    (This)->lpVtbl -> NotifyPositionSnapActive(This)

#define IRdPositionSnapTool_NotifyPositionSnapperDeactivate(This)	\
    (This)->lpVtbl -> NotifyPositionSnapperDeactivate(This)

#define IRdPositionSnapTool_HidePositionSnapMarkers(This)	\
    (This)->lpVtbl -> HidePositionSnapMarkers(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRdPositionSnapTool_SetParameters_Proxy( 
    IRdPositionSnapTool * This,
    /* [in] */ IRsNode *pViewNode,
    /* [in] */ IRsObjectList *pObjectList);


void __RPC_STUB IRdPositionSnapTool_SetParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdPositionSnapTool_GetSnappedPosition_Proxy( 
    IRdPositionSnapTool * This,
    /* [in] */ struct RtPositionSnappingParameters *pSnapParams,
    /* [out] */ RtPoint *pptOutPos,
    /* [out] */ RtFloat *pfWeight);


void __RPC_STUB IRdPositionSnapTool_GetSnappedPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdPositionSnapTool_SetSnappedPosition_Proxy( 
    IRdPositionSnapTool * This,
    /* [in] */ struct RtPositionSnappingParameters *pSnapParams,
    /* [in] */ RtPoint *ptSnapPos);


void __RPC_STUB IRdPositionSnapTool_SetSnappedPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdPositionSnapTool_ApplyMovementConstraints_Proxy( 
    IRdPositionSnapTool * This,
    /* [in] */ struct RtPositionSnappingParameters *pSnapParams);


void __RPC_STUB IRdPositionSnapTool_ApplyMovementConstraints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdPositionSnapTool_NotifyPositionSnapActive_Proxy( 
    IRdPositionSnapTool * This);


void __RPC_STUB IRdPositionSnapTool_NotifyPositionSnapActive_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdPositionSnapTool_NotifyPositionSnapperDeactivate_Proxy( 
    IRdPositionSnapTool * This);


void __RPC_STUB IRdPositionSnapTool_NotifyPositionSnapperDeactivate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdPositionSnapTool_HidePositionSnapMarkers_Proxy( 
    IRdPositionSnapTool * This);


void __RPC_STUB IRdPositionSnapTool_HidePositionSnapMarkers_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdPositionSnapTool_INTERFACE_DEFINED__ */


#ifndef __IRsPositionSnappingManager_INTERFACE_DEFINED__
#define __IRsPositionSnappingManager_INTERFACE_DEFINED__

/* interface IRsPositionSnappingManager */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsPositionSnappingManager;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8595E03F-37F9-4A82-8C7B-83119264AEEB")
    IRsPositionSnappingManager : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE AddSnapTool( 
            /* [in] */ IRdPositionSnapTool *pSnapTool) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Setup( 
            /* [in] */ IRsNode *pViewNode,
            /* [in] */ IRsObjectList *pObjectList) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Deactivate( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HideMarkers( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetParameters( 
            /* [in] */ struct RtMovementSnapperInfo *sp) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ApplyMovementConstraints( 
            /* [in] */ RtVector2f *pScreenPosition,
            /* [in] */ RtPoint *pInputPosition) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetSnappedPosition( 
            /* [in] */ RtVector2f *pScreenPosition,
            /* [in] */ RtPoint *pInputPosition,
            /* [retval][out] */ RtPoint *pSnapPosition) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetContinuePositionTracking( 
            /* [retval][out] */ RtBool *pbFlag) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveSoftConstraints( 
            /* [in] */ RtVector3f *pConstraints,
            /* [in] */ RtUlong dwNum) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetCurrentPosition( 
            /* [retval][out] */ RtVector3f *pPos) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetCurrentView( 
            /* [retval][out] */ IRsNode **ppNode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveObject( 
            /* [in] */ IRsObject *pNode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddObject( 
            /* [in] */ IRsObject *pNode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsPositionSnappingManagerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsPositionSnappingManager * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsPositionSnappingManager * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsPositionSnappingManager * This);
        
        HRESULT ( STDMETHODCALLTYPE *AddSnapTool )( 
            IRsPositionSnappingManager * This,
            /* [in] */ IRdPositionSnapTool *pSnapTool);
        
        HRESULT ( STDMETHODCALLTYPE *Setup )( 
            IRsPositionSnappingManager * This,
            /* [in] */ IRsNode *pViewNode,
            /* [in] */ IRsObjectList *pObjectList);
        
        HRESULT ( STDMETHODCALLTYPE *Deactivate )( 
            IRsPositionSnappingManager * This);
        
        HRESULT ( STDMETHODCALLTYPE *HideMarkers )( 
            IRsPositionSnappingManager * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetParameters )( 
            IRsPositionSnappingManager * This,
            /* [in] */ struct RtMovementSnapperInfo *sp);
        
        HRESULT ( STDMETHODCALLTYPE *ApplyMovementConstraints )( 
            IRsPositionSnappingManager * This,
            /* [in] */ RtVector2f *pScreenPosition,
            /* [in] */ RtPoint *pInputPosition);
        
        HRESULT ( STDMETHODCALLTYPE *GetSnappedPosition )( 
            IRsPositionSnappingManager * This,
            /* [in] */ RtVector2f *pScreenPosition,
            /* [in] */ RtPoint *pInputPosition,
            /* [retval][out] */ RtPoint *pSnapPosition);
        
        HRESULT ( STDMETHODCALLTYPE *GetContinuePositionTracking )( 
            IRsPositionSnappingManager * This,
            /* [retval][out] */ RtBool *pbFlag);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveSoftConstraints )( 
            IRsPositionSnappingManager * This,
            /* [in] */ RtVector3f *pConstraints,
            /* [in] */ RtUlong dwNum);
        
        HRESULT ( STDMETHODCALLTYPE *GetCurrentPosition )( 
            IRsPositionSnappingManager * This,
            /* [retval][out] */ RtVector3f *pPos);
        
        HRESULT ( STDMETHODCALLTYPE *GetCurrentView )( 
            IRsPositionSnappingManager * This,
            /* [retval][out] */ IRsNode **ppNode);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveObject )( 
            IRsPositionSnappingManager * This,
            /* [in] */ IRsObject *pNode);
        
        HRESULT ( STDMETHODCALLTYPE *AddObject )( 
            IRsPositionSnappingManager * This,
            /* [in] */ IRsObject *pNode);
        
        END_INTERFACE
    } IRsPositionSnappingManagerVtbl;

    interface IRsPositionSnappingManager
    {
        CONST_VTBL struct IRsPositionSnappingManagerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsPositionSnappingManager_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsPositionSnappingManager_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsPositionSnappingManager_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsPositionSnappingManager_AddSnapTool(This,pSnapTool)	\
    (This)->lpVtbl -> AddSnapTool(This,pSnapTool)

#define IRsPositionSnappingManager_Setup(This,pViewNode,pObjectList)	\
    (This)->lpVtbl -> Setup(This,pViewNode,pObjectList)

#define IRsPositionSnappingManager_Deactivate(This)	\
    (This)->lpVtbl -> Deactivate(This)

#define IRsPositionSnappingManager_HideMarkers(This)	\
    (This)->lpVtbl -> HideMarkers(This)

#define IRsPositionSnappingManager_SetParameters(This,sp)	\
    (This)->lpVtbl -> SetParameters(This,sp)

#define IRsPositionSnappingManager_ApplyMovementConstraints(This,pScreenPosition,pInputPosition)	\
    (This)->lpVtbl -> ApplyMovementConstraints(This,pScreenPosition,pInputPosition)

#define IRsPositionSnappingManager_GetSnappedPosition(This,pScreenPosition,pInputPosition,pSnapPosition)	\
    (This)->lpVtbl -> GetSnappedPosition(This,pScreenPosition,pInputPosition,pSnapPosition)

#define IRsPositionSnappingManager_GetContinuePositionTracking(This,pbFlag)	\
    (This)->lpVtbl -> GetContinuePositionTracking(This,pbFlag)

#define IRsPositionSnappingManager_RemoveSoftConstraints(This,pConstraints,dwNum)	\
    (This)->lpVtbl -> RemoveSoftConstraints(This,pConstraints,dwNum)

#define IRsPositionSnappingManager_GetCurrentPosition(This,pPos)	\
    (This)->lpVtbl -> GetCurrentPosition(This,pPos)

#define IRsPositionSnappingManager_GetCurrentView(This,ppNode)	\
    (This)->lpVtbl -> GetCurrentView(This,ppNode)

#define IRsPositionSnappingManager_RemoveObject(This,pNode)	\
    (This)->lpVtbl -> RemoveObject(This,pNode)

#define IRsPositionSnappingManager_AddObject(This,pNode)	\
    (This)->lpVtbl -> AddObject(This,pNode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsPositionSnappingManager_AddSnapTool_Proxy( 
    IRsPositionSnappingManager * This,
    /* [in] */ IRdPositionSnapTool *pSnapTool);


void __RPC_STUB IRsPositionSnappingManager_AddSnapTool_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPositionSnappingManager_Setup_Proxy( 
    IRsPositionSnappingManager * This,
    /* [in] */ IRsNode *pViewNode,
    /* [in] */ IRsObjectList *pObjectList);


void __RPC_STUB IRsPositionSnappingManager_Setup_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPositionSnappingManager_Deactivate_Proxy( 
    IRsPositionSnappingManager * This);


void __RPC_STUB IRsPositionSnappingManager_Deactivate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPositionSnappingManager_HideMarkers_Proxy( 
    IRsPositionSnappingManager * This);


void __RPC_STUB IRsPositionSnappingManager_HideMarkers_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPositionSnappingManager_SetParameters_Proxy( 
    IRsPositionSnappingManager * This,
    /* [in] */ struct RtMovementSnapperInfo *sp);


void __RPC_STUB IRsPositionSnappingManager_SetParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPositionSnappingManager_ApplyMovementConstraints_Proxy( 
    IRsPositionSnappingManager * This,
    /* [in] */ RtVector2f *pScreenPosition,
    /* [in] */ RtPoint *pInputPosition);


void __RPC_STUB IRsPositionSnappingManager_ApplyMovementConstraints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPositionSnappingManager_GetSnappedPosition_Proxy( 
    IRsPositionSnappingManager * This,
    /* [in] */ RtVector2f *pScreenPosition,
    /* [in] */ RtPoint *pInputPosition,
    /* [retval][out] */ RtPoint *pSnapPosition);


void __RPC_STUB IRsPositionSnappingManager_GetSnappedPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPositionSnappingManager_GetContinuePositionTracking_Proxy( 
    IRsPositionSnappingManager * This,
    /* [retval][out] */ RtBool *pbFlag);


void __RPC_STUB IRsPositionSnappingManager_GetContinuePositionTracking_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPositionSnappingManager_RemoveSoftConstraints_Proxy( 
    IRsPositionSnappingManager * This,
    /* [in] */ RtVector3f *pConstraints,
    /* [in] */ RtUlong dwNum);


void __RPC_STUB IRsPositionSnappingManager_RemoveSoftConstraints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPositionSnappingManager_GetCurrentPosition_Proxy( 
    IRsPositionSnappingManager * This,
    /* [retval][out] */ RtVector3f *pPos);


void __RPC_STUB IRsPositionSnappingManager_GetCurrentPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPositionSnappingManager_GetCurrentView_Proxy( 
    IRsPositionSnappingManager * This,
    /* [retval][out] */ IRsNode **ppNode);


void __RPC_STUB IRsPositionSnappingManager_GetCurrentView_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPositionSnappingManager_RemoveObject_Proxy( 
    IRsPositionSnappingManager * This,
    /* [in] */ IRsObject *pNode);


void __RPC_STUB IRsPositionSnappingManager_RemoveObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPositionSnappingManager_AddObject_Proxy( 
    IRsPositionSnappingManager * This,
    /* [in] */ IRsObject *pNode);


void __RPC_STUB IRsPositionSnappingManager_AddObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsPositionSnappingManager_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1344 */
/* [local] */ 


enum RtRotationSnapMode
    {	RSM_SELECTION	= 0,
	RSM_DIRECT	= 1
    } ;
struct RtRotationtSnapperInfo
    {
    RtPoint ptCenter;
    RtVector2f vtCurrentAngle;
    RtUlong dwDimension;
    RtVector3f vtAxes[ 2 ];
    RtFloat fSteps[ 2 ];
    RtMatrixf mCurrentTransform;
    RtMatrixf mCoordSys;
    RtMatrixf mCoordSysInv;
    enum RtRotationSnapMode mSelectionMode;
    RtUlong dwSkipElements;
    } ;
struct RtRotationSnappingParameters
    {
    struct RtRotationtSnapperInfo *pSnapperInfo;
    RtMatrixf mCameraViewMatrix;
    RtMatrixf mCameraProjectionMatrix;
    RtMatrixf mProjectionMatrix;
    struct RtViewport tViewport;
    RtBool bTrackingEnabled;
    RtVector2f ptScreenPosition;
    RtFloat fCurrentBestWeight;
    IRsNode *pViewNode;
    IRsObjectList *pObjectList;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1344_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1344_v0_0_s_ifspec;

#ifndef __IRdRotationSnapTool_INTERFACE_DEFINED__
#define __IRdRotationSnapTool_INTERFACE_DEFINED__

/* interface IRdRotationSnapTool */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdRotationSnapTool;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5DF0754D-7C75-43b2-8F05-9E3251B4EF17")
    IRdRotationSnapTool : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetParameters( 
            /* [in] */ IRsNode *pViewNode,
            /* [in] */ IRsObjectList *pObjectList) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetSnappedAngle( 
            /* [in] */ struct RtRotationSnappingParameters *pSnapParams,
            /* [out] */ RtVector2f *pfAngle,
            /* [out] */ RtFloat *pfWeight) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ApplyRotationConstraints( 
            /* [in] */ struct RtRotationSnappingParameters *pSnapParams) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE NotifyAngleSnapActive( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE NotifyAngleSnapperDeactivate( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HideAngleSnapMarkers( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdRotationSnapToolVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdRotationSnapTool * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdRotationSnapTool * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdRotationSnapTool * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetParameters )( 
            IRdRotationSnapTool * This,
            /* [in] */ IRsNode *pViewNode,
            /* [in] */ IRsObjectList *pObjectList);
        
        HRESULT ( STDMETHODCALLTYPE *GetSnappedAngle )( 
            IRdRotationSnapTool * This,
            /* [in] */ struct RtRotationSnappingParameters *pSnapParams,
            /* [out] */ RtVector2f *pfAngle,
            /* [out] */ RtFloat *pfWeight);
        
        HRESULT ( STDMETHODCALLTYPE *ApplyRotationConstraints )( 
            IRdRotationSnapTool * This,
            /* [in] */ struct RtRotationSnappingParameters *pSnapParams);
        
        HRESULT ( STDMETHODCALLTYPE *NotifyAngleSnapActive )( 
            IRdRotationSnapTool * This);
        
        HRESULT ( STDMETHODCALLTYPE *NotifyAngleSnapperDeactivate )( 
            IRdRotationSnapTool * This);
        
        HRESULT ( STDMETHODCALLTYPE *HideAngleSnapMarkers )( 
            IRdRotationSnapTool * This);
        
        END_INTERFACE
    } IRdRotationSnapToolVtbl;

    interface IRdRotationSnapTool
    {
        CONST_VTBL struct IRdRotationSnapToolVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdRotationSnapTool_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdRotationSnapTool_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdRotationSnapTool_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdRotationSnapTool_SetParameters(This,pViewNode,pObjectList)	\
    (This)->lpVtbl -> SetParameters(This,pViewNode,pObjectList)

#define IRdRotationSnapTool_GetSnappedAngle(This,pSnapParams,pfAngle,pfWeight)	\
    (This)->lpVtbl -> GetSnappedAngle(This,pSnapParams,pfAngle,pfWeight)

#define IRdRotationSnapTool_ApplyRotationConstraints(This,pSnapParams)	\
    (This)->lpVtbl -> ApplyRotationConstraints(This,pSnapParams)

#define IRdRotationSnapTool_NotifyAngleSnapActive(This)	\
    (This)->lpVtbl -> NotifyAngleSnapActive(This)

#define IRdRotationSnapTool_NotifyAngleSnapperDeactivate(This)	\
    (This)->lpVtbl -> NotifyAngleSnapperDeactivate(This)

#define IRdRotationSnapTool_HideAngleSnapMarkers(This)	\
    (This)->lpVtbl -> HideAngleSnapMarkers(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRdRotationSnapTool_SetParameters_Proxy( 
    IRdRotationSnapTool * This,
    /* [in] */ IRsNode *pViewNode,
    /* [in] */ IRsObjectList *pObjectList);


void __RPC_STUB IRdRotationSnapTool_SetParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdRotationSnapTool_GetSnappedAngle_Proxy( 
    IRdRotationSnapTool * This,
    /* [in] */ struct RtRotationSnappingParameters *pSnapParams,
    /* [out] */ RtVector2f *pfAngle,
    /* [out] */ RtFloat *pfWeight);


void __RPC_STUB IRdRotationSnapTool_GetSnappedAngle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdRotationSnapTool_ApplyRotationConstraints_Proxy( 
    IRdRotationSnapTool * This,
    /* [in] */ struct RtRotationSnappingParameters *pSnapParams);


void __RPC_STUB IRdRotationSnapTool_ApplyRotationConstraints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdRotationSnapTool_NotifyAngleSnapActive_Proxy( 
    IRdRotationSnapTool * This);


void __RPC_STUB IRdRotationSnapTool_NotifyAngleSnapActive_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdRotationSnapTool_NotifyAngleSnapperDeactivate_Proxy( 
    IRdRotationSnapTool * This);


void __RPC_STUB IRdRotationSnapTool_NotifyAngleSnapperDeactivate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdRotationSnapTool_HideAngleSnapMarkers_Proxy( 
    IRdRotationSnapTool * This);


void __RPC_STUB IRdRotationSnapTool_HideAngleSnapMarkers_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdRotationSnapTool_INTERFACE_DEFINED__ */


#ifndef __IRsRotationSnappingManager_INTERFACE_DEFINED__
#define __IRsRotationSnappingManager_INTERFACE_DEFINED__

/* interface IRsRotationSnappingManager */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsRotationSnappingManager;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("77CB70B6-5397-4bb6-8A28-E8FC5CB57316")
    IRsRotationSnappingManager : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE AddSnapTool( 
            /* [in] */ IRdRotationSnapTool *pSnapTool) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Setup( 
            /* [in] */ IRsNode *pViewNode,
            /* [in] */ IRsObjectList *pObjectList) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Deactivate( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HideMarkers( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetParameters( 
            /* [in] */ struct RtRotationtSnapperInfo *sp) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetSnappedAngle( 
            /* [in] */ RtVector2f *pScreenPosition,
            /* [in] */ RtVector2f *fAngle,
            /* [retval][out] */ RtVector2f *pfOutAngle) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetContinueRotationTracking( 
            /* [retval][out] */ RtBool *pbFlag) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ApplyRotationConstraints( 
            /* [in] */ RtVector2f *pScreenPosition) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetCurrentRotation( 
            /* [retval][out] */ RtVector2f *pAngles) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetCurrentView( 
            /* [retval][out] */ IRsNode **ppNode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsRotationSnappingManagerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsRotationSnappingManager * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsRotationSnappingManager * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsRotationSnappingManager * This);
        
        HRESULT ( STDMETHODCALLTYPE *AddSnapTool )( 
            IRsRotationSnappingManager * This,
            /* [in] */ IRdRotationSnapTool *pSnapTool);
        
        HRESULT ( STDMETHODCALLTYPE *Setup )( 
            IRsRotationSnappingManager * This,
            /* [in] */ IRsNode *pViewNode,
            /* [in] */ IRsObjectList *pObjectList);
        
        HRESULT ( STDMETHODCALLTYPE *Deactivate )( 
            IRsRotationSnappingManager * This);
        
        HRESULT ( STDMETHODCALLTYPE *HideMarkers )( 
            IRsRotationSnappingManager * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetParameters )( 
            IRsRotationSnappingManager * This,
            /* [in] */ struct RtRotationtSnapperInfo *sp);
        
        HRESULT ( STDMETHODCALLTYPE *GetSnappedAngle )( 
            IRsRotationSnappingManager * This,
            /* [in] */ RtVector2f *pScreenPosition,
            /* [in] */ RtVector2f *fAngle,
            /* [retval][out] */ RtVector2f *pfOutAngle);
        
        HRESULT ( STDMETHODCALLTYPE *GetContinueRotationTracking )( 
            IRsRotationSnappingManager * This,
            /* [retval][out] */ RtBool *pbFlag);
        
        HRESULT ( STDMETHODCALLTYPE *ApplyRotationConstraints )( 
            IRsRotationSnappingManager * This,
            /* [in] */ RtVector2f *pScreenPosition);
        
        HRESULT ( STDMETHODCALLTYPE *GetCurrentRotation )( 
            IRsRotationSnappingManager * This,
            /* [retval][out] */ RtVector2f *pAngles);
        
        HRESULT ( STDMETHODCALLTYPE *GetCurrentView )( 
            IRsRotationSnappingManager * This,
            /* [retval][out] */ IRsNode **ppNode);
        
        END_INTERFACE
    } IRsRotationSnappingManagerVtbl;

    interface IRsRotationSnappingManager
    {
        CONST_VTBL struct IRsRotationSnappingManagerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsRotationSnappingManager_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsRotationSnappingManager_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsRotationSnappingManager_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsRotationSnappingManager_AddSnapTool(This,pSnapTool)	\
    (This)->lpVtbl -> AddSnapTool(This,pSnapTool)

#define IRsRotationSnappingManager_Setup(This,pViewNode,pObjectList)	\
    (This)->lpVtbl -> Setup(This,pViewNode,pObjectList)

#define IRsRotationSnappingManager_Deactivate(This)	\
    (This)->lpVtbl -> Deactivate(This)

#define IRsRotationSnappingManager_HideMarkers(This)	\
    (This)->lpVtbl -> HideMarkers(This)

#define IRsRotationSnappingManager_SetParameters(This,sp)	\
    (This)->lpVtbl -> SetParameters(This,sp)

#define IRsRotationSnappingManager_GetSnappedAngle(This,pScreenPosition,fAngle,pfOutAngle)	\
    (This)->lpVtbl -> GetSnappedAngle(This,pScreenPosition,fAngle,pfOutAngle)

#define IRsRotationSnappingManager_GetContinueRotationTracking(This,pbFlag)	\
    (This)->lpVtbl -> GetContinueRotationTracking(This,pbFlag)

#define IRsRotationSnappingManager_ApplyRotationConstraints(This,pScreenPosition)	\
    (This)->lpVtbl -> ApplyRotationConstraints(This,pScreenPosition)

#define IRsRotationSnappingManager_GetCurrentRotation(This,pAngles)	\
    (This)->lpVtbl -> GetCurrentRotation(This,pAngles)

#define IRsRotationSnappingManager_GetCurrentView(This,ppNode)	\
    (This)->lpVtbl -> GetCurrentView(This,ppNode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsRotationSnappingManager_AddSnapTool_Proxy( 
    IRsRotationSnappingManager * This,
    /* [in] */ IRdRotationSnapTool *pSnapTool);


void __RPC_STUB IRsRotationSnappingManager_AddSnapTool_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsRotationSnappingManager_Setup_Proxy( 
    IRsRotationSnappingManager * This,
    /* [in] */ IRsNode *pViewNode,
    /* [in] */ IRsObjectList *pObjectList);


void __RPC_STUB IRsRotationSnappingManager_Setup_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsRotationSnappingManager_Deactivate_Proxy( 
    IRsRotationSnappingManager * This);


void __RPC_STUB IRsRotationSnappingManager_Deactivate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsRotationSnappingManager_HideMarkers_Proxy( 
    IRsRotationSnappingManager * This);


void __RPC_STUB IRsRotationSnappingManager_HideMarkers_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsRotationSnappingManager_SetParameters_Proxy( 
    IRsRotationSnappingManager * This,
    /* [in] */ struct RtRotationtSnapperInfo *sp);


void __RPC_STUB IRsRotationSnappingManager_SetParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsRotationSnappingManager_GetSnappedAngle_Proxy( 
    IRsRotationSnappingManager * This,
    /* [in] */ RtVector2f *pScreenPosition,
    /* [in] */ RtVector2f *fAngle,
    /* [retval][out] */ RtVector2f *pfOutAngle);


void __RPC_STUB IRsRotationSnappingManager_GetSnappedAngle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsRotationSnappingManager_GetContinueRotationTracking_Proxy( 
    IRsRotationSnappingManager * This,
    /* [retval][out] */ RtBool *pbFlag);


void __RPC_STUB IRsRotationSnappingManager_GetContinueRotationTracking_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsRotationSnappingManager_ApplyRotationConstraints_Proxy( 
    IRsRotationSnappingManager * This,
    /* [in] */ RtVector2f *pScreenPosition);


void __RPC_STUB IRsRotationSnappingManager_ApplyRotationConstraints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsRotationSnappingManager_GetCurrentRotation_Proxy( 
    IRsRotationSnappingManager * This,
    /* [retval][out] */ RtVector2f *pAngles);


void __RPC_STUB IRsRotationSnappingManager_GetCurrentRotation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsRotationSnappingManager_GetCurrentView_Proxy( 
    IRsRotationSnappingManager * This,
    /* [retval][out] */ IRsNode **ppNode);


void __RPC_STUB IRsRotationSnappingManager_GetCurrentView_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsRotationSnappingManager_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1346 */
/* [local] */ 


enum RtScaleSnapMode
    {	SSM_SELECTION	= 0,
	SSM_DIRECT	= 1
    } ;
struct RtScaleSnapperInfo
    {
    RtUlong dwDimension;
    RtVector3f vtAxes[ 3 ];
    RtFloat fSteps[ 3 ];
    RtVector3f ptInitialScale;
    RtPoint ptActualScale;
    RtMatrixf mCoordSys;
    RtMatrixf mCoordSysInv;
    enum RtScaleSnapMode mSelectionMode;
    RtUlong dwSkipElements;
    RtPoint ptScaleCenter;
    } ;
struct RtScaleSnappingParameters
    {
    struct RtScaleSnapperInfo *pSnapperInfo;
    RtMatrixf mCameraViewMatrix;
    RtMatrixf mCameraProjectionMatrix;
    RtMatrixf mProjectionMatrix;
    struct RtViewport tViewport;
    RtBool bTrackingEnabled;
    RtPoint ptCurrentScale;
    RtVector2f ptScreenPosition;
    RtFloat fCurrentBestWeight;
    IRsNode *pViewNode;
    IRsObjectList *pObjectList;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1346_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1346_v0_0_s_ifspec;

#ifndef __IRdScaleSnapTool_INTERFACE_DEFINED__
#define __IRdScaleSnapTool_INTERFACE_DEFINED__

/* interface IRdScaleSnapTool */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdScaleSnapTool;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3A9EAEF2-AFDB-421e-8685-05D27D922883")
    IRdScaleSnapTool : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetParameters( 
            /* [in] */ IRsNode *pViewNode,
            /* [in] */ IRsObjectList *pObjectList) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetSnappedScale( 
            /* [in] */ struct RtScaleSnappingParameters *pSnapParams,
            /* [out] */ RtPoint *pptOutScale,
            /* [out] */ RtFloat *pfWeight) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ApplyScaleConstraints( 
            /* [in] */ struct RtScaleSnappingParameters *pSnapParams) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE NotifyScaleSnapActive( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE NotifyScaleSnapperDeactivate( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HideScaleSnapMarkers( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdScaleSnapToolVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdScaleSnapTool * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdScaleSnapTool * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdScaleSnapTool * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetParameters )( 
            IRdScaleSnapTool * This,
            /* [in] */ IRsNode *pViewNode,
            /* [in] */ IRsObjectList *pObjectList);
        
        HRESULT ( STDMETHODCALLTYPE *GetSnappedScale )( 
            IRdScaleSnapTool * This,
            /* [in] */ struct RtScaleSnappingParameters *pSnapParams,
            /* [out] */ RtPoint *pptOutScale,
            /* [out] */ RtFloat *pfWeight);
        
        HRESULT ( STDMETHODCALLTYPE *ApplyScaleConstraints )( 
            IRdScaleSnapTool * This,
            /* [in] */ struct RtScaleSnappingParameters *pSnapParams);
        
        HRESULT ( STDMETHODCALLTYPE *NotifyScaleSnapActive )( 
            IRdScaleSnapTool * This);
        
        HRESULT ( STDMETHODCALLTYPE *NotifyScaleSnapperDeactivate )( 
            IRdScaleSnapTool * This);
        
        HRESULT ( STDMETHODCALLTYPE *HideScaleSnapMarkers )( 
            IRdScaleSnapTool * This);
        
        END_INTERFACE
    } IRdScaleSnapToolVtbl;

    interface IRdScaleSnapTool
    {
        CONST_VTBL struct IRdScaleSnapToolVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdScaleSnapTool_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdScaleSnapTool_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdScaleSnapTool_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdScaleSnapTool_SetParameters(This,pViewNode,pObjectList)	\
    (This)->lpVtbl -> SetParameters(This,pViewNode,pObjectList)

#define IRdScaleSnapTool_GetSnappedScale(This,pSnapParams,pptOutScale,pfWeight)	\
    (This)->lpVtbl -> GetSnappedScale(This,pSnapParams,pptOutScale,pfWeight)

#define IRdScaleSnapTool_ApplyScaleConstraints(This,pSnapParams)	\
    (This)->lpVtbl -> ApplyScaleConstraints(This,pSnapParams)

#define IRdScaleSnapTool_NotifyScaleSnapActive(This)	\
    (This)->lpVtbl -> NotifyScaleSnapActive(This)

#define IRdScaleSnapTool_NotifyScaleSnapperDeactivate(This)	\
    (This)->lpVtbl -> NotifyScaleSnapperDeactivate(This)

#define IRdScaleSnapTool_HideScaleSnapMarkers(This)	\
    (This)->lpVtbl -> HideScaleSnapMarkers(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRdScaleSnapTool_SetParameters_Proxy( 
    IRdScaleSnapTool * This,
    /* [in] */ IRsNode *pViewNode,
    /* [in] */ IRsObjectList *pObjectList);


void __RPC_STUB IRdScaleSnapTool_SetParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdScaleSnapTool_GetSnappedScale_Proxy( 
    IRdScaleSnapTool * This,
    /* [in] */ struct RtScaleSnappingParameters *pSnapParams,
    /* [out] */ RtPoint *pptOutScale,
    /* [out] */ RtFloat *pfWeight);


void __RPC_STUB IRdScaleSnapTool_GetSnappedScale_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdScaleSnapTool_ApplyScaleConstraints_Proxy( 
    IRdScaleSnapTool * This,
    /* [in] */ struct RtScaleSnappingParameters *pSnapParams);


void __RPC_STUB IRdScaleSnapTool_ApplyScaleConstraints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdScaleSnapTool_NotifyScaleSnapActive_Proxy( 
    IRdScaleSnapTool * This);


void __RPC_STUB IRdScaleSnapTool_NotifyScaleSnapActive_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdScaleSnapTool_NotifyScaleSnapperDeactivate_Proxy( 
    IRdScaleSnapTool * This);


void __RPC_STUB IRdScaleSnapTool_NotifyScaleSnapperDeactivate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdScaleSnapTool_HideScaleSnapMarkers_Proxy( 
    IRdScaleSnapTool * This);


void __RPC_STUB IRdScaleSnapTool_HideScaleSnapMarkers_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdScaleSnapTool_INTERFACE_DEFINED__ */


#ifndef __IRsScaleSnappingManager_INTERFACE_DEFINED__
#define __IRsScaleSnappingManager_INTERFACE_DEFINED__

/* interface IRsScaleSnappingManager */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsScaleSnappingManager;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("56146F91-6D47-4c9d-8635-C3F418AD2212")
    IRsScaleSnappingManager : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE AddSnapTool( 
            /* [in] */ IRdScaleSnapTool *pSnapTool) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Setup( 
            /* [in] */ IRsNode *pViewNode,
            /* [in] */ IRsObjectList *pObjectList) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Deactivate( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE HideMarkers( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetParameters( 
            /* [in] */ struct RtScaleSnapperInfo *sp) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UpdateScalingConstraints( 
            /* [in] */ RtVector2f *pScreenPosition) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetSnappedScale( 
            /* [in] */ RtVector2f *pScreenPosition,
            /* [in] */ RtVector3f *pInputScale,
            /* [retval][out] */ RtVector3f *pSnapScale) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetContinueScaleTracking( 
            /* [retval][out] */ RtBool *pbFlag) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveSoftConstraints( 
            /* [in] */ RtVector3f *pConstraints,
            /* [in] */ RtUlong dwNum) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetCurrentScale( 
            /* [retval][out] */ RtVector3f *pPos) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetCurrentView( 
            /* [retval][out] */ IRsNode **ppNode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetScaleBasis( 
            /* [out] */ RtVector3f *pvAxisX,
            /* [out] */ RtVector3f *pvAxisY,
            /* [out] */ RtVector3f *pvAxisZ) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsScaleSnappingManagerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsScaleSnappingManager * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsScaleSnappingManager * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsScaleSnappingManager * This);
        
        HRESULT ( STDMETHODCALLTYPE *AddSnapTool )( 
            IRsScaleSnappingManager * This,
            /* [in] */ IRdScaleSnapTool *pSnapTool);
        
        HRESULT ( STDMETHODCALLTYPE *Setup )( 
            IRsScaleSnappingManager * This,
            /* [in] */ IRsNode *pViewNode,
            /* [in] */ IRsObjectList *pObjectList);
        
        HRESULT ( STDMETHODCALLTYPE *Deactivate )( 
            IRsScaleSnappingManager * This);
        
        HRESULT ( STDMETHODCALLTYPE *HideMarkers )( 
            IRsScaleSnappingManager * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetParameters )( 
            IRsScaleSnappingManager * This,
            /* [in] */ struct RtScaleSnapperInfo *sp);
        
        HRESULT ( STDMETHODCALLTYPE *UpdateScalingConstraints )( 
            IRsScaleSnappingManager * This,
            /* [in] */ RtVector2f *pScreenPosition);
        
        HRESULT ( STDMETHODCALLTYPE *GetSnappedScale )( 
            IRsScaleSnappingManager * This,
            /* [in] */ RtVector2f *pScreenPosition,
            /* [in] */ RtVector3f *pInputScale,
            /* [retval][out] */ RtVector3f *pSnapScale);
        
        HRESULT ( STDMETHODCALLTYPE *GetContinueScaleTracking )( 
            IRsScaleSnappingManager * This,
            /* [retval][out] */ RtBool *pbFlag);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveSoftConstraints )( 
            IRsScaleSnappingManager * This,
            /* [in] */ RtVector3f *pConstraints,
            /* [in] */ RtUlong dwNum);
        
        HRESULT ( STDMETHODCALLTYPE *GetCurrentScale )( 
            IRsScaleSnappingManager * This,
            /* [retval][out] */ RtVector3f *pPos);
        
        HRESULT ( STDMETHODCALLTYPE *GetCurrentView )( 
            IRsScaleSnappingManager * This,
            /* [retval][out] */ IRsNode **ppNode);
        
        HRESULT ( STDMETHODCALLTYPE *GetScaleBasis )( 
            IRsScaleSnappingManager * This,
            /* [out] */ RtVector3f *pvAxisX,
            /* [out] */ RtVector3f *pvAxisY,
            /* [out] */ RtVector3f *pvAxisZ);
        
        END_INTERFACE
    } IRsScaleSnappingManagerVtbl;

    interface IRsScaleSnappingManager
    {
        CONST_VTBL struct IRsScaleSnappingManagerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsScaleSnappingManager_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsScaleSnappingManager_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsScaleSnappingManager_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsScaleSnappingManager_AddSnapTool(This,pSnapTool)	\
    (This)->lpVtbl -> AddSnapTool(This,pSnapTool)

#define IRsScaleSnappingManager_Setup(This,pViewNode,pObjectList)	\
    (This)->lpVtbl -> Setup(This,pViewNode,pObjectList)

#define IRsScaleSnappingManager_Deactivate(This)	\
    (This)->lpVtbl -> Deactivate(This)

#define IRsScaleSnappingManager_HideMarkers(This)	\
    (This)->lpVtbl -> HideMarkers(This)

#define IRsScaleSnappingManager_SetParameters(This,sp)	\
    (This)->lpVtbl -> SetParameters(This,sp)

#define IRsScaleSnappingManager_UpdateScalingConstraints(This,pScreenPosition)	\
    (This)->lpVtbl -> UpdateScalingConstraints(This,pScreenPosition)

#define IRsScaleSnappingManager_GetSnappedScale(This,pScreenPosition,pInputScale,pSnapScale)	\
    (This)->lpVtbl -> GetSnappedScale(This,pScreenPosition,pInputScale,pSnapScale)

#define IRsScaleSnappingManager_GetContinueScaleTracking(This,pbFlag)	\
    (This)->lpVtbl -> GetContinueScaleTracking(This,pbFlag)

#define IRsScaleSnappingManager_RemoveSoftConstraints(This,pConstraints,dwNum)	\
    (This)->lpVtbl -> RemoveSoftConstraints(This,pConstraints,dwNum)

#define IRsScaleSnappingManager_GetCurrentScale(This,pPos)	\
    (This)->lpVtbl -> GetCurrentScale(This,pPos)

#define IRsScaleSnappingManager_GetCurrentView(This,ppNode)	\
    (This)->lpVtbl -> GetCurrentView(This,ppNode)

#define IRsScaleSnappingManager_GetScaleBasis(This,pvAxisX,pvAxisY,pvAxisZ)	\
    (This)->lpVtbl -> GetScaleBasis(This,pvAxisX,pvAxisY,pvAxisZ)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsScaleSnappingManager_AddSnapTool_Proxy( 
    IRsScaleSnappingManager * This,
    /* [in] */ IRdScaleSnapTool *pSnapTool);


void __RPC_STUB IRsScaleSnappingManager_AddSnapTool_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsScaleSnappingManager_Setup_Proxy( 
    IRsScaleSnappingManager * This,
    /* [in] */ IRsNode *pViewNode,
    /* [in] */ IRsObjectList *pObjectList);


void __RPC_STUB IRsScaleSnappingManager_Setup_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsScaleSnappingManager_Deactivate_Proxy( 
    IRsScaleSnappingManager * This);


void __RPC_STUB IRsScaleSnappingManager_Deactivate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsScaleSnappingManager_HideMarkers_Proxy( 
    IRsScaleSnappingManager * This);


void __RPC_STUB IRsScaleSnappingManager_HideMarkers_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsScaleSnappingManager_SetParameters_Proxy( 
    IRsScaleSnappingManager * This,
    /* [in] */ struct RtScaleSnapperInfo *sp);


void __RPC_STUB IRsScaleSnappingManager_SetParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsScaleSnappingManager_UpdateScalingConstraints_Proxy( 
    IRsScaleSnappingManager * This,
    /* [in] */ RtVector2f *pScreenPosition);


void __RPC_STUB IRsScaleSnappingManager_UpdateScalingConstraints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsScaleSnappingManager_GetSnappedScale_Proxy( 
    IRsScaleSnappingManager * This,
    /* [in] */ RtVector2f *pScreenPosition,
    /* [in] */ RtVector3f *pInputScale,
    /* [retval][out] */ RtVector3f *pSnapScale);


void __RPC_STUB IRsScaleSnappingManager_GetSnappedScale_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsScaleSnappingManager_GetContinueScaleTracking_Proxy( 
    IRsScaleSnappingManager * This,
    /* [retval][out] */ RtBool *pbFlag);


void __RPC_STUB IRsScaleSnappingManager_GetContinueScaleTracking_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsScaleSnappingManager_RemoveSoftConstraints_Proxy( 
    IRsScaleSnappingManager * This,
    /* [in] */ RtVector3f *pConstraints,
    /* [in] */ RtUlong dwNum);


void __RPC_STUB IRsScaleSnappingManager_RemoveSoftConstraints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsScaleSnappingManager_GetCurrentScale_Proxy( 
    IRsScaleSnappingManager * This,
    /* [retval][out] */ RtVector3f *pPos);


void __RPC_STUB IRsScaleSnappingManager_GetCurrentScale_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsScaleSnappingManager_GetCurrentView_Proxy( 
    IRsScaleSnappingManager * This,
    /* [retval][out] */ IRsNode **ppNode);


void __RPC_STUB IRsScaleSnappingManager_GetCurrentView_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsScaleSnappingManager_GetScaleBasis_Proxy( 
    IRsScaleSnappingManager * This,
    /* [out] */ RtVector3f *pvAxisX,
    /* [out] */ RtVector3f *pvAxisY,
    /* [out] */ RtVector3f *pvAxisZ);


void __RPC_STUB IRsScaleSnappingManager_GetScaleBasis_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsScaleSnappingManager_INTERFACE_DEFINED__ */


#ifndef __IRfSnapperSet_INTERFACE_DEFINED__
#define __IRfSnapperSet_INTERFACE_DEFINED__

/* interface IRfSnapperSet */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRfSnapperSet;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DFE2875A-B14D-419D-B074-7F58E4538C22")
    IRfSnapperSet : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE CreatePositionSnappingManager( 
            /* [in] */ BSTR szSnapperName,
            /* [in] */ IRsNode *pView,
            /* [in] */ IRsObjectList *pObjectList,
            /* [in] */ IRsPositionSnappingManager **ppSnapManager) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateRotationSnappingManager( 
            /* [in] */ BSTR szSnapperName,
            /* [in] */ IRsNode *pView,
            /* [in] */ IRsObjectList *pObjectList,
            /* [in] */ IRsRotationSnappingManager **ppSnapManager) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateScaleSnappingManager( 
            /* [in] */ BSTR szSnapperName,
            /* [in] */ IRsNode *pView,
            /* [in] */ IRsObjectList *pObjectList,
            /* [in] */ IRsScaleSnappingManager **ppSnapManager) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfSnapperSetVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfSnapperSet * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfSnapperSet * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfSnapperSet * This);
        
        HRESULT ( STDMETHODCALLTYPE *CreatePositionSnappingManager )( 
            IRfSnapperSet * This,
            /* [in] */ BSTR szSnapperName,
            /* [in] */ IRsNode *pView,
            /* [in] */ IRsObjectList *pObjectList,
            /* [in] */ IRsPositionSnappingManager **ppSnapManager);
        
        HRESULT ( STDMETHODCALLTYPE *CreateRotationSnappingManager )( 
            IRfSnapperSet * This,
            /* [in] */ BSTR szSnapperName,
            /* [in] */ IRsNode *pView,
            /* [in] */ IRsObjectList *pObjectList,
            /* [in] */ IRsRotationSnappingManager **ppSnapManager);
        
        HRESULT ( STDMETHODCALLTYPE *CreateScaleSnappingManager )( 
            IRfSnapperSet * This,
            /* [in] */ BSTR szSnapperName,
            /* [in] */ IRsNode *pView,
            /* [in] */ IRsObjectList *pObjectList,
            /* [in] */ IRsScaleSnappingManager **ppSnapManager);
        
        END_INTERFACE
    } IRfSnapperSetVtbl;

    interface IRfSnapperSet
    {
        CONST_VTBL struct IRfSnapperSetVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfSnapperSet_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfSnapperSet_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfSnapperSet_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfSnapperSet_CreatePositionSnappingManager(This,szSnapperName,pView,pObjectList,ppSnapManager)	\
    (This)->lpVtbl -> CreatePositionSnappingManager(This,szSnapperName,pView,pObjectList,ppSnapManager)

#define IRfSnapperSet_CreateRotationSnappingManager(This,szSnapperName,pView,pObjectList,ppSnapManager)	\
    (This)->lpVtbl -> CreateRotationSnappingManager(This,szSnapperName,pView,pObjectList,ppSnapManager)

#define IRfSnapperSet_CreateScaleSnappingManager(This,szSnapperName,pView,pObjectList,ppSnapManager)	\
    (This)->lpVtbl -> CreateScaleSnappingManager(This,szSnapperName,pView,pObjectList,ppSnapManager)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRfSnapperSet_CreatePositionSnappingManager_Proxy( 
    IRfSnapperSet * This,
    /* [in] */ BSTR szSnapperName,
    /* [in] */ IRsNode *pView,
    /* [in] */ IRsObjectList *pObjectList,
    /* [in] */ IRsPositionSnappingManager **ppSnapManager);


void __RPC_STUB IRfSnapperSet_CreatePositionSnappingManager_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRfSnapperSet_CreateRotationSnappingManager_Proxy( 
    IRfSnapperSet * This,
    /* [in] */ BSTR szSnapperName,
    /* [in] */ IRsNode *pView,
    /* [in] */ IRsObjectList *pObjectList,
    /* [in] */ IRsRotationSnappingManager **ppSnapManager);


void __RPC_STUB IRfSnapperSet_CreateRotationSnappingManager_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRfSnapperSet_CreateScaleSnappingManager_Proxy( 
    IRfSnapperSet * This,
    /* [in] */ BSTR szSnapperName,
    /* [in] */ IRsNode *pView,
    /* [in] */ IRsObjectList *pObjectList,
    /* [in] */ IRsScaleSnappingManager **ppSnapManager);


void __RPC_STUB IRfSnapperSet_CreateScaleSnappingManager_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfSnapperSet_INTERFACE_DEFINED__ */


#ifndef __IRfWorkPlane_INTERFACE_DEFINED__
#define __IRfWorkPlane_INTERFACE_DEFINED__

/* interface IRfWorkPlane */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRfWorkPlane;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("312C6DD1-850E-4375-9C2E-1B0FB8EA49EF")
    IRfWorkPlane : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetWorkPlane( 
            /* [in] */ IRsNode *pViewNode,
            /* [in] */ RtVector2f *pPoint,
            /* [retval][out] */ RtVector4f *pWorkPlane) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfWorkPlaneVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfWorkPlane * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfWorkPlane * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfWorkPlane * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetWorkPlane )( 
            IRfWorkPlane * This,
            /* [in] */ IRsNode *pViewNode,
            /* [in] */ RtVector2f *pPoint,
            /* [retval][out] */ RtVector4f *pWorkPlane);
        
        END_INTERFACE
    } IRfWorkPlaneVtbl;

    interface IRfWorkPlane
    {
        CONST_VTBL struct IRfWorkPlaneVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfWorkPlane_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfWorkPlane_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfWorkPlane_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfWorkPlane_GetWorkPlane(This,pViewNode,pPoint,pWorkPlane)	\
    (This)->lpVtbl -> GetWorkPlane(This,pViewNode,pPoint,pWorkPlane)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRfWorkPlane_GetWorkPlane_Proxy( 
    IRfWorkPlane * This,
    /* [in] */ IRsNode *pViewNode,
    /* [in] */ RtVector2f *pPoint,
    /* [retval][out] */ RtVector4f *pWorkPlane);


void __RPC_STUB IRfWorkPlane_GetWorkPlane_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfWorkPlane_INTERFACE_DEFINED__ */


#ifndef __IRfSkeletonSet_INTERFACE_DEFINED__
#define __IRfSkeletonSet_INTERFACE_DEFINED__

/* interface IRfSkeletonSet */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRfSkeletonSet;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("52421D23-94C1-4f4e-B140-F2A05F347432")
    IRfSkeletonSet : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FindSkeletonRoot( 
            /* [in] */ IRsNode *pNode,
            /* [retval][out] */ IRsNode **ppRoot) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfSkeletonSetVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfSkeletonSet * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfSkeletonSet * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfSkeletonSet * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FindSkeletonRoot )( 
            IRfSkeletonSet * This,
            /* [in] */ IRsNode *pNode,
            /* [retval][out] */ IRsNode **ppRoot);
        
        END_INTERFACE
    } IRfSkeletonSetVtbl;

    interface IRfSkeletonSet
    {
        CONST_VTBL struct IRfSkeletonSetVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfSkeletonSet_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfSkeletonSet_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfSkeletonSet_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfSkeletonSet_FindSkeletonRoot(This,pNode,ppRoot)	\
    (This)->lpVtbl -> FindSkeletonRoot(This,pNode,ppRoot)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfSkeletonSet_FindSkeletonRoot_Proxy( 
    IRfSkeletonSet * This,
    /* [in] */ IRsNode *pNode,
    /* [retval][out] */ IRsNode **ppRoot);


void __RPC_STUB IRfSkeletonSet_FindSkeletonRoot_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfSkeletonSet_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1351 */
/* [local] */ 

struct RtVertexSelection
    {
    RtUlong uIndex;
    RtFloat fWeight;
    } ;
struct RtEdgeSelection
    {
    RtUlong uTriangleIndex;
    RtUlong uEdgeIndex;
    } ;
struct RtTriangleSelection
    {
    RtUlong uTriangleIndex;
    } ;
struct RtFaceTriangleSelection
    {
    RtUlong uTriangleIndex;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1351_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1351_v0_0_s_ifspec;

#ifndef __IRdMeshSelection_INTERFACE_DEFINED__
#define __IRdMeshSelection_INTERFACE_DEFINED__

/* interface IRdMeshSelection */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdMeshSelection;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3467603E-4A52-4CCC-80C7-55A1B4448CD4")
    IRdMeshSelection : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ClearSelection( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SelectVertex( 
            /* [in] */ RtUlong uVertexIndex,
            /* [in] */ RtFloat fWeight) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeselectVertex( 
            /* [in] */ RtUlong uVertexIndex) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddVertex( 
            /* [in] */ RtUlong uVertexIndex) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNumSelectedVertices( 
            /* [retval][out] */ RtUlong *pCount) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSelectedVertex( 
            /* [in] */ RtUlong uIndex,
            /* [out] */ struct RtVertexSelection *pSel) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeselectVertices( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SelectEdge( 
            /* [in] */ RtUlong uTriangleIndex,
            /* [in] */ RtUlong uEdgeIndex) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeselectEdge( 
            /* [in] */ RtUlong uTriangleIndex,
            /* [in] */ RtUlong uEdgeIndex) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNumSelectedEdges( 
            /* [retval][out] */ RtUlong *pCount) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSelectedEdge( 
            /* [in] */ RtUlong uIndex,
            /* [out] */ struct RtEdgeSelection *pSel) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeselectEdges( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SelectTriangle( 
            /* [in] */ RtUlong uTriangleIndex) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeselectTriangle( 
            /* [in] */ RtUlong uTriangleIndex) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNumSelectedTriangles( 
            /* [retval][out] */ RtUlong *pCount) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSelectedTriangle( 
            /* [in] */ RtUlong uIndex,
            /* [out] */ struct RtTriangleSelection *pSel) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeselectTriangles( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SelectFaceTriangle( 
            /* [in] */ RtUlong uTriangleIndex) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeselectFaceTriangle( 
            /* [in] */ RtUlong uTriangleIndex) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNumSelectedFaceTriangles( 
            /* [retval][out] */ RtUlong *pCount) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSelectedFaceTriangle( 
            /* [in] */ RtUlong uIndex,
            /* [out] */ struct RtFaceTriangleSelection *pSel) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeselectFaceTriangles( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ToggleSelection( 
            /* [in] */ IRdMeshSelection *pSelection) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddSelection( 
            /* [in] */ IRdMeshSelection *pSelection) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UpdateContextSelection( 
            /* [in] */ IRdMeshSelection *pSelection) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FilterContextSelection( 
            /* [in] */ IRdMeshSelection *pSelection) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveSelection( 
            /* [in] */ IRdMeshSelection *pSelection) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SelectionsEqual( 
            /* [in] */ IRdMeshSelection *pSelection) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE TranslateToInput( 
            /* [in] */ IRdMesh *pInputMesh,
            /* [in] */ IRdMesh *pOutputMesh) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ExtendSelection( 
            /* [in] */ IRdMesh *pInputMesh,
            /* [in] */ IRdMesh *pOutputMesh) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE TranslateToOutput( 
            /* [in] */ IRdMesh *pInputMesh,
            /* [in] */ IRdMesh *pOutputMesh) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Sort( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FillEdges( 
            /* [in] */ IRdMesh *pMesh) = 0;
        
        virtual /* [helpstring][local] */ RtBool STDMETHODCALLTYPE IsEmpty( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdMeshSelectionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdMeshSelection * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdMeshSelection * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdMeshSelection * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ClearSelection )( 
            IRdMeshSelection * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SelectVertex )( 
            IRdMeshSelection * This,
            /* [in] */ RtUlong uVertexIndex,
            /* [in] */ RtFloat fWeight);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeselectVertex )( 
            IRdMeshSelection * This,
            /* [in] */ RtUlong uVertexIndex);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddVertex )( 
            IRdMeshSelection * This,
            /* [in] */ RtUlong uVertexIndex);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNumSelectedVertices )( 
            IRdMeshSelection * This,
            /* [retval][out] */ RtUlong *pCount);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSelectedVertex )( 
            IRdMeshSelection * This,
            /* [in] */ RtUlong uIndex,
            /* [out] */ struct RtVertexSelection *pSel);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeselectVertices )( 
            IRdMeshSelection * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SelectEdge )( 
            IRdMeshSelection * This,
            /* [in] */ RtUlong uTriangleIndex,
            /* [in] */ RtUlong uEdgeIndex);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeselectEdge )( 
            IRdMeshSelection * This,
            /* [in] */ RtUlong uTriangleIndex,
            /* [in] */ RtUlong uEdgeIndex);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNumSelectedEdges )( 
            IRdMeshSelection * This,
            /* [retval][out] */ RtUlong *pCount);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSelectedEdge )( 
            IRdMeshSelection * This,
            /* [in] */ RtUlong uIndex,
            /* [out] */ struct RtEdgeSelection *pSel);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeselectEdges )( 
            IRdMeshSelection * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SelectTriangle )( 
            IRdMeshSelection * This,
            /* [in] */ RtUlong uTriangleIndex);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeselectTriangle )( 
            IRdMeshSelection * This,
            /* [in] */ RtUlong uTriangleIndex);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNumSelectedTriangles )( 
            IRdMeshSelection * This,
            /* [retval][out] */ RtUlong *pCount);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSelectedTriangle )( 
            IRdMeshSelection * This,
            /* [in] */ RtUlong uIndex,
            /* [out] */ struct RtTriangleSelection *pSel);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeselectTriangles )( 
            IRdMeshSelection * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SelectFaceTriangle )( 
            IRdMeshSelection * This,
            /* [in] */ RtUlong uTriangleIndex);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeselectFaceTriangle )( 
            IRdMeshSelection * This,
            /* [in] */ RtUlong uTriangleIndex);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNumSelectedFaceTriangles )( 
            IRdMeshSelection * This,
            /* [retval][out] */ RtUlong *pCount);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSelectedFaceTriangle )( 
            IRdMeshSelection * This,
            /* [in] */ RtUlong uIndex,
            /* [out] */ struct RtFaceTriangleSelection *pSel);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeselectFaceTriangles )( 
            IRdMeshSelection * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ToggleSelection )( 
            IRdMeshSelection * This,
            /* [in] */ IRdMeshSelection *pSelection);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddSelection )( 
            IRdMeshSelection * This,
            /* [in] */ IRdMeshSelection *pSelection);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UpdateContextSelection )( 
            IRdMeshSelection * This,
            /* [in] */ IRdMeshSelection *pSelection);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FilterContextSelection )( 
            IRdMeshSelection * This,
            /* [in] */ IRdMeshSelection *pSelection);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveSelection )( 
            IRdMeshSelection * This,
            /* [in] */ IRdMeshSelection *pSelection);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SelectionsEqual )( 
            IRdMeshSelection * This,
            /* [in] */ IRdMeshSelection *pSelection);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *TranslateToInput )( 
            IRdMeshSelection * This,
            /* [in] */ IRdMesh *pInputMesh,
            /* [in] */ IRdMesh *pOutputMesh);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ExtendSelection )( 
            IRdMeshSelection * This,
            /* [in] */ IRdMesh *pInputMesh,
            /* [in] */ IRdMesh *pOutputMesh);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *TranslateToOutput )( 
            IRdMeshSelection * This,
            /* [in] */ IRdMesh *pInputMesh,
            /* [in] */ IRdMesh *pOutputMesh);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Sort )( 
            IRdMeshSelection * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FillEdges )( 
            IRdMeshSelection * This,
            /* [in] */ IRdMesh *pMesh);
        
        /* [helpstring][local] */ RtBool ( STDMETHODCALLTYPE *IsEmpty )( 
            IRdMeshSelection * This);
        
        END_INTERFACE
    } IRdMeshSelectionVtbl;

    interface IRdMeshSelection
    {
        CONST_VTBL struct IRdMeshSelectionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdMeshSelection_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdMeshSelection_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdMeshSelection_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdMeshSelection_ClearSelection(This)	\
    (This)->lpVtbl -> ClearSelection(This)

#define IRdMeshSelection_SelectVertex(This,uVertexIndex,fWeight)	\
    (This)->lpVtbl -> SelectVertex(This,uVertexIndex,fWeight)

#define IRdMeshSelection_DeselectVertex(This,uVertexIndex)	\
    (This)->lpVtbl -> DeselectVertex(This,uVertexIndex)

#define IRdMeshSelection_AddVertex(This,uVertexIndex)	\
    (This)->lpVtbl -> AddVertex(This,uVertexIndex)

#define IRdMeshSelection_GetNumSelectedVertices(This,pCount)	\
    (This)->lpVtbl -> GetNumSelectedVertices(This,pCount)

#define IRdMeshSelection_GetSelectedVertex(This,uIndex,pSel)	\
    (This)->lpVtbl -> GetSelectedVertex(This,uIndex,pSel)

#define IRdMeshSelection_DeselectVertices(This)	\
    (This)->lpVtbl -> DeselectVertices(This)

#define IRdMeshSelection_SelectEdge(This,uTriangleIndex,uEdgeIndex)	\
    (This)->lpVtbl -> SelectEdge(This,uTriangleIndex,uEdgeIndex)

#define IRdMeshSelection_DeselectEdge(This,uTriangleIndex,uEdgeIndex)	\
    (This)->lpVtbl -> DeselectEdge(This,uTriangleIndex,uEdgeIndex)

#define IRdMeshSelection_GetNumSelectedEdges(This,pCount)	\
    (This)->lpVtbl -> GetNumSelectedEdges(This,pCount)

#define IRdMeshSelection_GetSelectedEdge(This,uIndex,pSel)	\
    (This)->lpVtbl -> GetSelectedEdge(This,uIndex,pSel)

#define IRdMeshSelection_DeselectEdges(This)	\
    (This)->lpVtbl -> DeselectEdges(This)

#define IRdMeshSelection_SelectTriangle(This,uTriangleIndex)	\
    (This)->lpVtbl -> SelectTriangle(This,uTriangleIndex)

#define IRdMeshSelection_DeselectTriangle(This,uTriangleIndex)	\
    (This)->lpVtbl -> DeselectTriangle(This,uTriangleIndex)

#define IRdMeshSelection_GetNumSelectedTriangles(This,pCount)	\
    (This)->lpVtbl -> GetNumSelectedTriangles(This,pCount)

#define IRdMeshSelection_GetSelectedTriangle(This,uIndex,pSel)	\
    (This)->lpVtbl -> GetSelectedTriangle(This,uIndex,pSel)

#define IRdMeshSelection_DeselectTriangles(This)	\
    (This)->lpVtbl -> DeselectTriangles(This)

#define IRdMeshSelection_SelectFaceTriangle(This,uTriangleIndex)	\
    (This)->lpVtbl -> SelectFaceTriangle(This,uTriangleIndex)

#define IRdMeshSelection_DeselectFaceTriangle(This,uTriangleIndex)	\
    (This)->lpVtbl -> DeselectFaceTriangle(This,uTriangleIndex)

#define IRdMeshSelection_GetNumSelectedFaceTriangles(This,pCount)	\
    (This)->lpVtbl -> GetNumSelectedFaceTriangles(This,pCount)

#define IRdMeshSelection_GetSelectedFaceTriangle(This,uIndex,pSel)	\
    (This)->lpVtbl -> GetSelectedFaceTriangle(This,uIndex,pSel)

#define IRdMeshSelection_DeselectFaceTriangles(This)	\
    (This)->lpVtbl -> DeselectFaceTriangles(This)

#define IRdMeshSelection_ToggleSelection(This,pSelection)	\
    (This)->lpVtbl -> ToggleSelection(This,pSelection)

#define IRdMeshSelection_AddSelection(This,pSelection)	\
    (This)->lpVtbl -> AddSelection(This,pSelection)

#define IRdMeshSelection_UpdateContextSelection(This,pSelection)	\
    (This)->lpVtbl -> UpdateContextSelection(This,pSelection)

#define IRdMeshSelection_FilterContextSelection(This,pSelection)	\
    (This)->lpVtbl -> FilterContextSelection(This,pSelection)

#define IRdMeshSelection_RemoveSelection(This,pSelection)	\
    (This)->lpVtbl -> RemoveSelection(This,pSelection)

#define IRdMeshSelection_SelectionsEqual(This,pSelection)	\
    (This)->lpVtbl -> SelectionsEqual(This,pSelection)

#define IRdMeshSelection_TranslateToInput(This,pInputMesh,pOutputMesh)	\
    (This)->lpVtbl -> TranslateToInput(This,pInputMesh,pOutputMesh)

#define IRdMeshSelection_ExtendSelection(This,pInputMesh,pOutputMesh)	\
    (This)->lpVtbl -> ExtendSelection(This,pInputMesh,pOutputMesh)

#define IRdMeshSelection_TranslateToOutput(This,pInputMesh,pOutputMesh)	\
    (This)->lpVtbl -> TranslateToOutput(This,pInputMesh,pOutputMesh)

#define IRdMeshSelection_Sort(This)	\
    (This)->lpVtbl -> Sort(This)

#define IRdMeshSelection_FillEdges(This,pMesh)	\
    (This)->lpVtbl -> FillEdges(This,pMesh)

#define IRdMeshSelection_IsEmpty(This)	\
    (This)->lpVtbl -> IsEmpty(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_ClearSelection_Proxy( 
    IRdMeshSelection * This);


void __RPC_STUB IRdMeshSelection_ClearSelection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_SelectVertex_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ RtUlong uVertexIndex,
    /* [in] */ RtFloat fWeight);


void __RPC_STUB IRdMeshSelection_SelectVertex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_DeselectVertex_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ RtUlong uVertexIndex);


void __RPC_STUB IRdMeshSelection_DeselectVertex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_AddVertex_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ RtUlong uVertexIndex);


void __RPC_STUB IRdMeshSelection_AddVertex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_GetNumSelectedVertices_Proxy( 
    IRdMeshSelection * This,
    /* [retval][out] */ RtUlong *pCount);


void __RPC_STUB IRdMeshSelection_GetNumSelectedVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_GetSelectedVertex_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ RtUlong uIndex,
    /* [out] */ struct RtVertexSelection *pSel);


void __RPC_STUB IRdMeshSelection_GetSelectedVertex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_DeselectVertices_Proxy( 
    IRdMeshSelection * This);


void __RPC_STUB IRdMeshSelection_DeselectVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_SelectEdge_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ RtUlong uTriangleIndex,
    /* [in] */ RtUlong uEdgeIndex);


void __RPC_STUB IRdMeshSelection_SelectEdge_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_DeselectEdge_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ RtUlong uTriangleIndex,
    /* [in] */ RtUlong uEdgeIndex);


void __RPC_STUB IRdMeshSelection_DeselectEdge_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_GetNumSelectedEdges_Proxy( 
    IRdMeshSelection * This,
    /* [retval][out] */ RtUlong *pCount);


void __RPC_STUB IRdMeshSelection_GetNumSelectedEdges_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_GetSelectedEdge_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ RtUlong uIndex,
    /* [out] */ struct RtEdgeSelection *pSel);


void __RPC_STUB IRdMeshSelection_GetSelectedEdge_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_DeselectEdges_Proxy( 
    IRdMeshSelection * This);


void __RPC_STUB IRdMeshSelection_DeselectEdges_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_SelectTriangle_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ RtUlong uTriangleIndex);


void __RPC_STUB IRdMeshSelection_SelectTriangle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_DeselectTriangle_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ RtUlong uTriangleIndex);


void __RPC_STUB IRdMeshSelection_DeselectTriangle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_GetNumSelectedTriangles_Proxy( 
    IRdMeshSelection * This,
    /* [retval][out] */ RtUlong *pCount);


void __RPC_STUB IRdMeshSelection_GetNumSelectedTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_GetSelectedTriangle_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ RtUlong uIndex,
    /* [out] */ struct RtTriangleSelection *pSel);


void __RPC_STUB IRdMeshSelection_GetSelectedTriangle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_DeselectTriangles_Proxy( 
    IRdMeshSelection * This);


void __RPC_STUB IRdMeshSelection_DeselectTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_SelectFaceTriangle_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ RtUlong uTriangleIndex);


void __RPC_STUB IRdMeshSelection_SelectFaceTriangle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_DeselectFaceTriangle_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ RtUlong uTriangleIndex);


void __RPC_STUB IRdMeshSelection_DeselectFaceTriangle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_GetNumSelectedFaceTriangles_Proxy( 
    IRdMeshSelection * This,
    /* [retval][out] */ RtUlong *pCount);


void __RPC_STUB IRdMeshSelection_GetNumSelectedFaceTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_GetSelectedFaceTriangle_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ RtUlong uIndex,
    /* [out] */ struct RtFaceTriangleSelection *pSel);


void __RPC_STUB IRdMeshSelection_GetSelectedFaceTriangle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_DeselectFaceTriangles_Proxy( 
    IRdMeshSelection * This);


void __RPC_STUB IRdMeshSelection_DeselectFaceTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_ToggleSelection_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ IRdMeshSelection *pSelection);


void __RPC_STUB IRdMeshSelection_ToggleSelection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_AddSelection_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ IRdMeshSelection *pSelection);


void __RPC_STUB IRdMeshSelection_AddSelection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_UpdateContextSelection_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ IRdMeshSelection *pSelection);


void __RPC_STUB IRdMeshSelection_UpdateContextSelection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_FilterContextSelection_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ IRdMeshSelection *pSelection);


void __RPC_STUB IRdMeshSelection_FilterContextSelection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_RemoveSelection_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ IRdMeshSelection *pSelection);


void __RPC_STUB IRdMeshSelection_RemoveSelection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_SelectionsEqual_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ IRdMeshSelection *pSelection);


void __RPC_STUB IRdMeshSelection_SelectionsEqual_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_TranslateToInput_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ IRdMesh *pInputMesh,
    /* [in] */ IRdMesh *pOutputMesh);


void __RPC_STUB IRdMeshSelection_TranslateToInput_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_ExtendSelection_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ IRdMesh *pInputMesh,
    /* [in] */ IRdMesh *pOutputMesh);


void __RPC_STUB IRdMeshSelection_ExtendSelection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_TranslateToOutput_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ IRdMesh *pInputMesh,
    /* [in] */ IRdMesh *pOutputMesh);


void __RPC_STUB IRdMeshSelection_TranslateToOutput_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_Sort_Proxy( 
    IRdMeshSelection * This);


void __RPC_STUB IRdMeshSelection_Sort_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMeshSelection_FillEdges_Proxy( 
    IRdMeshSelection * This,
    /* [in] */ IRdMesh *pMesh);


void __RPC_STUB IRdMeshSelection_FillEdges_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][local] */ RtBool STDMETHODCALLTYPE IRdMeshSelection_IsEmpty_Proxy( 
    IRdMeshSelection * This);


void __RPC_STUB IRdMeshSelection_IsEmpty_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdMeshSelection_INTERFACE_DEFINED__ */


#ifndef __IRdMeshSelectionDisp_INTERFACE_DEFINED__
#define __IRdMeshSelectionDisp_INTERFACE_DEFINED__

/* interface IRdMeshSelectionDisp */
/* [object][unique][helpstring][uuid][dual] */ 


EXTERN_C const IID IID_IRdMeshSelectionDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("C5818A49-C56F-47a8-BA9A-A1A987C76F88")
    IRdMeshSelectionDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ClearSelection( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SelectVertex( 
            /* [in] */ RtUlong uVertexIndex,
            /* [in] */ RtFloat fWeight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeselectVertex( 
            /* [in] */ RtUlong uVertexIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumSelectedVertices( 
            /* [retval][out] */ RtUlong *pCount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSelectedVertexIndex( 
            /* [in] */ RtUlong uIndex,
            /* [retval][out] */ RtUlong *pdwIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSelectedVertexWeight( 
            /* [in] */ RtUlong uIndex,
            /* [retval][out] */ RtFloat *pfWeight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeselectVertices( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SelectEdge( 
            /* [in] */ RtUlong uTriangleIndex,
            /* [in] */ RtUlong uEdgeIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeselectEdge( 
            /* [in] */ RtUlong uTriangleIndex,
            /* [in] */ RtUlong uEdgeIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumSelectedEdges( 
            /* [retval][out] */ RtUlong *pCount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSelectedEdge( 
            /* [in] */ RtUlong uIndex,
            /* [retval][out] */ RtUlong *pdwEdgeIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeselectEdges( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SelectTriangle( 
            /* [in] */ RtUlong uTriangleIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeselectTriangle( 
            /* [in] */ RtUlong uTriangleIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumSelectedTriangles( 
            /* [retval][out] */ RtUlong *pCount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSelectedTriangle( 
            /* [in] */ RtUlong uIndex,
            /* [retval][out] */ RtUlong *pdwSel) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeselectTriangles( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SelectFaceTriangle( 
            /* [in] */ RtUlong uTriangleIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeselectFaceTriangle( 
            /* [in] */ RtUlong uTriangleIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumSelectedFaceTriangles( 
            /* [retval][out] */ RtUlong *pCount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSelectedFaceTriangle( 
            /* [in] */ RtUlong uIndex,
            /* [out] */ RtUlong *pSel) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DeselectFaceTriangles( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Sort( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdMeshSelectionDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdMeshSelectionDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdMeshSelectionDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdMeshSelectionDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdMeshSelectionDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdMeshSelectionDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdMeshSelectionDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdMeshSelectionDisp * 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 *ClearSelection )( 
            IRdMeshSelectionDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SelectVertex )( 
            IRdMeshSelectionDisp * This,
            /* [in] */ RtUlong uVertexIndex,
            /* [in] */ RtFloat fWeight);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeselectVertex )( 
            IRdMeshSelectionDisp * This,
            /* [in] */ RtUlong uVertexIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNumSelectedVertices )( 
            IRdMeshSelectionDisp * This,
            /* [retval][out] */ RtUlong *pCount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSelectedVertexIndex )( 
            IRdMeshSelectionDisp * This,
            /* [in] */ RtUlong uIndex,
            /* [retval][out] */ RtUlong *pdwIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSelectedVertexWeight )( 
            IRdMeshSelectionDisp * This,
            /* [in] */ RtUlong uIndex,
            /* [retval][out] */ RtFloat *pfWeight);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeselectVertices )( 
            IRdMeshSelectionDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SelectEdge )( 
            IRdMeshSelectionDisp * This,
            /* [in] */ RtUlong uTriangleIndex,
            /* [in] */ RtUlong uEdgeIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeselectEdge )( 
            IRdMeshSelectionDisp * This,
            /* [in] */ RtUlong uTriangleIndex,
            /* [in] */ RtUlong uEdgeIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNumSelectedEdges )( 
            IRdMeshSelectionDisp * This,
            /* [retval][out] */ RtUlong *pCount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSelectedEdge )( 
            IRdMeshSelectionDisp * This,
            /* [in] */ RtUlong uIndex,
            /* [retval][out] */ RtUlong *pdwEdgeIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeselectEdges )( 
            IRdMeshSelectionDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SelectTriangle )( 
            IRdMeshSelectionDisp * This,
            /* [in] */ RtUlong uTriangleIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeselectTriangle )( 
            IRdMeshSelectionDisp * This,
            /* [in] */ RtUlong uTriangleIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNumSelectedTriangles )( 
            IRdMeshSelectionDisp * This,
            /* [retval][out] */ RtUlong *pCount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSelectedTriangle )( 
            IRdMeshSelectionDisp * This,
            /* [in] */ RtUlong uIndex,
            /* [retval][out] */ RtUlong *pdwSel);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeselectTriangles )( 
            IRdMeshSelectionDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SelectFaceTriangle )( 
            IRdMeshSelectionDisp * This,
            /* [in] */ RtUlong uTriangleIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeselectFaceTriangle )( 
            IRdMeshSelectionDisp * This,
            /* [in] */ RtUlong uTriangleIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNumSelectedFaceTriangles )( 
            IRdMeshSelectionDisp * This,
            /* [retval][out] */ RtUlong *pCount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSelectedFaceTriangle )( 
            IRdMeshSelectionDisp * This,
            /* [in] */ RtUlong uIndex,
            /* [out] */ RtUlong *pSel);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DeselectFaceTriangles )( 
            IRdMeshSelectionDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Sort )( 
            IRdMeshSelectionDisp * This);
        
        END_INTERFACE
    } IRdMeshSelectionDispVtbl;

    interface IRdMeshSelectionDisp
    {
        CONST_VTBL struct IRdMeshSelectionDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdMeshSelectionDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdMeshSelectionDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdMeshSelectionDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdMeshSelectionDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdMeshSelectionDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdMeshSelectionDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdMeshSelectionDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdMeshSelectionDisp_ClearSelection(This)	\
    (This)->lpVtbl -> ClearSelection(This)

#define IRdMeshSelectionDisp_SelectVertex(This,uVertexIndex,fWeight)	\
    (This)->lpVtbl -> SelectVertex(This,uVertexIndex,fWeight)

#define IRdMeshSelectionDisp_DeselectVertex(This,uVertexIndex)	\
    (This)->lpVtbl -> DeselectVertex(This,uVertexIndex)

#define IRdMeshSelectionDisp_GetNumSelectedVertices(This,pCount)	\
    (This)->lpVtbl -> GetNumSelectedVertices(This,pCount)

#define IRdMeshSelectionDisp_GetSelectedVertexIndex(This,uIndex,pdwIndex)	\
    (This)->lpVtbl -> GetSelectedVertexIndex(This,uIndex,pdwIndex)

#define IRdMeshSelectionDisp_GetSelectedVertexWeight(This,uIndex,pfWeight)	\
    (This)->lpVtbl -> GetSelectedVertexWeight(This,uIndex,pfWeight)

#define IRdMeshSelectionDisp_DeselectVertices(This)	\
    (This)->lpVtbl -> DeselectVertices(This)

#define IRdMeshSelectionDisp_SelectEdge(This,uTriangleIndex,uEdgeIndex)	\
    (This)->lpVtbl -> SelectEdge(This,uTriangleIndex,uEdgeIndex)

#define IRdMeshSelectionDisp_DeselectEdge(This,uTriangleIndex,uEdgeIndex)	\
    (This)->lpVtbl -> DeselectEdge(This,uTriangleIndex,uEdgeIndex)

#define IRdMeshSelectionDisp_GetNumSelectedEdges(This,pCount)	\
    (This)->lpVtbl -> GetNumSelectedEdges(This,pCount)

#define IRdMeshSelectionDisp_GetSelectedEdge(This,uIndex,pdwEdgeIndex)	\
    (This)->lpVtbl -> GetSelectedEdge(This,uIndex,pdwEdgeIndex)

#define IRdMeshSelectionDisp_DeselectEdges(This)	\
    (This)->lpVtbl -> DeselectEdges(This)

#define IRdMeshSelectionDisp_SelectTriangle(This,uTriangleIndex)	\
    (This)->lpVtbl -> SelectTriangle(This,uTriangleIndex)

#define IRdMeshSelectionDisp_DeselectTriangle(This,uTriangleIndex)	\
    (This)->lpVtbl -> DeselectTriangle(This,uTriangleIndex)

#define IRdMeshSelectionDisp_GetNumSelectedTriangles(This,pCount)	\
    (This)->lpVtbl -> GetNumSelectedTriangles(This,pCount)

#define IRdMeshSelectionDisp_GetSelectedTriangle(This,uIndex,pdwSel)	\
    (This)->lpVtbl -> GetSelectedTriangle(This,uIndex,pdwSel)

#define IRdMeshSelectionDisp_DeselectTriangles(This)	\
    (This)->lpVtbl -> DeselectTriangles(This)

#define IRdMeshSelectionDisp_SelectFaceTriangle(This,uTriangleIndex)	\
    (This)->lpVtbl -> SelectFaceTriangle(This,uTriangleIndex)

#define IRdMeshSelectionDisp_DeselectFaceTriangle(This,uTriangleIndex)	\
    (This)->lpVtbl -> DeselectFaceTriangle(This,uTriangleIndex)

#define IRdMeshSelectionDisp_GetNumSelectedFaceTriangles(This,pCount)	\
    (This)->lpVtbl -> GetNumSelectedFaceTriangles(This,pCount)

#define IRdMeshSelectionDisp_GetSelectedFaceTriangle(This,uIndex,pSel)	\
    (This)->lpVtbl -> GetSelectedFaceTriangle(This,uIndex,pSel)

#define IRdMeshSelectionDisp_DeselectFaceTriangles(This)	\
    (This)->lpVtbl -> DeselectFaceTriangles(This)

#define IRdMeshSelectionDisp_Sort(This)	\
    (This)->lpVtbl -> Sort(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_ClearSelection_Proxy( 
    IRdMeshSelectionDisp * This);


void __RPC_STUB IRdMeshSelectionDisp_ClearSelection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_SelectVertex_Proxy( 
    IRdMeshSelectionDisp * This,
    /* [in] */ RtUlong uVertexIndex,
    /* [in] */ RtFloat fWeight);


void __RPC_STUB IRdMeshSelectionDisp_SelectVertex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_DeselectVertex_Proxy( 
    IRdMeshSelectionDisp * This,
    /* [in] */ RtUlong uVertexIndex);


void __RPC_STUB IRdMeshSelectionDisp_DeselectVertex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_GetNumSelectedVertices_Proxy( 
    IRdMeshSelectionDisp * This,
    /* [retval][out] */ RtUlong *pCount);


void __RPC_STUB IRdMeshSelectionDisp_GetNumSelectedVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_GetSelectedVertexIndex_Proxy( 
    IRdMeshSelectionDisp * This,
    /* [in] */ RtUlong uIndex,
    /* [retval][out] */ RtUlong *pdwIndex);


void __RPC_STUB IRdMeshSelectionDisp_GetSelectedVertexIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_GetSelectedVertexWeight_Proxy( 
    IRdMeshSelectionDisp * This,
    /* [in] */ RtUlong uIndex,
    /* [retval][out] */ RtFloat *pfWeight);


void __RPC_STUB IRdMeshSelectionDisp_GetSelectedVertexWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_DeselectVertices_Proxy( 
    IRdMeshSelectionDisp * This);


void __RPC_STUB IRdMeshSelectionDisp_DeselectVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_SelectEdge_Proxy( 
    IRdMeshSelectionDisp * This,
    /* [in] */ RtUlong uTriangleIndex,
    /* [in] */ RtUlong uEdgeIndex);


void __RPC_STUB IRdMeshSelectionDisp_SelectEdge_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_DeselectEdge_Proxy( 
    IRdMeshSelectionDisp * This,
    /* [in] */ RtUlong uTriangleIndex,
    /* [in] */ RtUlong uEdgeIndex);


void __RPC_STUB IRdMeshSelectionDisp_DeselectEdge_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_GetNumSelectedEdges_Proxy( 
    IRdMeshSelectionDisp * This,
    /* [retval][out] */ RtUlong *pCount);


void __RPC_STUB IRdMeshSelectionDisp_GetNumSelectedEdges_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_GetSelectedEdge_Proxy( 
    IRdMeshSelectionDisp * This,
    /* [in] */ RtUlong uIndex,
    /* [retval][out] */ RtUlong *pdwEdgeIndex);


void __RPC_STUB IRdMeshSelectionDisp_GetSelectedEdge_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_DeselectEdges_Proxy( 
    IRdMeshSelectionDisp * This);


void __RPC_STUB IRdMeshSelectionDisp_DeselectEdges_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_SelectTriangle_Proxy( 
    IRdMeshSelectionDisp * This,
    /* [in] */ RtUlong uTriangleIndex);


void __RPC_STUB IRdMeshSelectionDisp_SelectTriangle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_DeselectTriangle_Proxy( 
    IRdMeshSelectionDisp * This,
    /* [in] */ RtUlong uTriangleIndex);


void __RPC_STUB IRdMeshSelectionDisp_DeselectTriangle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_GetNumSelectedTriangles_Proxy( 
    IRdMeshSelectionDisp * This,
    /* [retval][out] */ RtUlong *pCount);


void __RPC_STUB IRdMeshSelectionDisp_GetNumSelectedTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_GetSelectedTriangle_Proxy( 
    IRdMeshSelectionDisp * This,
    /* [in] */ RtUlong uIndex,
    /* [retval][out] */ RtUlong *pdwSel);


void __RPC_STUB IRdMeshSelectionDisp_GetSelectedTriangle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_DeselectTriangles_Proxy( 
    IRdMeshSelectionDisp * This);


void __RPC_STUB IRdMeshSelectionDisp_DeselectTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_SelectFaceTriangle_Proxy( 
    IRdMeshSelectionDisp * This,
    /* [in] */ RtUlong uTriangleIndex);


void __RPC_STUB IRdMeshSelectionDisp_SelectFaceTriangle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_DeselectFaceTriangle_Proxy( 
    IRdMeshSelectionDisp * This,
    /* [in] */ RtUlong uTriangleIndex);


void __RPC_STUB IRdMeshSelectionDisp_DeselectFaceTriangle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_GetNumSelectedFaceTriangles_Proxy( 
    IRdMeshSelectionDisp * This,
    /* [retval][out] */ RtUlong *pCount);


void __RPC_STUB IRdMeshSelectionDisp_GetNumSelectedFaceTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_GetSelectedFaceTriangle_Proxy( 
    IRdMeshSelectionDisp * This,
    /* [in] */ RtUlong uIndex,
    /* [out] */ RtUlong *pSel);


void __RPC_STUB IRdMeshSelectionDisp_GetSelectedFaceTriangle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_DeselectFaceTriangles_Proxy( 
    IRdMeshSelectionDisp * This);


void __RPC_STUB IRdMeshSelectionDisp_DeselectFaceTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMeshSelectionDisp_Sort_Proxy( 
    IRdMeshSelectionDisp * This);


void __RPC_STUB IRdMeshSelectionDisp_Sort_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdMeshSelectionDisp_INTERFACE_DEFINED__ */


#ifndef __IRfEditableMeshSet_INTERFACE_DEFINED__
#define __IRfEditableMeshSet_INTERFACE_DEFINED__

/* interface IRfEditableMeshSet */
/* [unique][helpstring][uuid][local][object] */ 


EXTERN_C const IID IID_IRfEditableMeshSet;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4C0794AD-B857-4854-A132-C87ECEF20FA2")
    IRfEditableMeshSet : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetMaximalNeighborhood( 
            /* [in] */ IRsNode *pNode,
            /* [in] */ IRsNode *pMeshModifier,
            /* [in] */ RtUlong *pdwMaxNeighborhood) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ComputeOutputMesh( 
            /* [in] */ IRsNode *pNode,
            /* [in] */ IRsNode *pMeshModifier,
            /* [in] */ IRdMeshSelection *pSelection,
            /* [in] */ IRdMesh *pMeshIn,
            /* [retval][out] */ IRdMesh **pMeshOut) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE InjectSelectionStreams( 
            /* [in] */ IRdMeshSelection *pSelection,
            /* [out][in] */ IRdMesh *pMesh) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetEditableMesh( 
            /* [in] */ IRsNode *pEncaps,
            /* [retval][out] */ IRsNode **ppEditableMeshNode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ConvertToEditableMesh( 
            /* [in] */ IRsNode *pEncaps,
            /* [retval][out] */ IRsNode **ppEditableMeshNode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CheckProceduralMesh( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMeshControlNode( 
            /* [in] */ IRsNode *pStartNode,
            /* [retval][out] */ IRsNode **ppMeshSource) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveSelectionStreams( 
            /* [out][in] */ IRdMesh *pMesh) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfEditableMeshSetVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfEditableMeshSet * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfEditableMeshSet * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfEditableMeshSet * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetMaximalNeighborhood )( 
            IRfEditableMeshSet * This,
            /* [in] */ IRsNode *pNode,
            /* [in] */ IRsNode *pMeshModifier,
            /* [in] */ RtUlong *pdwMaxNeighborhood);
        
        HRESULT ( STDMETHODCALLTYPE *ComputeOutputMesh )( 
            IRfEditableMeshSet * This,
            /* [in] */ IRsNode *pNode,
            /* [in] */ IRsNode *pMeshModifier,
            /* [in] */ IRdMeshSelection *pSelection,
            /* [in] */ IRdMesh *pMeshIn,
            /* [retval][out] */ IRdMesh **pMeshOut);
        
        HRESULT ( STDMETHODCALLTYPE *InjectSelectionStreams )( 
            IRfEditableMeshSet * This,
            /* [in] */ IRdMeshSelection *pSelection,
            /* [out][in] */ IRdMesh *pMesh);
        
        HRESULT ( STDMETHODCALLTYPE *GetEditableMesh )( 
            IRfEditableMeshSet * This,
            /* [in] */ IRsNode *pEncaps,
            /* [retval][out] */ IRsNode **ppEditableMeshNode);
        
        HRESULT ( STDMETHODCALLTYPE *ConvertToEditableMesh )( 
            IRfEditableMeshSet * This,
            /* [in] */ IRsNode *pEncaps,
            /* [retval][out] */ IRsNode **ppEditableMeshNode);
        
        HRESULT ( STDMETHODCALLTYPE *CheckProceduralMesh )( 
            IRfEditableMeshSet * This,
            /* [in] */ IRsNode *pNode);
        
        HRESULT ( STDMETHODCALLTYPE *GetMeshControlNode )( 
            IRfEditableMeshSet * This,
            /* [in] */ IRsNode *pStartNode,
            /* [retval][out] */ IRsNode **ppMeshSource);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveSelectionStreams )( 
            IRfEditableMeshSet * This,
            /* [out][in] */ IRdMesh *pMesh);
        
        END_INTERFACE
    } IRfEditableMeshSetVtbl;

    interface IRfEditableMeshSet
    {
        CONST_VTBL struct IRfEditableMeshSetVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfEditableMeshSet_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfEditableMeshSet_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfEditableMeshSet_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfEditableMeshSet_GetMaximalNeighborhood(This,pNode,pMeshModifier,pdwMaxNeighborhood)	\
    (This)->lpVtbl -> GetMaximalNeighborhood(This,pNode,pMeshModifier,pdwMaxNeighborhood)

#define IRfEditableMeshSet_ComputeOutputMesh(This,pNode,pMeshModifier,pSelection,pMeshIn,pMeshOut)	\
    (This)->lpVtbl -> ComputeOutputMesh(This,pNode,pMeshModifier,pSelection,pMeshIn,pMeshOut)

#define IRfEditableMeshSet_InjectSelectionStreams(This,pSelection,pMesh)	\
    (This)->lpVtbl -> InjectSelectionStreams(This,pSelection,pMesh)

#define IRfEditableMeshSet_GetEditableMesh(This,pEncaps,ppEditableMeshNode)	\
    (This)->lpVtbl -> GetEditableMesh(This,pEncaps,ppEditableMeshNode)

#define IRfEditableMeshSet_ConvertToEditableMesh(This,pEncaps,ppEditableMeshNode)	\
    (This)->lpVtbl -> ConvertToEditableMesh(This,pEncaps,ppEditableMeshNode)

#define IRfEditableMeshSet_CheckProceduralMesh(This,pNode)	\
    (This)->lpVtbl -> CheckProceduralMesh(This,pNode)

#define IRfEditableMeshSet_GetMeshControlNode(This,pStartNode,ppMeshSource)	\
    (This)->lpVtbl -> GetMeshControlNode(This,pStartNode,ppMeshSource)

#define IRfEditableMeshSet_RemoveSelectionStreams(This,pMesh)	\
    (This)->lpVtbl -> RemoveSelectionStreams(This,pMesh)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRfEditableMeshSet_GetMaximalNeighborhood_Proxy( 
    IRfEditableMeshSet * This,
    /* [in] */ IRsNode *pNode,
    /* [in] */ IRsNode *pMeshModifier,
    /* [in] */ RtUlong *pdwMaxNeighborhood);


void __RPC_STUB IRfEditableMeshSet_GetMaximalNeighborhood_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRfEditableMeshSet_ComputeOutputMesh_Proxy( 
    IRfEditableMeshSet * This,
    /* [in] */ IRsNode *pNode,
    /* [in] */ IRsNode *pMeshModifier,
    /* [in] */ IRdMeshSelection *pSelection,
    /* [in] */ IRdMesh *pMeshIn,
    /* [retval][out] */ IRdMesh **pMeshOut);


void __RPC_STUB IRfEditableMeshSet_ComputeOutputMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRfEditableMeshSet_InjectSelectionStreams_Proxy( 
    IRfEditableMeshSet * This,
    /* [in] */ IRdMeshSelection *pSelection,
    /* [out][in] */ IRdMesh *pMesh);


void __RPC_STUB IRfEditableMeshSet_InjectSelectionStreams_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRfEditableMeshSet_GetEditableMesh_Proxy( 
    IRfEditableMeshSet * This,
    /* [in] */ IRsNode *pEncaps,
    /* [retval][out] */ IRsNode **ppEditableMeshNode);


void __RPC_STUB IRfEditableMeshSet_GetEditableMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRfEditableMeshSet_ConvertToEditableMesh_Proxy( 
    IRfEditableMeshSet * This,
    /* [in] */ IRsNode *pEncaps,
    /* [retval][out] */ IRsNode **ppEditableMeshNode);


void __RPC_STUB IRfEditableMeshSet_ConvertToEditableMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRfEditableMeshSet_CheckProceduralMesh_Proxy( 
    IRfEditableMeshSet * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRfEditableMeshSet_CheckProceduralMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRfEditableMeshSet_GetMeshControlNode_Proxy( 
    IRfEditableMeshSet * This,
    /* [in] */ IRsNode *pStartNode,
    /* [retval][out] */ IRsNode **ppMeshSource);


void __RPC_STUB IRfEditableMeshSet_GetMeshControlNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRfEditableMeshSet_RemoveSelectionStreams_Proxy( 
    IRfEditableMeshSet * This,
    /* [out][in] */ IRdMesh *pMesh);


void __RPC_STUB IRfEditableMeshSet_RemoveSelectionStreams_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfEditableMeshSet_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1354 */
/* [local] */ 

struct RtSkinningData
    {
    RtPoint position;
    RtFloat weight;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1354_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1354_v0_0_s_ifspec;

#ifndef __IRdSkinningData_INTERFACE_DEFINED__
#define __IRdSkinningData_INTERFACE_DEFINED__

/* interface IRdSkinningData */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdSkinningData;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BDE3B420-4BE8-4850-941D-03DA55038E61")
    IRdSkinningData : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumRecords( 
            /* [retval][out] */ RtDWORD *dwNumRecords) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumRecords( 
            /* [in] */ RtDWORD dwNumRecords) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_x( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_x( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_y( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_y( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_z( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_z( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_weight( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_weight( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdSkinningDataVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdSkinningData * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdSkinningData * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdSkinningData * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdSkinningData * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdSkinningData * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdSkinningData * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdSkinningData * 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 *GetNumRecords )( 
            IRdSkinningData * This,
            /* [retval][out] */ RtDWORD *dwNumRecords);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumRecords )( 
            IRdSkinningData * This,
            /* [in] */ RtDWORD dwNumRecords);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_x )( 
            IRdSkinningData * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_x )( 
            IRdSkinningData * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_y )( 
            IRdSkinningData * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_y )( 
            IRdSkinningData * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_z )( 
            IRdSkinningData * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_z )( 
            IRdSkinningData * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_weight )( 
            IRdSkinningData * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_weight )( 
            IRdSkinningData * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        END_INTERFACE
    } IRdSkinningDataVtbl;

    interface IRdSkinningData
    {
        CONST_VTBL struct IRdSkinningDataVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdSkinningData_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdSkinningData_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdSkinningData_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdSkinningData_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdSkinningData_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdSkinningData_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdSkinningData_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdSkinningData_GetNumRecords(This,dwNumRecords)	\
    (This)->lpVtbl -> GetNumRecords(This,dwNumRecords)

#define IRdSkinningData_SetNumRecords(This,dwNumRecords)	\
    (This)->lpVtbl -> SetNumRecords(This,dwNumRecords)

#define IRdSkinningData_get_x(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_x(This,dwIndex,pVal)

#define IRdSkinningData_put_x(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_x(This,dwIndex,newVal)

#define IRdSkinningData_get_y(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_y(This,dwIndex,pVal)

#define IRdSkinningData_put_y(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_y(This,dwIndex,newVal)

#define IRdSkinningData_get_z(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_z(This,dwIndex,pVal)

#define IRdSkinningData_put_z(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_z(This,dwIndex,newVal)

#define IRdSkinningData_get_weight(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_weight(This,dwIndex,pVal)

#define IRdSkinningData_put_weight(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_weight(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSkinningData_GetNumRecords_Proxy( 
    IRdSkinningData * This,
    /* [retval][out] */ RtDWORD *dwNumRecords);


void __RPC_STUB IRdSkinningData_GetNumRecords_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSkinningData_SetNumRecords_Proxy( 
    IRdSkinningData * This,
    /* [in] */ RtDWORD dwNumRecords);


void __RPC_STUB IRdSkinningData_SetNumRecords_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdSkinningData_get_x_Proxy( 
    IRdSkinningData * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdSkinningData_get_x_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdSkinningData_put_x_Proxy( 
    IRdSkinningData * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdSkinningData_put_x_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdSkinningData_get_y_Proxy( 
    IRdSkinningData * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdSkinningData_get_y_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdSkinningData_put_y_Proxy( 
    IRdSkinningData * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdSkinningData_put_y_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdSkinningData_get_z_Proxy( 
    IRdSkinningData * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdSkinningData_get_z_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdSkinningData_put_z_Proxy( 
    IRdSkinningData * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdSkinningData_put_z_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdSkinningData_get_weight_Proxy( 
    IRdSkinningData * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdSkinningData_get_weight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdSkinningData_put_weight_Proxy( 
    IRdSkinningData * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdSkinningData_put_weight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdSkinningData_INTERFACE_DEFINED__ */


#ifndef __IRdSkinningParameters_INTERFACE_DEFINED__
#define __IRdSkinningParameters_INTERFACE_DEFINED__

/* interface IRdSkinningParameters */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdSkinningParameters;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A1143290-AB55-47bc-9E21-50AEC949FF83")
    IRdSkinningParameters : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE AddBone( 
            /* [in] */ GUID gBoneId,
            /* [in] */ IRdMatrixf *pDefaultPose) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveBone( 
            /* [in] */ GUID gBoneId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNumBones( 
            /* [in] */ RtUlong *pdwCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetBoneId( 
            /* [in] */ RtUlong dwIndex,
            /* [in] */ GUID *pgBoneId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetBoneId( 
            /* [in] */ RtUlong dwIndex,
            /* [in] */ GUID gBoneId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetBoneDefaultPoseInv( 
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtMatrixf *pMatrix) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetBoneDefaultPose( 
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtMatrixf *pMatrix) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetSkinningData( 
            /* [in] */ RtUlong dwIndex,
            /* [in] */ IRsGenStream **ppBuffer) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetSkinningData( 
            /* [in] */ RtUlong dwIndex,
            /* [in] */ IRsGenStream *pBuffer) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetBoneIndex( 
            /* [in] */ GUID gBoneId,
            /* [in] */ RtUlong *pdwIndex) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetSkinReferenceMesh( 
            /* [in] */ IRdMesh **ppMesh) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetSkinReferenceMesh( 
            /* [in] */ IRdMesh *pMesh) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdSkinningParametersVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdSkinningParameters * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdSkinningParameters * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdSkinningParameters * This);
        
        HRESULT ( STDMETHODCALLTYPE *AddBone )( 
            IRdSkinningParameters * This,
            /* [in] */ GUID gBoneId,
            /* [in] */ IRdMatrixf *pDefaultPose);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveBone )( 
            IRdSkinningParameters * This,
            /* [in] */ GUID gBoneId);
        
        HRESULT ( STDMETHODCALLTYPE *GetNumBones )( 
            IRdSkinningParameters * This,
            /* [in] */ RtUlong *pdwCount);
        
        HRESULT ( STDMETHODCALLTYPE *GetBoneId )( 
            IRdSkinningParameters * This,
            /* [in] */ RtUlong dwIndex,
            /* [in] */ GUID *pgBoneId);
        
        HRESULT ( STDMETHODCALLTYPE *SetBoneId )( 
            IRdSkinningParameters * This,
            /* [in] */ RtUlong dwIndex,
            /* [in] */ GUID gBoneId);
        
        HRESULT ( STDMETHODCALLTYPE *GetBoneDefaultPoseInv )( 
            IRdSkinningParameters * This,
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtMatrixf *pMatrix);
        
        HRESULT ( STDMETHODCALLTYPE *SetBoneDefaultPose )( 
            IRdSkinningParameters * This,
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtMatrixf *pMatrix);
        
        HRESULT ( STDMETHODCALLTYPE *GetSkinningData )( 
            IRdSkinningParameters * This,
            /* [in] */ RtUlong dwIndex,
            /* [in] */ IRsGenStream **ppBuffer);
        
        HRESULT ( STDMETHODCALLTYPE *SetSkinningData )( 
            IRdSkinningParameters * This,
            /* [in] */ RtUlong dwIndex,
            /* [in] */ IRsGenStream *pBuffer);
        
        HRESULT ( STDMETHODCALLTYPE *GetBoneIndex )( 
            IRdSkinningParameters * This,
            /* [in] */ GUID gBoneId,
            /* [in] */ RtUlong *pdwIndex);
        
        HRESULT ( STDMETHODCALLTYPE *GetSkinReferenceMesh )( 
            IRdSkinningParameters * This,
            /* [in] */ IRdMesh **ppMesh);
        
        HRESULT ( STDMETHODCALLTYPE *SetSkinReferenceMesh )( 
            IRdSkinningParameters * This,
            /* [in] */ IRdMesh *pMesh);
        
        END_INTERFACE
    } IRdSkinningParametersVtbl;

    interface IRdSkinningParameters
    {
        CONST_VTBL struct IRdSkinningParametersVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdSkinningParameters_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdSkinningParameters_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdSkinningParameters_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdSkinningParameters_AddBone(This,gBoneId,pDefaultPose)	\
    (This)->lpVtbl -> AddBone(This,gBoneId,pDefaultPose)

#define IRdSkinningParameters_RemoveBone(This,gBoneId)	\
    (This)->lpVtbl -> RemoveBone(This,gBoneId)

#define IRdSkinningParameters_GetNumBones(This,pdwCount)	\
    (This)->lpVtbl -> GetNumBones(This,pdwCount)

#define IRdSkinningParameters_GetBoneId(This,dwIndex,pgBoneId)	\
    (This)->lpVtbl -> GetBoneId(This,dwIndex,pgBoneId)

#define IRdSkinningParameters_SetBoneId(This,dwIndex,gBoneId)	\
    (This)->lpVtbl -> SetBoneId(This,dwIndex,gBoneId)

#define IRdSkinningParameters_GetBoneDefaultPoseInv(This,dwIndex,pMatrix)	\
    (This)->lpVtbl -> GetBoneDefaultPoseInv(This,dwIndex,pMatrix)

#define IRdSkinningParameters_SetBoneDefaultPose(This,dwIndex,pMatrix)	\
    (This)->lpVtbl -> SetBoneDefaultPose(This,dwIndex,pMatrix)

#define IRdSkinningParameters_GetSkinningData(This,dwIndex,ppBuffer)	\
    (This)->lpVtbl -> GetSkinningData(This,dwIndex,ppBuffer)

#define IRdSkinningParameters_SetSkinningData(This,dwIndex,pBuffer)	\
    (This)->lpVtbl -> SetSkinningData(This,dwIndex,pBuffer)

#define IRdSkinningParameters_GetBoneIndex(This,gBoneId,pdwIndex)	\
    (This)->lpVtbl -> GetBoneIndex(This,gBoneId,pdwIndex)

#define IRdSkinningParameters_GetSkinReferenceMesh(This,ppMesh)	\
    (This)->lpVtbl -> GetSkinReferenceMesh(This,ppMesh)

#define IRdSkinningParameters_SetSkinReferenceMesh(This,pMesh)	\
    (This)->lpVtbl -> SetSkinReferenceMesh(This,pMesh)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRdSkinningParameters_AddBone_Proxy( 
    IRdSkinningParameters * This,
    /* [in] */ GUID gBoneId,
    /* [in] */ IRdMatrixf *pDefaultPose);


void __RPC_STUB IRdSkinningParameters_AddBone_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdSkinningParameters_RemoveBone_Proxy( 
    IRdSkinningParameters * This,
    /* [in] */ GUID gBoneId);


void __RPC_STUB IRdSkinningParameters_RemoveBone_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdSkinningParameters_GetNumBones_Proxy( 
    IRdSkinningParameters * This,
    /* [in] */ RtUlong *pdwCount);


void __RPC_STUB IRdSkinningParameters_GetNumBones_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdSkinningParameters_GetBoneId_Proxy( 
    IRdSkinningParameters * This,
    /* [in] */ RtUlong dwIndex,
    /* [in] */ GUID *pgBoneId);


void __RPC_STUB IRdSkinningParameters_GetBoneId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdSkinningParameters_SetBoneId_Proxy( 
    IRdSkinningParameters * This,
    /* [in] */ RtUlong dwIndex,
    /* [in] */ GUID gBoneId);


void __RPC_STUB IRdSkinningParameters_SetBoneId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdSkinningParameters_GetBoneDefaultPoseInv_Proxy( 
    IRdSkinningParameters * This,
    /* [in] */ RtUlong dwIndex,
    /* [in] */ RtMatrixf *pMatrix);


void __RPC_STUB IRdSkinningParameters_GetBoneDefaultPoseInv_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdSkinningParameters_SetBoneDefaultPose_Proxy( 
    IRdSkinningParameters * This,
    /* [in] */ RtUlong dwIndex,
    /* [in] */ RtMatrixf *pMatrix);


void __RPC_STUB IRdSkinningParameters_SetBoneDefaultPose_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdSkinningParameters_GetSkinningData_Proxy( 
    IRdSkinningParameters * This,
    /* [in] */ RtUlong dwIndex,
    /* [in] */ IRsGenStream **ppBuffer);


void __RPC_STUB IRdSkinningParameters_GetSkinningData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdSkinningParameters_SetSkinningData_Proxy( 
    IRdSkinningParameters * This,
    /* [in] */ RtUlong dwIndex,
    /* [in] */ IRsGenStream *pBuffer);


void __RPC_STUB IRdSkinningParameters_SetSkinningData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdSkinningParameters_GetBoneIndex_Proxy( 
    IRdSkinningParameters * This,
    /* [in] */ GUID gBoneId,
    /* [in] */ RtUlong *pdwIndex);


void __RPC_STUB IRdSkinningParameters_GetBoneIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdSkinningParameters_GetSkinReferenceMesh_Proxy( 
    IRdSkinningParameters * This,
    /* [in] */ IRdMesh **ppMesh);


void __RPC_STUB IRdSkinningParameters_GetSkinReferenceMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdSkinningParameters_SetSkinReferenceMesh_Proxy( 
    IRdSkinningParameters * This,
    /* [in] */ IRdMesh *pMesh);


void __RPC_STUB IRdSkinningParameters_SetSkinReferenceMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdSkinningParameters_INTERFACE_DEFINED__ */


#ifndef __IRdSkinningParametersDisp_INTERFACE_DEFINED__
#define __IRdSkinningParametersDisp_INTERFACE_DEFINED__

/* interface IRdSkinningParametersDisp */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdSkinningParametersDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DDA0F73D-5ADB-4ec1-8071-56B528C88E12")
    IRdSkinningParametersDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddBone( 
            /* [in] */ BSTR szBoneNode,
            /* [in] */ VARIANT vDefaultPose) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveBone( 
            /* [in] */ BSTR szBoneNode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumBones( 
            /* [retval][out] */ RtUlong *pdwNumBones) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAttachedBone( 
            /* [in] */ RtUlong dwIndex,
            /* [in] */ BSTR szOwner,
            /* [retval][out] */ VARIANT *pszNodeName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBoneBindingPoseInv( 
            /* [in] */ BSTR szBone,
            /* [retval][out] */ VARIANT *ppBindingPose) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetBoneBindingPose( 
            /* [in] */ BSTR szBone,
            /* [in] */ VARIANT vBindingPose) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetSkinningData( 
            /* [in] */ BSTR szBone,
            /* [in] */ VARIANT vSkinningData) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSkinningData( 
            /* [in] */ BSTR szBone,
            /* [retval][out] */ VARIANT *pSkinningData) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdSkinningParametersDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdSkinningParametersDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdSkinningParametersDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdSkinningParametersDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdSkinningParametersDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdSkinningParametersDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdSkinningParametersDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdSkinningParametersDisp * 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 *AddBone )( 
            IRdSkinningParametersDisp * This,
            /* [in] */ BSTR szBoneNode,
            /* [in] */ VARIANT vDefaultPose);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveBone )( 
            IRdSkinningParametersDisp * This,
            /* [in] */ BSTR szBoneNode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNumBones )( 
            IRdSkinningParametersDisp * This,
            /* [retval][out] */ RtUlong *pdwNumBones);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAttachedBone )( 
            IRdSkinningParametersDisp * This,
            /* [in] */ RtUlong dwIndex,
            /* [in] */ BSTR szOwner,
            /* [retval][out] */ VARIANT *pszNodeName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoneBindingPoseInv )( 
            IRdSkinningParametersDisp * This,
            /* [in] */ BSTR szBone,
            /* [retval][out] */ VARIANT *ppBindingPose);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetBoneBindingPose )( 
            IRdSkinningParametersDisp * This,
            /* [in] */ BSTR szBone,
            /* [in] */ VARIANT vBindingPose);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetSkinningData )( 
            IRdSkinningParametersDisp * This,
            /* [in] */ BSTR szBone,
            /* [in] */ VARIANT vSkinningData);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSkinningData )( 
            IRdSkinningParametersDisp * This,
            /* [in] */ BSTR szBone,
            /* [retval][out] */ VARIANT *pSkinningData);
        
        END_INTERFACE
    } IRdSkinningParametersDispVtbl;

    interface IRdSkinningParametersDisp
    {
        CONST_VTBL struct IRdSkinningParametersDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdSkinningParametersDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdSkinningParametersDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdSkinningParametersDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdSkinningParametersDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdSkinningParametersDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdSkinningParametersDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdSkinningParametersDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdSkinningParametersDisp_AddBone(This,szBoneNode,vDefaultPose)	\
    (This)->lpVtbl -> AddBone(This,szBoneNode,vDefaultPose)

#define IRdSkinningParametersDisp_RemoveBone(This,szBoneNode)	\
    (This)->lpVtbl -> RemoveBone(This,szBoneNode)

#define IRdSkinningParametersDisp_GetNumBones(This,pdwNumBones)	\
    (This)->lpVtbl -> GetNumBones(This,pdwNumBones)

#define IRdSkinningParametersDisp_GetAttachedBone(This,dwIndex,szOwner,pszNodeName)	\
    (This)->lpVtbl -> GetAttachedBone(This,dwIndex,szOwner,pszNodeName)

#define IRdSkinningParametersDisp_GetBoneBindingPoseInv(This,szBone,ppBindingPose)	\
    (This)->lpVtbl -> GetBoneBindingPoseInv(This,szBone,ppBindingPose)

#define IRdSkinningParametersDisp_SetBoneBindingPose(This,szBone,vBindingPose)	\
    (This)->lpVtbl -> SetBoneBindingPose(This,szBone,vBindingPose)

#define IRdSkinningParametersDisp_SetSkinningData(This,szBone,vSkinningData)	\
    (This)->lpVtbl -> SetSkinningData(This,szBone,vSkinningData)

#define IRdSkinningParametersDisp_GetSkinningData(This,szBone,pSkinningData)	\
    (This)->lpVtbl -> GetSkinningData(This,szBone,pSkinningData)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSkinningParametersDisp_AddBone_Proxy( 
    IRdSkinningParametersDisp * This,
    /* [in] */ BSTR szBoneNode,
    /* [in] */ VARIANT vDefaultPose);


void __RPC_STUB IRdSkinningParametersDisp_AddBone_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSkinningParametersDisp_RemoveBone_Proxy( 
    IRdSkinningParametersDisp * This,
    /* [in] */ BSTR szBoneNode);


void __RPC_STUB IRdSkinningParametersDisp_RemoveBone_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSkinningParametersDisp_GetNumBones_Proxy( 
    IRdSkinningParametersDisp * This,
    /* [retval][out] */ RtUlong *pdwNumBones);


void __RPC_STUB IRdSkinningParametersDisp_GetNumBones_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSkinningParametersDisp_GetAttachedBone_Proxy( 
    IRdSkinningParametersDisp * This,
    /* [in] */ RtUlong dwIndex,
    /* [in] */ BSTR szOwner,
    /* [retval][out] */ VARIANT *pszNodeName);


void __RPC_STUB IRdSkinningParametersDisp_GetAttachedBone_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSkinningParametersDisp_GetBoneBindingPoseInv_Proxy( 
    IRdSkinningParametersDisp * This,
    /* [in] */ BSTR szBone,
    /* [retval][out] */ VARIANT *ppBindingPose);


void __RPC_STUB IRdSkinningParametersDisp_GetBoneBindingPoseInv_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSkinningParametersDisp_SetBoneBindingPose_Proxy( 
    IRdSkinningParametersDisp * This,
    /* [in] */ BSTR szBone,
    /* [in] */ VARIANT vBindingPose);


void __RPC_STUB IRdSkinningParametersDisp_SetBoneBindingPose_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSkinningParametersDisp_SetSkinningData_Proxy( 
    IRdSkinningParametersDisp * This,
    /* [in] */ BSTR szBone,
    /* [in] */ VARIANT vSkinningData);


void __RPC_STUB IRdSkinningParametersDisp_SetSkinningData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSkinningParametersDisp_GetSkinningData_Proxy( 
    IRdSkinningParametersDisp * This,
    /* [in] */ BSTR szBone,
    /* [retval][out] */ VARIANT *pSkinningData);


void __RPC_STUB IRdSkinningParametersDisp_GetSkinningData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdSkinningParametersDisp_INTERFACE_DEFINED__ */


#ifndef __IRfSkinSet_INTERFACE_DEFINED__
#define __IRfSkinSet_INTERFACE_DEFINED__

/* interface IRfSkinSet */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRfSkinSet;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9E36756F-F3B5-4cdb-9B55-DCF54928C26B")
    IRfSkinSet : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSkinStream( 
            /* [in] */ RtFloat *pfWeights,
            /* [in] */ IRdMesh *pMesh,
            /* [in] */ IRsGenStream **ppSkinStream) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ExpandSkinWeights( 
            /* [in] */ IRsGenStream *pStream,
            /* [in] */ IRdMesh *pMesh,
            /* [in] */ RtFloat *pfWeights) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RetargetSkin( 
            /* [in] */ IRdSkinningParameters *pSkin,
            /* [in] */ IRdMesh *pTargetMesh) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AccumulateSkinWeights( 
            /* [in] */ IRsGenStream *pStream,
            /* [in] */ IRdMesh *pMesh,
            /* [in] */ RtFloat *pfWeights) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetReferenceMesh( 
            /* [in] */ IRdMesh *pInpMesh,
            /* [in] */ IRdMesh **ppMeshRef) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfSkinSetVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfSkinSet * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfSkinSet * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfSkinSet * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSkinStream )( 
            IRfSkinSet * This,
            /* [in] */ RtFloat *pfWeights,
            /* [in] */ IRdMesh *pMesh,
            /* [in] */ IRsGenStream **ppSkinStream);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ExpandSkinWeights )( 
            IRfSkinSet * This,
            /* [in] */ IRsGenStream *pStream,
            /* [in] */ IRdMesh *pMesh,
            /* [in] */ RtFloat *pfWeights);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RetargetSkin )( 
            IRfSkinSet * This,
            /* [in] */ IRdSkinningParameters *pSkin,
            /* [in] */ IRdMesh *pTargetMesh);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AccumulateSkinWeights )( 
            IRfSkinSet * This,
            /* [in] */ IRsGenStream *pStream,
            /* [in] */ IRdMesh *pMesh,
            /* [in] */ RtFloat *pfWeights);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetReferenceMesh )( 
            IRfSkinSet * This,
            /* [in] */ IRdMesh *pInpMesh,
            /* [in] */ IRdMesh **ppMeshRef);
        
        END_INTERFACE
    } IRfSkinSetVtbl;

    interface IRfSkinSet
    {
        CONST_VTBL struct IRfSkinSetVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfSkinSet_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfSkinSet_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfSkinSet_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfSkinSet_GetSkinStream(This,pfWeights,pMesh,ppSkinStream)	\
    (This)->lpVtbl -> GetSkinStream(This,pfWeights,pMesh,ppSkinStream)

#define IRfSkinSet_ExpandSkinWeights(This,pStream,pMesh,pfWeights)	\
    (This)->lpVtbl -> ExpandSkinWeights(This,pStream,pMesh,pfWeights)

#define IRfSkinSet_RetargetSkin(This,pSkin,pTargetMesh)	\
    (This)->lpVtbl -> RetargetSkin(This,pSkin,pTargetMesh)

#define IRfSkinSet_AccumulateSkinWeights(This,pStream,pMesh,pfWeights)	\
    (This)->lpVtbl -> AccumulateSkinWeights(This,pStream,pMesh,pfWeights)

#define IRfSkinSet_GetReferenceMesh(This,pInpMesh,ppMeshRef)	\
    (This)->lpVtbl -> GetReferenceMesh(This,pInpMesh,ppMeshRef)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfSkinSet_GetSkinStream_Proxy( 
    IRfSkinSet * This,
    /* [in] */ RtFloat *pfWeights,
    /* [in] */ IRdMesh *pMesh,
    /* [in] */ IRsGenStream **ppSkinStream);


void __RPC_STUB IRfSkinSet_GetSkinStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfSkinSet_ExpandSkinWeights_Proxy( 
    IRfSkinSet * This,
    /* [in] */ IRsGenStream *pStream,
    /* [in] */ IRdMesh *pMesh,
    /* [in] */ RtFloat *pfWeights);


void __RPC_STUB IRfSkinSet_ExpandSkinWeights_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfSkinSet_RetargetSkin_Proxy( 
    IRfSkinSet * This,
    /* [in] */ IRdSkinningParameters *pSkin,
    /* [in] */ IRdMesh *pTargetMesh);


void __RPC_STUB IRfSkinSet_RetargetSkin_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfSkinSet_AccumulateSkinWeights_Proxy( 
    IRfSkinSet * This,
    /* [in] */ IRsGenStream *pStream,
    /* [in] */ IRdMesh *pMesh,
    /* [in] */ RtFloat *pfWeights);


void __RPC_STUB IRfSkinSet_AccumulateSkinWeights_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfSkinSet_GetReferenceMesh_Proxy( 
    IRfSkinSet * This,
    /* [in] */ IRdMesh *pInpMesh,
    /* [in] */ IRdMesh **ppMeshRef);


void __RPC_STUB IRfSkinSet_GetReferenceMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfSkinSet_INTERFACE_DEFINED__ */


#ifndef __IRsTransformOverrideManager_INTERFACE_DEFINED__
#define __IRsTransformOverrideManager_INTERFACE_DEFINED__

/* interface IRsTransformOverrideManager */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsTransformOverrideManager;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F478E1AE-AA63-437b-BE22-AB98082D858D")
    IRsTransformOverrideManager : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE BeginTransformSession( 
            /* [in] */ IUnknown *pHandle,
            /* [in] */ IRsNode *pNode,
            /* [in] */ IRcUndoRedoGroup *pCommandGroup) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE EndTransformSession( 
            /* [in] */ IUnknown *pHandle,
            /* [in] */ IRsNode *pNode,
            /* [in] */ IRcUndoRedoGroup *pCommandGroup) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ApplyTransform( 
            /* [in] */ IUnknown *pHandle,
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtMatrixf *pTransform) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetManagerWeight( 
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtFloat *pfWeight) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsTransformOverrideManagerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsTransformOverrideManager * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsTransformOverrideManager * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsTransformOverrideManager * This);
        
        HRESULT ( STDMETHODCALLTYPE *BeginTransformSession )( 
            IRsTransformOverrideManager * This,
            /* [in] */ IUnknown *pHandle,
            /* [in] */ IRsNode *pNode,
            /* [in] */ IRcUndoRedoGroup *pCommandGroup);
        
        HRESULT ( STDMETHODCALLTYPE *EndTransformSession )( 
            IRsTransformOverrideManager * This,
            /* [in] */ IUnknown *pHandle,
            /* [in] */ IRsNode *pNode,
            /* [in] */ IRcUndoRedoGroup *pCommandGroup);
        
        HRESULT ( STDMETHODCALLTYPE *ApplyTransform )( 
            IRsTransformOverrideManager * This,
            /* [in] */ IUnknown *pHandle,
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtMatrixf *pTransform);
        
        HRESULT ( STDMETHODCALLTYPE *GetManagerWeight )( 
            IRsTransformOverrideManager * This,
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtFloat *pfWeight);
        
        END_INTERFACE
    } IRsTransformOverrideManagerVtbl;

    interface IRsTransformOverrideManager
    {
        CONST_VTBL struct IRsTransformOverrideManagerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsTransformOverrideManager_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsTransformOverrideManager_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsTransformOverrideManager_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsTransformOverrideManager_BeginTransformSession(This,pHandle,pNode,pCommandGroup)	\
    (This)->lpVtbl -> BeginTransformSession(This,pHandle,pNode,pCommandGroup)

#define IRsTransformOverrideManager_EndTransformSession(This,pHandle,pNode,pCommandGroup)	\
    (This)->lpVtbl -> EndTransformSession(This,pHandle,pNode,pCommandGroup)

#define IRsTransformOverrideManager_ApplyTransform(This,pHandle,pNode,pTransform)	\
    (This)->lpVtbl -> ApplyTransform(This,pHandle,pNode,pTransform)

#define IRsTransformOverrideManager_GetManagerWeight(This,pNode,pfWeight)	\
    (This)->lpVtbl -> GetManagerWeight(This,pNode,pfWeight)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsTransformOverrideManager_BeginTransformSession_Proxy( 
    IRsTransformOverrideManager * This,
    /* [in] */ IUnknown *pHandle,
    /* [in] */ IRsNode *pNode,
    /* [in] */ IRcUndoRedoGroup *pCommandGroup);


void __RPC_STUB IRsTransformOverrideManager_BeginTransformSession_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsTransformOverrideManager_EndTransformSession_Proxy( 
    IRsTransformOverrideManager * This,
    /* [in] */ IUnknown *pHandle,
    /* [in] */ IRsNode *pNode,
    /* [in] */ IRcUndoRedoGroup *pCommandGroup);


void __RPC_STUB IRsTransformOverrideManager_EndTransformSession_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsTransformOverrideManager_ApplyTransform_Proxy( 
    IRsTransformOverrideManager * This,
    /* [in] */ IUnknown *pHandle,
    /* [in] */ IRsNode *pNode,
    /* [in] */ RtMatrixf *pTransform);


void __RPC_STUB IRsTransformOverrideManager_ApplyTransform_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsTransformOverrideManager_GetManagerWeight_Proxy( 
    IRsTransformOverrideManager * This,
    /* [in] */ IRsNode *pNode,
    /* [in] */ RtFloat *pfWeight);


void __RPC_STUB IRsTransformOverrideManager_GetManagerWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsTransformOverrideManager_INTERFACE_DEFINED__ */


#ifndef __IRsTransformSession_INTERFACE_DEFINED__
#define __IRsTransformSession_INTERFACE_DEFINED__

/* interface IRsTransformSession */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsTransformSession;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DDA1A28A-B2D6-43ff-9AE4-409E82B8ABAA")
    IRsTransformSession : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNodesCount( 
            /* [retval][out] */ RtUlong *pdwNumObjs) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNode( 
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ IRsNode **ppNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetTransformManager( 
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ IRsTransformOverrideManager **ppTransformManager) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsTransformSessionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsTransformSession * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsTransformSession * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsTransformSession * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNodesCount )( 
            IRsTransformSession * This,
            /* [retval][out] */ RtUlong *pdwNumObjs);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNode )( 
            IRsTransformSession * This,
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ IRsNode **ppNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTransformManager )( 
            IRsTransformSession * This,
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ IRsTransformOverrideManager **ppTransformManager);
        
        END_INTERFACE
    } IRsTransformSessionVtbl;

    interface IRsTransformSession
    {
        CONST_VTBL struct IRsTransformSessionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsTransformSession_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsTransformSession_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsTransformSession_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsTransformSession_GetNodesCount(This,pdwNumObjs)	\
    (This)->lpVtbl -> GetNodesCount(This,pdwNumObjs)

#define IRsTransformSession_GetNode(This,dwIndex,ppNode)	\
    (This)->lpVtbl -> GetNode(This,dwIndex,ppNode)

#define IRsTransformSession_GetTransformManager(This,dwIndex,ppTransformManager)	\
    (This)->lpVtbl -> GetTransformManager(This,dwIndex,ppTransformManager)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsTransformSession_GetNodesCount_Proxy( 
    IRsTransformSession * This,
    /* [retval][out] */ RtUlong *pdwNumObjs);


void __RPC_STUB IRsTransformSession_GetNodesCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsTransformSession_GetNode_Proxy( 
    IRsTransformSession * This,
    /* [in] */ RtUlong dwIndex,
    /* [retval][out] */ IRsNode **ppNode);


void __RPC_STUB IRsTransformSession_GetNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsTransformSession_GetTransformManager_Proxy( 
    IRsTransformSession * This,
    /* [in] */ RtUlong dwIndex,
    /* [retval][out] */ IRsTransformOverrideManager **ppTransformManager);


void __RPC_STUB IRsTransformSession_GetTransformManager_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsTransformSession_INTERFACE_DEFINED__ */


#ifndef __IRsTransformOverride_INTERFACE_DEFINED__
#define __IRsTransformOverride_INTERFACE_DEFINED__

/* interface IRsTransformOverride */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsTransformOverride;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2604330E-A762-4fe8-A198-40B58D57BC2E")
    IRsTransformOverride : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE BeginTransformSession( 
            /* [in] */ IRsObjectList *pObjectList,
            /* [in] */ IRcUndoRedoGroup *ppUndoCmd,
            /* [out] */ IRsTransformSession **ppSession) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE EndTransformSession( 
            /* [in] */ IRsTransformSession *pSession,
            /* [in] */ IRcUndoRedoGroup *ppUndoCmd) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ApplyTransform( 
            /* [in] */ IRsTransformSession *pSession,
            /* [in] */ RtMatrixf *pMatrix) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RegisterTransformOverrideManager( 
            /* [in] */ IRsTransformOverrideManager *pManager) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnRegisterTransformOverrideManager( 
            /* [in] */ IRsTransformOverrideManager *pManager) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsTransformOverrideVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsTransformOverride * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsTransformOverride * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsTransformOverride * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *BeginTransformSession )( 
            IRsTransformOverride * This,
            /* [in] */ IRsObjectList *pObjectList,
            /* [in] */ IRcUndoRedoGroup *ppUndoCmd,
            /* [out] */ IRsTransformSession **ppSession);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EndTransformSession )( 
            IRsTransformOverride * This,
            /* [in] */ IRsTransformSession *pSession,
            /* [in] */ IRcUndoRedoGroup *ppUndoCmd);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ApplyTransform )( 
            IRsTransformOverride * This,
            /* [in] */ IRsTransformSession *pSession,
            /* [in] */ RtMatrixf *pMatrix);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterTransformOverrideManager )( 
            IRsTransformOverride * This,
            /* [in] */ IRsTransformOverrideManager *pManager);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnRegisterTransformOverrideManager )( 
            IRsTransformOverride * This,
            /* [in] */ IRsTransformOverrideManager *pManager);
        
        END_INTERFACE
    } IRsTransformOverrideVtbl;

    interface IRsTransformOverride
    {
        CONST_VTBL struct IRsTransformOverrideVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsTransformOverride_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsTransformOverride_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsTransformOverride_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsTransformOverride_BeginTransformSession(This,pObjectList,ppUndoCmd,ppSession)	\
    (This)->lpVtbl -> BeginTransformSession(This,pObjectList,ppUndoCmd,ppSession)

#define IRsTransformOverride_EndTransformSession(This,pSession,ppUndoCmd)	\
    (This)->lpVtbl -> EndTransformSession(This,pSession,ppUndoCmd)

#define IRsTransformOverride_ApplyTransform(This,pSession,pMatrix)	\
    (This)->lpVtbl -> ApplyTransform(This,pSession,pMatrix)

#define IRsTransformOverride_RegisterTransformOverrideManager(This,pManager)	\
    (This)->lpVtbl -> RegisterTransformOverrideManager(This,pManager)

#define IRsTransformOverride_UnRegisterTransformOverrideManager(This,pManager)	\
    (This)->lpVtbl -> UnRegisterTransformOverrideManager(This,pManager)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsTransformOverride_BeginTransformSession_Proxy( 
    IRsTransformOverride * This,
    /* [in] */ IRsObjectList *pObjectList,
    /* [in] */ IRcUndoRedoGroup *ppUndoCmd,
    /* [out] */ IRsTransformSession **ppSession);


void __RPC_STUB IRsTransformOverride_BeginTransformSession_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsTransformOverride_EndTransformSession_Proxy( 
    IRsTransformOverride * This,
    /* [in] */ IRsTransformSession *pSession,
    /* [in] */ IRcUndoRedoGroup *ppUndoCmd);


void __RPC_STUB IRsTransformOverride_EndTransformSession_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsTransformOverride_ApplyTransform_Proxy( 
    IRsTransformOverride * This,
    /* [in] */ IRsTransformSession *pSession,
    /* [in] */ RtMatrixf *pMatrix);


void __RPC_STUB IRsTransformOverride_ApplyTransform_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsTransformOverride_RegisterTransformOverrideManager_Proxy( 
    IRsTransformOverride * This,
    /* [in] */ IRsTransformOverrideManager *pManager);


void __RPC_STUB IRsTransformOverride_RegisterTransformOverrideManager_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsTransformOverride_UnRegisterTransformOverrideManager_Proxy( 
    IRsTransformOverride * This,
    /* [in] */ IRsTransformOverrideManager *pManager);


void __RPC_STUB IRsTransformOverride_UnRegisterTransformOverrideManager_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsTransformOverride_INTERFACE_DEFINED__ */


#ifndef __IRsUnknownObjectTypeDetector_INTERFACE_DEFINED__
#define __IRsUnknownObjectTypeDetector_INTERFACE_DEFINED__

/* interface IRsUnknownObjectTypeDetector */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsUnknownObjectTypeDetector;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0816B5A2-70E1-45e4-9BE7-5112C39B8FD9")
    IRsUnknownObjectTypeDetector : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DetectObjectType( 
            /* [in] */ IRsNode *pNode,
            /* [out] */ GUID *pgType,
            /* [out] */ RtFloat *pfWeight) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsUnknownObjectTypeDetectorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsUnknownObjectTypeDetector * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsUnknownObjectTypeDetector * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsUnknownObjectTypeDetector * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DetectObjectType )( 
            IRsUnknownObjectTypeDetector * This,
            /* [in] */ IRsNode *pNode,
            /* [out] */ GUID *pgType,
            /* [out] */ RtFloat *pfWeight);
        
        END_INTERFACE
    } IRsUnknownObjectTypeDetectorVtbl;

    interface IRsUnknownObjectTypeDetector
    {
        CONST_VTBL struct IRsUnknownObjectTypeDetectorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsUnknownObjectTypeDetector_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsUnknownObjectTypeDetector_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsUnknownObjectTypeDetector_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsUnknownObjectTypeDetector_DetectObjectType(This,pNode,pgType,pfWeight)	\
    (This)->lpVtbl -> DetectObjectType(This,pNode,pgType,pfWeight)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownObjectTypeDetector_DetectObjectType_Proxy( 
    IRsUnknownObjectTypeDetector * This,
    /* [in] */ IRsNode *pNode,
    /* [out] */ GUID *pgType,
    /* [out] */ RtFloat *pfWeight);


void __RPC_STUB IRsUnknownObjectTypeDetector_DetectObjectType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsUnknownObjectTypeDetector_INTERFACE_DEFINED__ */


#ifndef __IRsObjectTypeDetector_INTERFACE_DEFINED__
#define __IRsObjectTypeDetector_INTERFACE_DEFINED__

/* interface IRsObjectTypeDetector */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsObjectTypeDetector;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("479CB3F7-17EB-4eac-8DF6-0AF8A5EB68BB")
    IRsObjectTypeDetector : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetObjectType( 
            /* [in] */ IRsNode *pNode,
            /* [retval][out] */ GUID *pgType) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RegisterDetector( 
            /* [in] */ IRsUnknownObjectTypeDetector *pDetector) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UnRegisterDetector( 
            /* [in] */ IRsUnknownObjectTypeDetector *pDetector) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsObjectTypeDetectorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsObjectTypeDetector * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsObjectTypeDetector * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsObjectTypeDetector * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetObjectType )( 
            IRsObjectTypeDetector * This,
            /* [in] */ IRsNode *pNode,
            /* [retval][out] */ GUID *pgType);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RegisterDetector )( 
            IRsObjectTypeDetector * This,
            /* [in] */ IRsUnknownObjectTypeDetector *pDetector);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UnRegisterDetector )( 
            IRsObjectTypeDetector * This,
            /* [in] */ IRsUnknownObjectTypeDetector *pDetector);
        
        END_INTERFACE
    } IRsObjectTypeDetectorVtbl;

    interface IRsObjectTypeDetector
    {
        CONST_VTBL struct IRsObjectTypeDetectorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsObjectTypeDetector_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsObjectTypeDetector_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsObjectTypeDetector_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsObjectTypeDetector_GetObjectType(This,pNode,pgType)	\
    (This)->lpVtbl -> GetObjectType(This,pNode,pgType)

#define IRsObjectTypeDetector_RegisterDetector(This,pDetector)	\
    (This)->lpVtbl -> RegisterDetector(This,pDetector)

#define IRsObjectTypeDetector_UnRegisterDetector(This,pDetector)	\
    (This)->lpVtbl -> UnRegisterDetector(This,pDetector)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsObjectTypeDetector_GetObjectType_Proxy( 
    IRsObjectTypeDetector * This,
    /* [in] */ IRsNode *pNode,
    /* [retval][out] */ GUID *pgType);


void __RPC_STUB IRsObjectTypeDetector_GetObjectType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsObjectTypeDetector_RegisterDetector_Proxy( 
    IRsObjectTypeDetector * This,
    /* [in] */ IRsUnknownObjectTypeDetector *pDetector);


void __RPC_STUB IRsObjectTypeDetector_RegisterDetector_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsObjectTypeDetector_UnRegisterDetector_Proxy( 
    IRsObjectTypeDetector * This,
    /* [in] */ IRsUnknownObjectTypeDetector *pDetector);


void __RPC_STUB IRsObjectTypeDetector_UnRegisterDetector_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsObjectTypeDetector_INTERFACE_DEFINED__ */


#ifndef __IRsCoordinateSystemEvaluator_INTERFACE_DEFINED__
#define __IRsCoordinateSystemEvaluator_INTERFACE_DEFINED__

/* interface IRsCoordinateSystemEvaluator */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsCoordinateSystemEvaluator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9055FECA-2E84-4172-A4BB-E9B551D3C9E6")
    IRsCoordinateSystemEvaluator : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetCoordinateSystemLocal( 
            /* [in] */ IRsObjectList *pObjectList,
            /* [in] */ BSTR szCoordSystemName,
            /* [out] */ RtMatrixf *pMatrix) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetCoordinateSystemGlobal( 
            /* [in] */ IRsObjectList *pObjectList,
            /* [in] */ BSTR szCoordSystemName,
            /* [out] */ RtMatrixf *pMatrix) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetReferencePosition( 
            /* [in] */ IRsObjectList *pObjectList,
            /* [in] */ BSTR szCoordSystemName,
            /* [out] */ RtPoint *pPos) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetBoundingBox( 
            /* [in] */ IRsObjectList *pObjectList,
            /* [in] */ BSTR szCoordSystemName,
            /* [in] */ RtMatrixf *pCoordSys,
            /* [out] */ RtBoundingBox *pBoundingBox) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UpdateBoundingBox( 
            /* [in] */ IRsObjectList *pObjectList) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RegisterObject( 
            /* [in] */ IRsObject *pObj) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UnregisterObject( 
            /* [in] */ IRsObject *pObj) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsCoordinateSystemEvaluatorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsCoordinateSystemEvaluator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsCoordinateSystemEvaluator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsCoordinateSystemEvaluator * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetCoordinateSystemLocal )( 
            IRsCoordinateSystemEvaluator * This,
            /* [in] */ IRsObjectList *pObjectList,
            /* [in] */ BSTR szCoordSystemName,
            /* [out] */ RtMatrixf *pMatrix);
        
        HRESULT ( STDMETHODCALLTYPE *GetCoordinateSystemGlobal )( 
            IRsCoordinateSystemEvaluator * This,
            /* [in] */ IRsObjectList *pObjectList,
            /* [in] */ BSTR szCoordSystemName,
            /* [out] */ RtMatrixf *pMatrix);
        
        HRESULT ( STDMETHODCALLTYPE *GetReferencePosition )( 
            IRsCoordinateSystemEvaluator * This,
            /* [in] */ IRsObjectList *pObjectList,
            /* [in] */ BSTR szCoordSystemName,
            /* [out] */ RtPoint *pPos);
        
        HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IRsCoordinateSystemEvaluator * This,
            /* [in] */ IRsObjectList *pObjectList,
            /* [in] */ BSTR szCoordSystemName,
            /* [in] */ RtMatrixf *pCoordSys,
            /* [out] */ RtBoundingBox *pBoundingBox);
        
        HRESULT ( STDMETHODCALLTYPE *UpdateBoundingBox )( 
            IRsCoordinateSystemEvaluator * This,
            /* [in] */ IRsObjectList *pObjectList);
        
        HRESULT ( STDMETHODCALLTYPE *RegisterObject )( 
            IRsCoordinateSystemEvaluator * This,
            /* [in] */ IRsObject *pObj);
        
        HRESULT ( STDMETHODCALLTYPE *UnregisterObject )( 
            IRsCoordinateSystemEvaluator * This,
            /* [in] */ IRsObject *pObj);
        
        END_INTERFACE
    } IRsCoordinateSystemEvaluatorVtbl;

    interface IRsCoordinateSystemEvaluator
    {
        CONST_VTBL struct IRsCoordinateSystemEvaluatorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsCoordinateSystemEvaluator_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsCoordinateSystemEvaluator_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsCoordinateSystemEvaluator_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsCoordinateSystemEvaluator_GetCoordinateSystemLocal(This,pObjectList,szCoordSystemName,pMatrix)	\
    (This)->lpVtbl -> GetCoordinateSystemLocal(This,pObjectList,szCoordSystemName,pMatrix)

#define IRsCoordinateSystemEvaluator_GetCoordinateSystemGlobal(This,pObjectList,szCoordSystemName,pMatrix)	\
    (This)->lpVtbl -> GetCoordinateSystemGlobal(This,pObjectList,szCoordSystemName,pMatrix)

#define IRsCoordinateSystemEvaluator_GetReferencePosition(This,pObjectList,szCoordSystemName,pPos)	\
    (This)->lpVtbl -> GetReferencePosition(This,pObjectList,szCoordSystemName,pPos)

#define IRsCoordinateSystemEvaluator_GetBoundingBox(This,pObjectList,szCoordSystemName,pCoordSys,pBoundingBox)	\
    (This)->lpVtbl -> GetBoundingBox(This,pObjectList,szCoordSystemName,pCoordSys,pBoundingBox)

#define IRsCoordinateSystemEvaluator_UpdateBoundingBox(This,pObjectList)	\
    (This)->lpVtbl -> UpdateBoundingBox(This,pObjectList)

#define IRsCoordinateSystemEvaluator_RegisterObject(This,pObj)	\
    (This)->lpVtbl -> RegisterObject(This,pObj)

#define IRsCoordinateSystemEvaluator_UnregisterObject(This,pObj)	\
    (This)->lpVtbl -> UnregisterObject(This,pObj)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsCoordinateSystemEvaluator_GetCoordinateSystemLocal_Proxy( 
    IRsCoordinateSystemEvaluator * This,
    /* [in] */ IRsObjectList *pObjectList,
    /* [in] */ BSTR szCoordSystemName,
    /* [out] */ RtMatrixf *pMatrix);


void __RPC_STUB IRsCoordinateSystemEvaluator_GetCoordinateSystemLocal_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsCoordinateSystemEvaluator_GetCoordinateSystemGlobal_Proxy( 
    IRsCoordinateSystemEvaluator * This,
    /* [in] */ IRsObjectList *pObjectList,
    /* [in] */ BSTR szCoordSystemName,
    /* [out] */ RtMatrixf *pMatrix);


void __RPC_STUB IRsCoordinateSystemEvaluator_GetCoordinateSystemGlobal_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsCoordinateSystemEvaluator_GetReferencePosition_Proxy( 
    IRsCoordinateSystemEvaluator * This,
    /* [in] */ IRsObjectList *pObjectList,
    /* [in] */ BSTR szCoordSystemName,
    /* [out] */ RtPoint *pPos);


void __RPC_STUB IRsCoordinateSystemEvaluator_GetReferencePosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsCoordinateSystemEvaluator_GetBoundingBox_Proxy( 
    IRsCoordinateSystemEvaluator * This,
    /* [in] */ IRsObjectList *pObjectList,
    /* [in] */ BSTR szCoordSystemName,
    /* [in] */ RtMatrixf *pCoordSys,
    /* [out] */ RtBoundingBox *pBoundingBox);


void __RPC_STUB IRsCoordinateSystemEvaluator_GetBoundingBox_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsCoordinateSystemEvaluator_UpdateBoundingBox_Proxy( 
    IRsCoordinateSystemEvaluator * This,
    /* [in] */ IRsObjectList *pObjectList);


void __RPC_STUB IRsCoordinateSystemEvaluator_UpdateBoundingBox_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsCoordinateSystemEvaluator_RegisterObject_Proxy( 
    IRsCoordinateSystemEvaluator * This,
    /* [in] */ IRsObject *pObj);


void __RPC_STUB IRsCoordinateSystemEvaluator_RegisterObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsCoordinateSystemEvaluator_UnregisterObject_Proxy( 
    IRsCoordinateSystemEvaluator * This,
    /* [in] */ IRsObject *pObj);


void __RPC_STUB IRsCoordinateSystemEvaluator_UnregisterObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsCoordinateSystemEvaluator_INTERFACE_DEFINED__ */


#ifndef __IRsCoordinateSystemsEventsListener_INTERFACE_DEFINED__
#define __IRsCoordinateSystemsEventsListener_INTERFACE_DEFINED__

/* interface IRsCoordinateSystemsEventsListener */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsCoordinateSystemsEventsListener;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("80420C33-215E-410b-8718-26714C1E344A")
    IRsCoordinateSystemsEventsListener : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE OnBoundingBoxInvalidated( 
            /* [in] */ IRsObject *pEventSource) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnCoordSysInvalidated( 
            /* [in] */ IRsObject *pEventSource) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsCoordinateSystemsEventsListenerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsCoordinateSystemsEventsListener * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsCoordinateSystemsEventsListener * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsCoordinateSystemsEventsListener * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnBoundingBoxInvalidated )( 
            IRsCoordinateSystemsEventsListener * This,
            /* [in] */ IRsObject *pEventSource);
        
        HRESULT ( STDMETHODCALLTYPE *OnCoordSysInvalidated )( 
            IRsCoordinateSystemsEventsListener * This,
            /* [in] */ IRsObject *pEventSource);
        
        END_INTERFACE
    } IRsCoordinateSystemsEventsListenerVtbl;

    interface IRsCoordinateSystemsEventsListener
    {
        CONST_VTBL struct IRsCoordinateSystemsEventsListenerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsCoordinateSystemsEventsListener_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsCoordinateSystemsEventsListener_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsCoordinateSystemsEventsListener_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsCoordinateSystemsEventsListener_OnBoundingBoxInvalidated(This,pEventSource)	\
    (This)->lpVtbl -> OnBoundingBoxInvalidated(This,pEventSource)

#define IRsCoordinateSystemsEventsListener_OnCoordSysInvalidated(This,pEventSource)	\
    (This)->lpVtbl -> OnCoordSysInvalidated(This,pEventSource)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsCoordinateSystemsEventsListener_OnBoundingBoxInvalidated_Proxy( 
    IRsCoordinateSystemsEventsListener * This,
    /* [in] */ IRsObject *pEventSource);


void __RPC_STUB IRsCoordinateSystemsEventsListener_OnBoundingBoxInvalidated_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsCoordinateSystemsEventsListener_OnCoordSysInvalidated_Proxy( 
    IRsCoordinateSystemsEventsListener * This,
    /* [in] */ IRsObject *pEventSource);


void __RPC_STUB IRsCoordinateSystemsEventsListener_OnCoordSysInvalidated_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsCoordinateSystemsEventsListener_INTERFACE_DEFINED__ */


#ifndef __IRsCoordinateSystemManager_INTERFACE_DEFINED__
#define __IRsCoordinateSystemManager_INTERFACE_DEFINED__

/* interface IRsCoordinateSystemManager */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsCoordinateSystemManager;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4B814CBE-0CCE-4866-9DBC-ADE183E5A1CE")
    IRsCoordinateSystemManager : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RegisterCoordinatesEvaluator( 
            /* [in] */ IRsCoordinateSystemEvaluator *pEvaluator) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnRegisterCoordinatesEvaluator( 
            /* [in] */ IRsCoordinateSystemEvaluator *pEvaluator) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ValidateCoordinateSystem( 
            /* [in] */ IRsObjectList *pObjList) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCoordinateSystemLocal( 
            /* [in] */ IRsObjectList *pObjList,
            /* [in] */ BSTR szCoordSystemName,
            /* [out] */ RtMatrixf *pMatrix) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCoordinateSystemGlobal( 
            /* [in] */ IRsObjectList *pObjList,
            /* [in] */ BSTR szCoordSystemName,
            /* [out] */ RtMatrixf *pMatrix) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetReferencePosition( 
            /* [in] */ IRsObjectList *pObjList,
            /* [in] */ BSTR szCoordSystemName,
            /* [out] */ RtVector3f *pPostion) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UpdateBoundingBox( 
            /* [in] */ IRsObjectList *pObjList) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetBoundingBox( 
            /* [in] */ IRsObjectList *pObjList,
            /* [in] */ BSTR szCoordSystemName,
            /* [in] */ RtMatrixf *pCoordinates,
            /* [out] */ RtBoundingBox *pBBox) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RegisterObjects( 
            /* [in] */ IRsObjectList *pObjList,
            /* [in] */ IRsCoordinateSystemsEventsListener *pEventsListener) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnregisterObjects( 
            /* [in] */ IRsObjectList *pObjList,
            /* [in] */ IRsCoordinateSystemsEventsListener *pEventsListener) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SendBoundingBoxInvalidatedNotify( 
            /* [in] */ IRsObject *pObj) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SendCoordSysInvalidatedNotify( 
            /* [in] */ IRsObject *pObj) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetActiveCoordinatesEvaluator( 
            /* [retval][out] */ IRsCoordinateSystemEvaluator **ppTopEval) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsCoordinateSystemManagerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsCoordinateSystemManager * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsCoordinateSystemManager * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsCoordinateSystemManager * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterCoordinatesEvaluator )( 
            IRsCoordinateSystemManager * This,
            /* [in] */ IRsCoordinateSystemEvaluator *pEvaluator);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnRegisterCoordinatesEvaluator )( 
            IRsCoordinateSystemManager * This,
            /* [in] */ IRsCoordinateSystemEvaluator *pEvaluator);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ValidateCoordinateSystem )( 
            IRsCoordinateSystemManager * This,
            /* [in] */ IRsObjectList *pObjList);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCoordinateSystemLocal )( 
            IRsCoordinateSystemManager * This,
            /* [in] */ IRsObjectList *pObjList,
            /* [in] */ BSTR szCoordSystemName,
            /* [out] */ RtMatrixf *pMatrix);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCoordinateSystemGlobal )( 
            IRsCoordinateSystemManager * This,
            /* [in] */ IRsObjectList *pObjList,
            /* [in] */ BSTR szCoordSystemName,
            /* [out] */ RtMatrixf *pMatrix);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetReferencePosition )( 
            IRsCoordinateSystemManager * This,
            /* [in] */ IRsObjectList *pObjList,
            /* [in] */ BSTR szCoordSystemName,
            /* [out] */ RtVector3f *pPostion);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UpdateBoundingBox )( 
            IRsCoordinateSystemManager * This,
            /* [in] */ IRsObjectList *pObjList);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IRsCoordinateSystemManager * This,
            /* [in] */ IRsObjectList *pObjList,
            /* [in] */ BSTR szCoordSystemName,
            /* [in] */ RtMatrixf *pCoordinates,
            /* [out] */ RtBoundingBox *pBBox);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterObjects )( 
            IRsCoordinateSystemManager * This,
            /* [in] */ IRsObjectList *pObjList,
            /* [in] */ IRsCoordinateSystemsEventsListener *pEventsListener);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnregisterObjects )( 
            IRsCoordinateSystemManager * This,
            /* [in] */ IRsObjectList *pObjList,
            /* [in] */ IRsCoordinateSystemsEventsListener *pEventsListener);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SendBoundingBoxInvalidatedNotify )( 
            IRsCoordinateSystemManager * This,
            /* [in] */ IRsObject *pObj);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SendCoordSysInvalidatedNotify )( 
            IRsCoordinateSystemManager * This,
            /* [in] */ IRsObject *pObj);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetActiveCoordinatesEvaluator )( 
            IRsCoordinateSystemManager * This,
            /* [retval][out] */ IRsCoordinateSystemEvaluator **ppTopEval);
        
        END_INTERFACE
    } IRsCoordinateSystemManagerVtbl;

    interface IRsCoordinateSystemManager
    {
        CONST_VTBL struct IRsCoordinateSystemManagerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsCoordinateSystemManager_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsCoordinateSystemManager_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsCoordinateSystemManager_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsCoordinateSystemManager_RegisterCoordinatesEvaluator(This,pEvaluator)	\
    (This)->lpVtbl -> RegisterCoordinatesEvaluator(This,pEvaluator)

#define IRsCoordinateSystemManager_UnRegisterCoordinatesEvaluator(This,pEvaluator)	\
    (This)->lpVtbl -> UnRegisterCoordinatesEvaluator(This,pEvaluator)

#define IRsCoordinateSystemManager_ValidateCoordinateSystem(This,pObjList)	\
    (This)->lpVtbl -> ValidateCoordinateSystem(This,pObjList)

#define IRsCoordinateSystemManager_GetCoordinateSystemLocal(This,pObjList,szCoordSystemName,pMatrix)	\
    (This)->lpVtbl -> GetCoordinateSystemLocal(This,pObjList,szCoordSystemName,pMatrix)

#define IRsCoordinateSystemManager_GetCoordinateSystemGlobal(This,pObjList,szCoordSystemName,pMatrix)	\
    (This)->lpVtbl -> GetCoordinateSystemGlobal(This,pObjList,szCoordSystemName,pMatrix)

#define IRsCoordinateSystemManager_GetReferencePosition(This,pObjList,szCoordSystemName,pPostion)	\
    (This)->lpVtbl -> GetReferencePosition(This,pObjList,szCoordSystemName,pPostion)

#define IRsCoordinateSystemManager_UpdateBoundingBox(This,pObjList)	\
    (This)->lpVtbl -> UpdateBoundingBox(This,pObjList)

#define IRsCoordinateSystemManager_GetBoundingBox(This,pObjList,szCoordSystemName,pCoordinates,pBBox)	\
    (This)->lpVtbl -> GetBoundingBox(This,pObjList,szCoordSystemName,pCoordinates,pBBox)

#define IRsCoordinateSystemManager_RegisterObjects(This,pObjList,pEventsListener)	\
    (This)->lpVtbl -> RegisterObjects(This,pObjList,pEventsListener)

#define IRsCoordinateSystemManager_UnregisterObjects(This,pObjList,pEventsListener)	\
    (This)->lpVtbl -> UnregisterObjects(This,pObjList,pEventsListener)

#define IRsCoordinateSystemManager_SendBoundingBoxInvalidatedNotify(This,pObj)	\
    (This)->lpVtbl -> SendBoundingBoxInvalidatedNotify(This,pObj)

#define IRsCoordinateSystemManager_SendCoordSysInvalidatedNotify(This,pObj)	\
    (This)->lpVtbl -> SendCoordSysInvalidatedNotify(This,pObj)

#define IRsCoordinateSystemManager_GetActiveCoordinatesEvaluator(This,ppTopEval)	\
    (This)->lpVtbl -> GetActiveCoordinatesEvaluator(This,ppTopEval)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsCoordinateSystemManager_RegisterCoordinatesEvaluator_Proxy( 
    IRsCoordinateSystemManager * This,
    /* [in] */ IRsCoordinateSystemEvaluator *pEvaluator);


void __RPC_STUB IRsCoordinateSystemManager_RegisterCoordinatesEvaluator_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsCoordinateSystemManager_UnRegisterCoordinatesEvaluator_Proxy( 
    IRsCoordinateSystemManager * This,
    /* [in] */ IRsCoordinateSystemEvaluator *pEvaluator);


void __RPC_STUB IRsCoordinateSystemManager_UnRegisterCoordinatesEvaluator_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsCoordinateSystemManager_ValidateCoordinateSystem_Proxy( 
    IRsCoordinateSystemManager * This,
    /* [in] */ IRsObjectList *pObjList);


void __RPC_STUB IRsCoordinateSystemManager_ValidateCoordinateSystem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsCoordinateSystemManager_GetCoordinateSystemLocal_Proxy( 
    IRsCoordinateSystemManager * This,
    /* [in] */ IRsObjectList *pObjList,
    /* [in] */ BSTR szCoordSystemName,
    /* [out] */ RtMatrixf *pMatrix);


void __RPC_STUB IRsCoordinateSystemManager_GetCoordinateSystemLocal_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsCoordinateSystemManager_GetCoordinateSystemGlobal_Proxy( 
    IRsCoordinateSystemManager * This,
    /* [in] */ IRsObjectList *pObjList,
    /* [in] */ BSTR szCoordSystemName,
    /* [out] */ RtMatrixf *pMatrix);


void __RPC_STUB IRsCoordinateSystemManager_GetCoordinateSystemGlobal_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsCoordinateSystemManager_GetReferencePosition_Proxy( 
    IRsCoordinateSystemManager * This,
    /* [in] */ IRsObjectList *pObjList,
    /* [in] */ BSTR szCoordSystemName,
    /* [out] */ RtVector3f *pPostion);


void __RPC_STUB IRsCoordinateSystemManager_GetReferencePosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsCoordinateSystemManager_UpdateBoundingBox_Proxy( 
    IRsCoordinateSystemManager * This,
    /* [in] */ IRsObjectList *pObjList);


void __RPC_STUB IRsCoordinateSystemManager_UpdateBoundingBox_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsCoordinateSystemManager_GetBoundingBox_Proxy( 
    IRsCoordinateSystemManager * This,
    /* [in] */ IRsObjectList *pObjList,
    /* [in] */ BSTR szCoordSystemName,
    /* [in] */ RtMatrixf *pCoordinates,
    /* [out] */ RtBoundingBox *pBBox);


void __RPC_STUB IRsCoordinateSystemManager_GetBoundingBox_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsCoordinateSystemManager_RegisterObjects_Proxy( 
    IRsCoordinateSystemManager * This,
    /* [in] */ IRsObjectList *pObjList,
    /* [in] */ IRsCoordinateSystemsEventsListener *pEventsListener);


void __RPC_STUB IRsCoordinateSystemManager_RegisterObjects_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsCoordinateSystemManager_UnregisterObjects_Proxy( 
    IRsCoordinateSystemManager * This,
    /* [in] */ IRsObjectList *pObjList,
    /* [in] */ IRsCoordinateSystemsEventsListener *pEventsListener);


void __RPC_STUB IRsCoordinateSystemManager_UnregisterObjects_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsCoordinateSystemManager_SendBoundingBoxInvalidatedNotify_Proxy( 
    IRsCoordinateSystemManager * This,
    /* [in] */ IRsObject *pObj);


void __RPC_STUB IRsCoordinateSystemManager_SendBoundingBoxInvalidatedNotify_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsCoordinateSystemManager_SendCoordSysInvalidatedNotify_Proxy( 
    IRsCoordinateSystemManager * This,
    /* [in] */ IRsObject *pObj);


void __RPC_STUB IRsCoordinateSystemManager_SendCoordSysInvalidatedNotify_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsCoordinateSystemManager_GetActiveCoordinatesEvaluator_Proxy( 
    IRsCoordinateSystemManager * This,
    /* [retval][out] */ IRsCoordinateSystemEvaluator **ppTopEval);


void __RPC_STUB IRsCoordinateSystemManager_GetActiveCoordinatesEvaluator_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsCoordinateSystemManager_INTERFACE_DEFINED__ */


#ifndef __IRfMeshRetargetSet_INTERFACE_DEFINED__
#define __IRfMeshRetargetSet_INTERFACE_DEFINED__

/* interface IRfMeshRetargetSet */
/* [unique][helpstring][uuid][local][object] */ 


EXTERN_C const IID IID_IRfMeshRetargetSet;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("627B5723-CDC9-4441-8569-30B53C3FB97C")
    IRfMeshRetargetSet : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSourceMesh( 
            /* [in] */ IRdMesh *pMesh) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetTargetMesh( 
            /* [in] */ IRdMesh *pMesh) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RetargetDisplacement( 
            /* [in] */ IRdVertexStream *pStreamIn,
            /* [out] */ IRdVertexStream **ppStreamOut) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RetargetVertices( 
            /* [in] */ IRdVertexStream *pStreamIn,
            /* [out] */ IRdVertexStream **ppStreamOut) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RetargetFloatArray( 
            /* [in] */ RtFloat *pfWeightsIn,
            /* [in] */ RtFloat *pfWeightsOut) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CheckRetarget( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfMeshRetargetSetVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfMeshRetargetSet * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfMeshRetargetSet * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfMeshRetargetSet * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSourceMesh )( 
            IRfMeshRetargetSet * This,
            /* [in] */ IRdMesh *pMesh);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetTargetMesh )( 
            IRfMeshRetargetSet * This,
            /* [in] */ IRdMesh *pMesh);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RetargetDisplacement )( 
            IRfMeshRetargetSet * This,
            /* [in] */ IRdVertexStream *pStreamIn,
            /* [out] */ IRdVertexStream **ppStreamOut);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RetargetVertices )( 
            IRfMeshRetargetSet * This,
            /* [in] */ IRdVertexStream *pStreamIn,
            /* [out] */ IRdVertexStream **ppStreamOut);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RetargetFloatArray )( 
            IRfMeshRetargetSet * This,
            /* [in] */ RtFloat *pfWeightsIn,
            /* [in] */ RtFloat *pfWeightsOut);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CheckRetarget )( 
            IRfMeshRetargetSet * This);
        
        END_INTERFACE
    } IRfMeshRetargetSetVtbl;

    interface IRfMeshRetargetSet
    {
        CONST_VTBL struct IRfMeshRetargetSetVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfMeshRetargetSet_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfMeshRetargetSet_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfMeshRetargetSet_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfMeshRetargetSet_SetSourceMesh(This,pMesh)	\
    (This)->lpVtbl -> SetSourceMesh(This,pMesh)

#define IRfMeshRetargetSet_SetTargetMesh(This,pMesh)	\
    (This)->lpVtbl -> SetTargetMesh(This,pMesh)

#define IRfMeshRetargetSet_RetargetDisplacement(This,pStreamIn,ppStreamOut)	\
    (This)->lpVtbl -> RetargetDisplacement(This,pStreamIn,ppStreamOut)

#define IRfMeshRetargetSet_RetargetVertices(This,pStreamIn,ppStreamOut)	\
    (This)->lpVtbl -> RetargetVertices(This,pStreamIn,ppStreamOut)

#define IRfMeshRetargetSet_RetargetFloatArray(This,pfWeightsIn,pfWeightsOut)	\
    (This)->lpVtbl -> RetargetFloatArray(This,pfWeightsIn,pfWeightsOut)

#define IRfMeshRetargetSet_CheckRetarget(This)	\
    (This)->lpVtbl -> CheckRetarget(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshRetargetSet_SetSourceMesh_Proxy( 
    IRfMeshRetargetSet * This,
    /* [in] */ IRdMesh *pMesh);


void __RPC_STUB IRfMeshRetargetSet_SetSourceMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshRetargetSet_SetTargetMesh_Proxy( 
    IRfMeshRetargetSet * This,
    /* [in] */ IRdMesh *pMesh);


void __RPC_STUB IRfMeshRetargetSet_SetTargetMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshRetargetSet_RetargetDisplacement_Proxy( 
    IRfMeshRetargetSet * This,
    /* [in] */ IRdVertexStream *pStreamIn,
    /* [out] */ IRdVertexStream **ppStreamOut);


void __RPC_STUB IRfMeshRetargetSet_RetargetDisplacement_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshRetargetSet_RetargetVertices_Proxy( 
    IRfMeshRetargetSet * This,
    /* [in] */ IRdVertexStream *pStreamIn,
    /* [out] */ IRdVertexStream **ppStreamOut);


void __RPC_STUB IRfMeshRetargetSet_RetargetVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshRetargetSet_RetargetFloatArray_Proxy( 
    IRfMeshRetargetSet * This,
    /* [in] */ RtFloat *pfWeightsIn,
    /* [in] */ RtFloat *pfWeightsOut);


void __RPC_STUB IRfMeshRetargetSet_RetargetFloatArray_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMeshRetargetSet_CheckRetarget_Proxy( 
    IRfMeshRetargetSet * This);


void __RPC_STUB IRfMeshRetargetSet_CheckRetarget_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfMeshRetargetSet_INTERFACE_DEFINED__ */


#ifndef __IRsPanelContainer_INTERFACE_DEFINED__
#define __IRsPanelContainer_INTERFACE_DEFINED__

/* interface IRsPanelContainer */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsPanelContainer;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5CA07FC6-806D-4c7f-B9B9-166311467608")
    IRsPanelContainer : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE AddRemovePanels( 
            /* [in] */ RtPanelViewType dwPanelsType) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddPanel( 
            /* [in] */ BSTR bsPanelRoot,
            /* [in] */ RtUlong dwAspect,
            /* [in] */ RtUlong dwMode,
            /* [in] */ RtPanelViewType dwPanelType,
            /* [in] */ RtBool bShowAspect) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddPanelEx( 
            /* [in] */ BSTR bsPanelRoot,
            /* [in] */ BSTR bsPivotRoot,
            /* [in] */ RtUlong dwAspect,
            /* [in] */ RtUlong dwMode,
            /* [in] */ RtPanelViewType dwPanelType,
            /* [in] */ RtBool bShowAspect) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsPanelContainerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsPanelContainer * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsPanelContainer * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsPanelContainer * This);
        
        HRESULT ( STDMETHODCALLTYPE *AddRemovePanels )( 
            IRsPanelContainer * This,
            /* [in] */ RtPanelViewType dwPanelsType);
        
        HRESULT ( STDMETHODCALLTYPE *AddPanel )( 
            IRsPanelContainer * This,
            /* [in] */ BSTR bsPanelRoot,
            /* [in] */ RtUlong dwAspect,
            /* [in] */ RtUlong dwMode,
            /* [in] */ RtPanelViewType dwPanelType,
            /* [in] */ RtBool bShowAspect);
        
        HRESULT ( STDMETHODCALLTYPE *AddPanelEx )( 
            IRsPanelContainer * This,
            /* [in] */ BSTR bsPanelRoot,
            /* [in] */ BSTR bsPivotRoot,
            /* [in] */ RtUlong dwAspect,
            /* [in] */ RtUlong dwMode,
            /* [in] */ RtPanelViewType dwPanelType,
            /* [in] */ RtBool bShowAspect);
        
        END_INTERFACE
    } IRsPanelContainerVtbl;

    interface IRsPanelContainer
    {
        CONST_VTBL struct IRsPanelContainerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsPanelContainer_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsPanelContainer_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsPanelContainer_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsPanelContainer_AddRemovePanels(This,dwPanelsType)	\
    (This)->lpVtbl -> AddRemovePanels(This,dwPanelsType)

#define IRsPanelContainer_AddPanel(This,bsPanelRoot,dwAspect,dwMode,dwPanelType,bShowAspect)	\
    (This)->lpVtbl -> AddPanel(This,bsPanelRoot,dwAspect,dwMode,dwPanelType,bShowAspect)

#define IRsPanelContainer_AddPanelEx(This,bsPanelRoot,bsPivotRoot,dwAspect,dwMode,dwPanelType,bShowAspect)	\
    (This)->lpVtbl -> AddPanelEx(This,bsPanelRoot,bsPivotRoot,dwAspect,dwMode,dwPanelType,bShowAspect)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsPanelContainer_AddRemovePanels_Proxy( 
    IRsPanelContainer * This,
    /* [in] */ RtPanelViewType dwPanelsType);


void __RPC_STUB IRsPanelContainer_AddRemovePanels_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPanelContainer_AddPanel_Proxy( 
    IRsPanelContainer * This,
    /* [in] */ BSTR bsPanelRoot,
    /* [in] */ RtUlong dwAspect,
    /* [in] */ RtUlong dwMode,
    /* [in] */ RtPanelViewType dwPanelType,
    /* [in] */ RtBool bShowAspect);


void __RPC_STUB IRsPanelContainer_AddPanel_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPanelContainer_AddPanelEx_Proxy( 
    IRsPanelContainer * This,
    /* [in] */ BSTR bsPanelRoot,
    /* [in] */ BSTR bsPivotRoot,
    /* [in] */ RtUlong dwAspect,
    /* [in] */ RtUlong dwMode,
    /* [in] */ RtPanelViewType dwPanelType,
    /* [in] */ RtBool bShowAspect);


void __RPC_STUB IRsPanelContainer_AddPanelEx_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsPanelContainer_INTERFACE_DEFINED__ */


#ifndef __IRsMaterialEditor_INTERFACE_DEFINED__
#define __IRsMaterialEditor_INTERFACE_DEFINED__

/* interface IRsMaterialEditor */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsMaterialEditor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A2231DC4-50AB-4e6b-95F5-9F58FC883CB6")
    IRsMaterialEditor : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetPrimaryMaterialEditor( 
            /* [in] */ IRcUndoRedoGroup *spUndoRedo) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UnSetPrimaryMaterialEditor( 
            /* [in] */ IRcUndoRedoGroup *spUndoRedo) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ForceMaterialRefresh( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE EnumMaterialEditorPanels( 
            /* [in] */ IRsPanelContainer *pContainer) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UpdateMaterialNodes( 
            /* [in] */ IRcUndoRedoGroup *spUndoRedo) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMaterialEditorWeight( 
            /* [in] */ RtMatClsId gMatClsId,
            /* [in] */ RtFloat *pWeight) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateDefaultRealTimeMaterial( 
            /* [in] */ IRsMaterialGeneric *pSourceMaterial,
            /* [in] */ IRsNode **ppDefaultD3dMaterial) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreatePreviewImage( 
            /* [in] */ IRsNode *pMaterialNode,
            /* [in] */ RtUlong dwWidth,
            /* [in] */ RtUlong dwHeight,
            /* [in] */ IRdBitmap **ppBitmap) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateMaterialFromGeneric( 
            /* [in] */ RtMatClsId clsMatId,
            /* [in] */ IRdMaterialGeneric *pGeneric,
            /* [in] */ IRsNode **ppMaterialNode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsMaterialEditorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsMaterialEditor * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsMaterialEditor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsMaterialEditor * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetPrimaryMaterialEditor )( 
            IRsMaterialEditor * This,
            /* [in] */ IRcUndoRedoGroup *spUndoRedo);
        
        HRESULT ( STDMETHODCALLTYPE *UnSetPrimaryMaterialEditor )( 
            IRsMaterialEditor * This,
            /* [in] */ IRcUndoRedoGroup *spUndoRedo);
        
        HRESULT ( STDMETHODCALLTYPE *ForceMaterialRefresh )( 
            IRsMaterialEditor * This);
        
        HRESULT ( STDMETHODCALLTYPE *EnumMaterialEditorPanels )( 
            IRsMaterialEditor * This,
            /* [in] */ IRsPanelContainer *pContainer);
        
        HRESULT ( STDMETHODCALLTYPE *UpdateMaterialNodes )( 
            IRsMaterialEditor * This,
            /* [in] */ IRcUndoRedoGroup *spUndoRedo);
        
        HRESULT ( STDMETHODCALLTYPE *GetMaterialEditorWeight )( 
            IRsMaterialEditor * This,
            /* [in] */ RtMatClsId gMatClsId,
            /* [in] */ RtFloat *pWeight);
        
        HRESULT ( STDMETHODCALLTYPE *CreateDefaultRealTimeMaterial )( 
            IRsMaterialEditor * This,
            /* [in] */ IRsMaterialGeneric *pSourceMaterial,
            /* [in] */ IRsNode **ppDefaultD3dMaterial);
        
        HRESULT ( STDMETHODCALLTYPE *CreatePreviewImage )( 
            IRsMaterialEditor * This,
            /* [in] */ IRsNode *pMaterialNode,
            /* [in] */ RtUlong dwWidth,
            /* [in] */ RtUlong dwHeight,
            /* [in] */ IRdBitmap **ppBitmap);
        
        HRESULT ( STDMETHODCALLTYPE *CreateMaterialFromGeneric )( 
            IRsMaterialEditor * This,
            /* [in] */ RtMatClsId clsMatId,
            /* [in] */ IRdMaterialGeneric *pGeneric,
            /* [in] */ IRsNode **ppMaterialNode);
        
        END_INTERFACE
    } IRsMaterialEditorVtbl;

    interface IRsMaterialEditor
    {
        CONST_VTBL struct IRsMaterialEditorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsMaterialEditor_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsMaterialEditor_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsMaterialEditor_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsMaterialEditor_SetPrimaryMaterialEditor(This,spUndoRedo)	\
    (This)->lpVtbl -> SetPrimaryMaterialEditor(This,spUndoRedo)

#define IRsMaterialEditor_UnSetPrimaryMaterialEditor(This,spUndoRedo)	\
    (This)->lpVtbl -> UnSetPrimaryMaterialEditor(This,spUndoRedo)

#define IRsMaterialEditor_ForceMaterialRefresh(This)	\
    (This)->lpVtbl -> ForceMaterialRefresh(This)

#define IRsMaterialEditor_EnumMaterialEditorPanels(This,pContainer)	\
    (This)->lpVtbl -> EnumMaterialEditorPanels(This,pContainer)

#define IRsMaterialEditor_UpdateMaterialNodes(This,spUndoRedo)	\
    (This)->lpVtbl -> UpdateMaterialNodes(This,spUndoRedo)

#define IRsMaterialEditor_GetMaterialEditorWeight(This,gMatClsId,pWeight)	\
    (This)->lpVtbl -> GetMaterialEditorWeight(This,gMatClsId,pWeight)

#define IRsMaterialEditor_CreateDefaultRealTimeMaterial(This,pSourceMaterial,ppDefaultD3dMaterial)	\
    (This)->lpVtbl -> CreateDefaultRealTimeMaterial(This,pSourceMaterial,ppDefaultD3dMaterial)

#define IRsMaterialEditor_CreatePreviewImage(This,pMaterialNode,dwWidth,dwHeight,ppBitmap)	\
    (This)->lpVtbl -> CreatePreviewImage(This,pMaterialNode,dwWidth,dwHeight,ppBitmap)

#define IRsMaterialEditor_CreateMaterialFromGeneric(This,clsMatId,pGeneric,ppMaterialNode)	\
    (This)->lpVtbl -> CreateMaterialFromGeneric(This,clsMatId,pGeneric,ppMaterialNode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsMaterialEditor_SetPrimaryMaterialEditor_Proxy( 
    IRsMaterialEditor * This,
    /* [in] */ IRcUndoRedoGroup *spUndoRedo);


void __RPC_STUB IRsMaterialEditor_SetPrimaryMaterialEditor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsMaterialEditor_UnSetPrimaryMaterialEditor_Proxy( 
    IRsMaterialEditor * This,
    /* [in] */ IRcUndoRedoGroup *spUndoRedo);


void __RPC_STUB IRsMaterialEditor_UnSetPrimaryMaterialEditor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsMaterialEditor_ForceMaterialRefresh_Proxy( 
    IRsMaterialEditor * This);


void __RPC_STUB IRsMaterialEditor_ForceMaterialRefresh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsMaterialEditor_EnumMaterialEditorPanels_Proxy( 
    IRsMaterialEditor * This,
    /* [in] */ IRsPanelContainer *pContainer);


void __RPC_STUB IRsMaterialEditor_EnumMaterialEditorPanels_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsMaterialEditor_UpdateMaterialNodes_Proxy( 
    IRsMaterialEditor * This,
    /* [in] */ IRcUndoRedoGroup *spUndoRedo);


void __RPC_STUB IRsMaterialEditor_UpdateMaterialNodes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsMaterialEditor_GetMaterialEditorWeight_Proxy( 
    IRsMaterialEditor * This,
    /* [in] */ RtMatClsId gMatClsId,
    /* [in] */ RtFloat *pWeight);


void __RPC_STUB IRsMaterialEditor_GetMaterialEditorWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsMaterialEditor_CreateDefaultRealTimeMaterial_Proxy( 
    IRsMaterialEditor * This,
    /* [in] */ IRsMaterialGeneric *pSourceMaterial,
    /* [in] */ IRsNode **ppDefaultD3dMaterial);


void __RPC_STUB IRsMaterialEditor_CreateDefaultRealTimeMaterial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsMaterialEditor_CreatePreviewImage_Proxy( 
    IRsMaterialEditor * This,
    /* [in] */ IRsNode *pMaterialNode,
    /* [in] */ RtUlong dwWidth,
    /* [in] */ RtUlong dwHeight,
    /* [in] */ IRdBitmap **ppBitmap);


void __RPC_STUB IRsMaterialEditor_CreatePreviewImage_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsMaterialEditor_CreateMaterialFromGeneric_Proxy( 
    IRsMaterialEditor * This,
    /* [in] */ RtMatClsId clsMatId,
    /* [in] */ IRdMaterialGeneric *pGeneric,
    /* [in] */ IRsNode **ppMaterialNode);


void __RPC_STUB IRsMaterialEditor_CreateMaterialFromGeneric_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsMaterialEditor_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1369 */
/* [local] */ 


enum ReMaterialInstancingMode
    {	MEIM_USE_DEFAULT	= 0,
	MEIM_COPY	= 1,
	MEIM_SCENE_OBJECT_REFERENCE	= 2,
	MEIM_GLOBAL_REFERENCE	= 3
    } ;

enum ReMaterialConversionMode
    {	MECM_CONVERT_UPDATE_MASTER	= 0,
	MECM_NO_CONVERSION_KEEP_MASTER	= 1,
	MECM_NO_CONVERSION_UPDATE_MASTER	= 2
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1369_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1369_v0_0_s_ifspec;

#ifndef __IRfMaterialEditor_INTERFACE_DEFINED__
#define __IRfMaterialEditor_INTERFACE_DEFINED__

/* interface IRfMaterialEditor */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRfMaterialEditor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("041A2876-98C8-4ca9-AA41-0D26BED7CF33")
    IRfMaterialEditor : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialEditorRoot( 
            /* [out] */ IRsNode **pMaterialEditorNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetActiveMaterial( 
            /* [out] */ IRsNode **pMaterialNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialEditorHandler( 
            /* [out] */ IRsNode **ppMaterialEditorHandler) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetActiveMaterial( 
            /* [in] */ IRsNode *pMaterialNode,
            /* [in] */ IRcUndoRedoGroup *spUndoRedo,
            /* [in] */ RtBool bForceCopy) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ForceMaterialEditorsRefresh( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddMaterial( 
            /* [in] */ enum ReMaterialInstancingMode dwMode,
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtDWORD *pdwOutMatIndex,
            /* [in] */ IRsNode **ppNewMaterial) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMaterial( 
            /* [in] */ enum ReMaterialInstancingMode dwMode,
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtDWORD dwOutMatIndex,
            /* [in] */ IRsNode **ppNewMaterial) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateActiveMaterialCopy( 
            /* [in] */ RtUlong dwMaterialIndex,
            /* [in] */ IRsNode **ppNewMaterial) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE OpenMaterialEditor( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetActiveMaterialEditor( 
            /* [retval][out] */ IRsNode **ppActiveMaterialEditor) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetActiveMasterMaterial( 
            /* [out] */ IRsMaterialGeneric **ppGeneric) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialEditor( 
            /* [in] */ GUID gId,
            /* [out] */ IRsNode **ppEditor) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveAllMaterialFlavors( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetActiveMaterialFlavorManager( 
            /* [in] */ IRsMaterialFlavorManager **pChunkManager) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetNewMaterialFlavor( 
            /* [in] */ IRsNode *spMaterialNode,
            /* [in] */ CONID gMaterialConId) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE OpenMaterialEditorPanels( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveDependentMaterialFlavors( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMaterialFlavorMaster( 
            /* [in] */ GUID clsId) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialConversionMode( 
            /* [in] */ enum ReMaterialConversionMode *pdwMode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE OpenContextMaterialEditor( 
            /* [in] */ IRcUndoRedoGroup *spUndoRedo) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetContextMaterialEditor( 
            /* [in] */ RtMatClsId clsMatId,
            /* [in] */ IRsMaterialEditor **ppEditor) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateRealTimeMaterial( 
            /* [in] */ IRsMaterialGeneric *pMaterial,
            /* [in] */ IRsNode **ppD3dmaterial) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialNode( 
            /* [in] */ RtMatClsId clsMatId,
            /* [in] */ IRsNode **ppMaterial) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddRealTimeMaterial( 
            /* [in] */ IRsNode *spMaterial) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE PaintObject( 
            /* [in] */ IRsNode *pNode,
            /* [in] */ IRsNode *pMaterial) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialLiveStatus( 
            /* [in] */ RtBool *pLiveMaterial) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialInstancingMode( 
            /* [in] */ enum ReMaterialInstancingMode *pdwInstancingMode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialInstancingStatus( 
            /* [in] */ enum ReMaterialInstancingMode *pdwInstancingMode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LocateActiveMaterial( 
            /* [in] */ IRnEncapsulator *pEnc,
            /* [in] */ IRsNode **ppMaterialNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialActiveInfo( 
            /* [in] */ IRdMaterialActiveInfo **ppActiveInfo) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetActiveMaterialFlavor( 
            /* [in] */ RtMatClsId clsMatId,
            /* [in] */ IRsMaterialGeneric **ppMaterial) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfMaterialEditorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfMaterialEditor * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfMaterialEditor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfMaterialEditor * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialEditorRoot )( 
            IRfMaterialEditor * This,
            /* [out] */ IRsNode **pMaterialEditorNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetActiveMaterial )( 
            IRfMaterialEditor * This,
            /* [out] */ IRsNode **pMaterialNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialEditorHandler )( 
            IRfMaterialEditor * This,
            /* [out] */ IRsNode **ppMaterialEditorHandler);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetActiveMaterial )( 
            IRfMaterialEditor * This,
            /* [in] */ IRsNode *pMaterialNode,
            /* [in] */ IRcUndoRedoGroup *spUndoRedo,
            /* [in] */ RtBool bForceCopy);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ForceMaterialEditorsRefresh )( 
            IRfMaterialEditor * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddMaterial )( 
            IRfMaterialEditor * This,
            /* [in] */ enum ReMaterialInstancingMode dwMode,
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtDWORD *pdwOutMatIndex,
            /* [in] */ IRsNode **ppNewMaterial);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMaterial )( 
            IRfMaterialEditor * This,
            /* [in] */ enum ReMaterialInstancingMode dwMode,
            /* [in] */ IRsNode *pNode,
            /* [in] */ RtDWORD dwOutMatIndex,
            /* [in] */ IRsNode **ppNewMaterial);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateActiveMaterialCopy )( 
            IRfMaterialEditor * This,
            /* [in] */ RtUlong dwMaterialIndex,
            /* [in] */ IRsNode **ppNewMaterial);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *OpenMaterialEditor )( 
            IRfMaterialEditor * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetActiveMaterialEditor )( 
            IRfMaterialEditor * This,
            /* [retval][out] */ IRsNode **ppActiveMaterialEditor);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetActiveMasterMaterial )( 
            IRfMaterialEditor * This,
            /* [out] */ IRsMaterialGeneric **ppGeneric);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialEditor )( 
            IRfMaterialEditor * This,
            /* [in] */ GUID gId,
            /* [out] */ IRsNode **ppEditor);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveAllMaterialFlavors )( 
            IRfMaterialEditor * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetActiveMaterialFlavorManager )( 
            IRfMaterialEditor * This,
            /* [in] */ IRsMaterialFlavorManager **pChunkManager);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetNewMaterialFlavor )( 
            IRfMaterialEditor * This,
            /* [in] */ IRsNode *spMaterialNode,
            /* [in] */ CONID gMaterialConId);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *OpenMaterialEditorPanels )( 
            IRfMaterialEditor * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveDependentMaterialFlavors )( 
            IRfMaterialEditor * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMaterialFlavorMaster )( 
            IRfMaterialEditor * This,
            /* [in] */ GUID clsId);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialConversionMode )( 
            IRfMaterialEditor * This,
            /* [in] */ enum ReMaterialConversionMode *pdwMode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *OpenContextMaterialEditor )( 
            IRfMaterialEditor * This,
            /* [in] */ IRcUndoRedoGroup *spUndoRedo);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetContextMaterialEditor )( 
            IRfMaterialEditor * This,
            /* [in] */ RtMatClsId clsMatId,
            /* [in] */ IRsMaterialEditor **ppEditor);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateRealTimeMaterial )( 
            IRfMaterialEditor * This,
            /* [in] */ IRsMaterialGeneric *pMaterial,
            /* [in] */ IRsNode **ppD3dmaterial);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialNode )( 
            IRfMaterialEditor * This,
            /* [in] */ RtMatClsId clsMatId,
            /* [in] */ IRsNode **ppMaterial);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddRealTimeMaterial )( 
            IRfMaterialEditor * This,
            /* [in] */ IRsNode *spMaterial);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *PaintObject )( 
            IRfMaterialEditor * This,
            /* [in] */ IRsNode *pNode,
            /* [in] */ IRsNode *pMaterial);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialLiveStatus )( 
            IRfMaterialEditor * This,
            /* [in] */ RtBool *pLiveMaterial);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialInstancingMode )( 
            IRfMaterialEditor * This,
            /* [in] */ enum ReMaterialInstancingMode *pdwInstancingMode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialInstancingStatus )( 
            IRfMaterialEditor * This,
            /* [in] */ enum ReMaterialInstancingMode *pdwInstancingMode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LocateActiveMaterial )( 
            IRfMaterialEditor * This,
            /* [in] */ IRnEncapsulator *pEnc,
            /* [in] */ IRsNode **ppMaterialNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialActiveInfo )( 
            IRfMaterialEditor * This,
            /* [in] */ IRdMaterialActiveInfo **ppActiveInfo);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetActiveMaterialFlavor )( 
            IRfMaterialEditor * This,
            /* [in] */ RtMatClsId clsMatId,
            /* [in] */ IRsMaterialGeneric **ppMaterial);
        
        END_INTERFACE
    } IRfMaterialEditorVtbl;

    interface IRfMaterialEditor
    {
        CONST_VTBL struct IRfMaterialEditorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfMaterialEditor_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfMaterialEditor_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfMaterialEditor_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfMaterialEditor_GetMaterialEditorRoot(This,pMaterialEditorNode)	\
    (This)->lpVtbl -> GetMaterialEditorRoot(This,pMaterialEditorNode)

#define IRfMaterialEditor_GetActiveMaterial(This,pMaterialNode)	\
    (This)->lpVtbl -> GetActiveMaterial(This,pMaterialNode)

#define IRfMaterialEditor_GetMaterialEditorHandler(This,ppMaterialEditorHandler)	\
    (This)->lpVtbl -> GetMaterialEditorHandler(This,ppMaterialEditorHandler)

#define IRfMaterialEditor_SetActiveMaterial(This,pMaterialNode,spUndoRedo,bForceCopy)	\
    (This)->lpVtbl -> SetActiveMaterial(This,pMaterialNode,spUndoRedo,bForceCopy)

#define IRfMaterialEditor_ForceMaterialEditorsRefresh(This)	\
    (This)->lpVtbl -> ForceMaterialEditorsRefresh(This)

#define IRfMaterialEditor_AddMaterial(This,dwMode,pNode,pdwOutMatIndex,ppNewMaterial)	\
    (This)->lpVtbl -> AddMaterial(This,dwMode,pNode,pdwOutMatIndex,ppNewMaterial)

#define IRfMaterialEditor_SetMaterial(This,dwMode,pNode,dwOutMatIndex,ppNewMaterial)	\
    (This)->lpVtbl -> SetMaterial(This,dwMode,pNode,dwOutMatIndex,ppNewMaterial)

#define IRfMaterialEditor_CreateActiveMaterialCopy(This,dwMaterialIndex,ppNewMaterial)	\
    (This)->lpVtbl -> CreateActiveMaterialCopy(This,dwMaterialIndex,ppNewMaterial)

#define IRfMaterialEditor_OpenMaterialEditor(This)	\
    (This)->lpVtbl -> OpenMaterialEditor(This)

#define IRfMaterialEditor_GetActiveMaterialEditor(This,ppActiveMaterialEditor)	\
    (This)->lpVtbl -> GetActiveMaterialEditor(This,ppActiveMaterialEditor)

#define IRfMaterialEditor_GetActiveMasterMaterial(This,ppGeneric)	\
    (This)->lpVtbl -> GetActiveMasterMaterial(This,ppGeneric)

#define IRfMaterialEditor_GetMaterialEditor(This,gId,ppEditor)	\
    (This)->lpVtbl -> GetMaterialEditor(This,gId,ppEditor)

#define IRfMaterialEditor_RemoveAllMaterialFlavors(This)	\
    (This)->lpVtbl -> RemoveAllMaterialFlavors(This)

#define IRfMaterialEditor_GetActiveMaterialFlavorManager(This,pChunkManager)	\
    (This)->lpVtbl -> GetActiveMaterialFlavorManager(This,pChunkManager)

#define IRfMaterialEditor_SetNewMaterialFlavor(This,spMaterialNode,gMaterialConId)	\
    (This)->lpVtbl -> SetNewMaterialFlavor(This,spMaterialNode,gMaterialConId)

#define IRfMaterialEditor_OpenMaterialEditorPanels(This)	\
    (This)->lpVtbl -> OpenMaterialEditorPanels(This)

#define IRfMaterialEditor_RemoveDependentMaterialFlavors(This)	\
    (This)->lpVtbl -> RemoveDependentMaterialFlavors(This)

#define IRfMaterialEditor_SetMaterialFlavorMaster(This,clsId)	\
    (This)->lpVtbl -> SetMaterialFlavorMaster(This,clsId)

#define IRfMaterialEditor_GetMaterialConversionMode(This,pdwMode)	\
    (This)->lpVtbl -> GetMaterialConversionMode(This,pdwMode)

#define IRfMaterialEditor_OpenContextMaterialEditor(This,spUndoRedo)	\
    (This)->lpVtbl -> OpenContextMaterialEditor(This,spUndoRedo)

#define IRfMaterialEditor_GetContextMaterialEditor(This,clsMatId,ppEditor)	\
    (This)->lpVtbl -> GetContextMaterialEditor(This,clsMatId,ppEditor)

#define IRfMaterialEditor_CreateRealTimeMaterial(This,pMaterial,ppD3dmaterial)	\
    (This)->lpVtbl -> CreateRealTimeMaterial(This,pMaterial,ppD3dmaterial)

#define IRfMaterialEditor_GetMaterialNode(This,clsMatId,ppMaterial)	\
    (This)->lpVtbl -> GetMaterialNode(This,clsMatId,ppMaterial)

#define IRfMaterialEditor_AddRealTimeMaterial(This,spMaterial)	\
    (This)->lpVtbl -> AddRealTimeMaterial(This,spMaterial)

#define IRfMaterialEditor_PaintObject(This,pNode,pMaterial)	\
    (This)->lpVtbl -> PaintObject(This,pNode,pMaterial)

#define IRfMaterialEditor_GetMaterialLiveStatus(This,pLiveMaterial)	\
    (This)->lpVtbl -> GetMaterialLiveStatus(This,pLiveMaterial)

#define IRfMaterialEditor_GetMaterialInstancingMode(This,pdwInstancingMode)	\
    (This)->lpVtbl -> GetMaterialInstancingMode(This,pdwInstancingMode)

#define IRfMaterialEditor_GetMaterialInstancingStatus(This,pdwInstancingMode)	\
    (This)->lpVtbl -> GetMaterialInstancingStatus(This,pdwInstancingMode)

#define IRfMaterialEditor_LocateActiveMaterial(This,pEnc,ppMaterialNode)	\
    (This)->lpVtbl -> LocateActiveMaterial(This,pEnc,ppMaterialNode)

#define IRfMaterialEditor_GetMaterialActiveInfo(This,ppActiveInfo)	\
    (This)->lpVtbl -> GetMaterialActiveInfo(This,ppActiveInfo)

#define IRfMaterialEditor_GetActiveMaterialFlavor(This,clsMatId,ppMaterial)	\
    (This)->lpVtbl -> GetActiveMaterialFlavor(This,clsMatId,ppMaterial)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_GetMaterialEditorRoot_Proxy( 
    IRfMaterialEditor * This,
    /* [out] */ IRsNode **pMaterialEditorNode);


void __RPC_STUB IRfMaterialEditor_GetMaterialEditorRoot_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_GetActiveMaterial_Proxy( 
    IRfMaterialEditor * This,
    /* [out] */ IRsNode **pMaterialNode);


void __RPC_STUB IRfMaterialEditor_GetActiveMaterial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_GetMaterialEditorHandler_Proxy( 
    IRfMaterialEditor * This,
    /* [out] */ IRsNode **ppMaterialEditorHandler);


void __RPC_STUB IRfMaterialEditor_GetMaterialEditorHandler_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_SetActiveMaterial_Proxy( 
    IRfMaterialEditor * This,
    /* [in] */ IRsNode *pMaterialNode,
    /* [in] */ IRcUndoRedoGroup *spUndoRedo,
    /* [in] */ RtBool bForceCopy);


void __RPC_STUB IRfMaterialEditor_SetActiveMaterial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_ForceMaterialEditorsRefresh_Proxy( 
    IRfMaterialEditor * This);


void __RPC_STUB IRfMaterialEditor_ForceMaterialEditorsRefresh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_AddMaterial_Proxy( 
    IRfMaterialEditor * This,
    /* [in] */ enum ReMaterialInstancingMode dwMode,
    /* [in] */ IRsNode *pNode,
    /* [in] */ RtDWORD *pdwOutMatIndex,
    /* [in] */ IRsNode **ppNewMaterial);


void __RPC_STUB IRfMaterialEditor_AddMaterial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_SetMaterial_Proxy( 
    IRfMaterialEditor * This,
    /* [in] */ enum ReMaterialInstancingMode dwMode,
    /* [in] */ IRsNode *pNode,
    /* [in] */ RtDWORD dwOutMatIndex,
    /* [in] */ IRsNode **ppNewMaterial);


void __RPC_STUB IRfMaterialEditor_SetMaterial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_CreateActiveMaterialCopy_Proxy( 
    IRfMaterialEditor * This,
    /* [in] */ RtUlong dwMaterialIndex,
    /* [in] */ IRsNode **ppNewMaterial);


void __RPC_STUB IRfMaterialEditor_CreateActiveMaterialCopy_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_OpenMaterialEditor_Proxy( 
    IRfMaterialEditor * This);


void __RPC_STUB IRfMaterialEditor_OpenMaterialEditor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_GetActiveMaterialEditor_Proxy( 
    IRfMaterialEditor * This,
    /* [retval][out] */ IRsNode **ppActiveMaterialEditor);


void __RPC_STUB IRfMaterialEditor_GetActiveMaterialEditor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_GetActiveMasterMaterial_Proxy( 
    IRfMaterialEditor * This,
    /* [out] */ IRsMaterialGeneric **ppGeneric);


void __RPC_STUB IRfMaterialEditor_GetActiveMasterMaterial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_GetMaterialEditor_Proxy( 
    IRfMaterialEditor * This,
    /* [in] */ GUID gId,
    /* [out] */ IRsNode **ppEditor);


void __RPC_STUB IRfMaterialEditor_GetMaterialEditor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_RemoveAllMaterialFlavors_Proxy( 
    IRfMaterialEditor * This);


void __RPC_STUB IRfMaterialEditor_RemoveAllMaterialFlavors_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_GetActiveMaterialFlavorManager_Proxy( 
    IRfMaterialEditor * This,
    /* [in] */ IRsMaterialFlavorManager **pChunkManager);


void __RPC_STUB IRfMaterialEditor_GetActiveMaterialFlavorManager_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_SetNewMaterialFlavor_Proxy( 
    IRfMaterialEditor * This,
    /* [in] */ IRsNode *spMaterialNode,
    /* [in] */ CONID gMaterialConId);


void __RPC_STUB IRfMaterialEditor_SetNewMaterialFlavor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_OpenMaterialEditorPanels_Proxy( 
    IRfMaterialEditor * This);


void __RPC_STUB IRfMaterialEditor_OpenMaterialEditorPanels_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_RemoveDependentMaterialFlavors_Proxy( 
    IRfMaterialEditor * This);


void __RPC_STUB IRfMaterialEditor_RemoveDependentMaterialFlavors_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_SetMaterialFlavorMaster_Proxy( 
    IRfMaterialEditor * This,
    /* [in] */ GUID clsId);


void __RPC_STUB IRfMaterialEditor_SetMaterialFlavorMaster_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_GetMaterialConversionMode_Proxy( 
    IRfMaterialEditor * This,
    /* [in] */ enum ReMaterialConversionMode *pdwMode);


void __RPC_STUB IRfMaterialEditor_GetMaterialConversionMode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_OpenContextMaterialEditor_Proxy( 
    IRfMaterialEditor * This,
    /* [in] */ IRcUndoRedoGroup *spUndoRedo);


void __RPC_STUB IRfMaterialEditor_OpenContextMaterialEditor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_GetContextMaterialEditor_Proxy( 
    IRfMaterialEditor * This,
    /* [in] */ RtMatClsId clsMatId,
    /* [in] */ IRsMaterialEditor **ppEditor);


void __RPC_STUB IRfMaterialEditor_GetContextMaterialEditor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_CreateRealTimeMaterial_Proxy( 
    IRfMaterialEditor * This,
    /* [in] */ IRsMaterialGeneric *pMaterial,
    /* [in] */ IRsNode **ppD3dmaterial);


void __RPC_STUB IRfMaterialEditor_CreateRealTimeMaterial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_GetMaterialNode_Proxy( 
    IRfMaterialEditor * This,
    /* [in] */ RtMatClsId clsMatId,
    /* [in] */ IRsNode **ppMaterial);


void __RPC_STUB IRfMaterialEditor_GetMaterialNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_AddRealTimeMaterial_Proxy( 
    IRfMaterialEditor * This,
    /* [in] */ IRsNode *spMaterial);


void __RPC_STUB IRfMaterialEditor_AddRealTimeMaterial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_PaintObject_Proxy( 
    IRfMaterialEditor * This,
    /* [in] */ IRsNode *pNode,
    /* [in] */ IRsNode *pMaterial);


void __RPC_STUB IRfMaterialEditor_PaintObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_GetMaterialLiveStatus_Proxy( 
    IRfMaterialEditor * This,
    /* [in] */ RtBool *pLiveMaterial);


void __RPC_STUB IRfMaterialEditor_GetMaterialLiveStatus_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_GetMaterialInstancingMode_Proxy( 
    IRfMaterialEditor * This,
    /* [in] */ enum ReMaterialInstancingMode *pdwInstancingMode);


void __RPC_STUB IRfMaterialEditor_GetMaterialInstancingMode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_GetMaterialInstancingStatus_Proxy( 
    IRfMaterialEditor * This,
    /* [in] */ enum ReMaterialInstancingMode *pdwInstancingMode);


void __RPC_STUB IRfMaterialEditor_GetMaterialInstancingStatus_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_LocateActiveMaterial_Proxy( 
    IRfMaterialEditor * This,
    /* [in] */ IRnEncapsulator *pEnc,
    /* [in] */ IRsNode **ppMaterialNode);


void __RPC_STUB IRfMaterialEditor_LocateActiveMaterial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_GetMaterialActiveInfo_Proxy( 
    IRfMaterialEditor * This,
    /* [in] */ IRdMaterialActiveInfo **ppActiveInfo);


void __RPC_STUB IRfMaterialEditor_GetMaterialActiveInfo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfMaterialEditor_GetActiveMaterialFlavor_Proxy( 
    IRfMaterialEditor * This,
    /* [in] */ RtMatClsId clsMatId,
    /* [in] */ IRsMaterialGeneric **ppMaterial);


void __RPC_STUB IRfMaterialEditor_GetActiveMaterialFlavor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfMaterialEditor_INTERFACE_DEFINED__ */


#ifndef __IRdVertexMorph_INTERFACE_DEFINED__
#define __IRdVertexMorph_INTERFACE_DEFINED__

/* interface IRdVertexMorph */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdVertexMorph;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("67A83D3B-1442-4d49-96D3-B871E6BAF6D1")
    IRdVertexMorph : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddMorph( 
            /* [in] */ IRsGenStream *pControlVertexStream,
            /* [in] */ IRsGenStream *pMorphVertexStream,
            /* [in] */ GUID *gMorphId) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveMorph( 
            /* [in] */ RtUlong dwIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMorphCount( 
            /* [retval][out] */ RtUlong *pdwCount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMorphBuffer( 
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ IRsGenStream **ppVertexStream) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetControlBuffer( 
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ IRsGenStream **ppVertexStream) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMorphWeight( 
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ RtFloat *pfWeight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMorphId( 
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ GUID *pgId) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetMorphBuffer( 
            /* [in] */ RtUlong dwIndex,
            /* [in] */ IRsGenStream *pVertexStream) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetControlBuffer( 
            /* [in] */ RtUlong dwIndex,
            /* [in] */ IRsGenStream *pVertexStream) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetMorphWeight( 
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtFloat fWeight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetActiveMorph( 
            /* [in] */ RtUlong dwIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetActiveMorph( 
            /* [retval][out] */ RtUlong *pdwIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetReferenceMeshes( 
            /* [in] */ IRdMesh *pControlMesh,
            /* [in] */ IRdMesh *pMorphMesh) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetReferenceMeshes( 
            /* [out] */ IRdMesh **ppControlMesh,
            /* [out] */ IRdMesh **ppMorphMesh) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetMorphVertexCount( 
            /* [in] */ RtUlong dwVertexCount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMorphVertexCount( 
            /* [retval][out] */ RtUlong *pdwVertexCount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetControlVertexCount( 
            /* [in] */ RtUlong dwVertexCount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetControlVertexCount( 
            /* [retval][out] */ RtUlong *pdwVertexCount) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_RelativeEditing( 
            /* [in] */ RtBool bRelative) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_RelativeEditing( 
            /* [retval][out] */ RtBool *pbRelative) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdVertexMorphVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdVertexMorph * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdVertexMorph * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdVertexMorph * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdVertexMorph * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdVertexMorph * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdVertexMorph * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdVertexMorph * 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 *AddMorph )( 
            IRdVertexMorph * This,
            /* [in] */ IRsGenStream *pControlVertexStream,
            /* [in] */ IRsGenStream *pMorphVertexStream,
            /* [in] */ GUID *gMorphId);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveMorph )( 
            IRdVertexMorph * This,
            /* [in] */ RtUlong dwIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMorphCount )( 
            IRdVertexMorph * This,
            /* [retval][out] */ RtUlong *pdwCount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMorphBuffer )( 
            IRdVertexMorph * This,
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ IRsGenStream **ppVertexStream);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetControlBuffer )( 
            IRdVertexMorph * This,
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ IRsGenStream **ppVertexStream);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMorphWeight )( 
            IRdVertexMorph * This,
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ RtFloat *pfWeight);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMorphId )( 
            IRdVertexMorph * This,
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ GUID *pgId);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetMorphBuffer )( 
            IRdVertexMorph * This,
            /* [in] */ RtUlong dwIndex,
            /* [in] */ IRsGenStream *pVertexStream);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetControlBuffer )( 
            IRdVertexMorph * This,
            /* [in] */ RtUlong dwIndex,
            /* [in] */ IRsGenStream *pVertexStream);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetMorphWeight )( 
            IRdVertexMorph * This,
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtFloat fWeight);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetActiveMorph )( 
            IRdVertexMorph * This,
            /* [in] */ RtUlong dwIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetActiveMorph )( 
            IRdVertexMorph * This,
            /* [retval][out] */ RtUlong *pdwIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetReferenceMeshes )( 
            IRdVertexMorph * This,
            /* [in] */ IRdMesh *pControlMesh,
            /* [in] */ IRdMesh *pMorphMesh);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetReferenceMeshes )( 
            IRdVertexMorph * This,
            /* [out] */ IRdMesh **ppControlMesh,
            /* [out] */ IRdMesh **ppMorphMesh);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetMorphVertexCount )( 
            IRdVertexMorph * This,
            /* [in] */ RtUlong dwVertexCount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMorphVertexCount )( 
            IRdVertexMorph * This,
            /* [retval][out] */ RtUlong *pdwVertexCount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetControlVertexCount )( 
            IRdVertexMorph * This,
            /* [in] */ RtUlong dwVertexCount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetControlVertexCount )( 
            IRdVertexMorph * This,
            /* [retval][out] */ RtUlong *pdwVertexCount);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_RelativeEditing )( 
            IRdVertexMorph * This,
            /* [in] */ RtBool bRelative);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_RelativeEditing )( 
            IRdVertexMorph * This,
            /* [retval][out] */ RtBool *pbRelative);
        
        END_INTERFACE
    } IRdVertexMorphVtbl;

    interface IRdVertexMorph
    {
        CONST_VTBL struct IRdVertexMorphVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdVertexMorph_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdVertexMorph_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdVertexMorph_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdVertexMorph_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdVertexMorph_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdVertexMorph_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdVertexMorph_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdVertexMorph_AddMorph(This,pControlVertexStream,pMorphVertexStream,gMorphId)	\
    (This)->lpVtbl -> AddMorph(This,pControlVertexStream,pMorphVertexStream,gMorphId)

#define IRdVertexMorph_RemoveMorph(This,dwIndex)	\
    (This)->lpVtbl -> RemoveMorph(This,dwIndex)

#define IRdVertexMorph_GetMorphCount(This,pdwCount)	\
    (This)->lpVtbl -> GetMorphCount(This,pdwCount)

#define IRdVertexMorph_GetMorphBuffer(This,dwIndex,ppVertexStream)	\
    (This)->lpVtbl -> GetMorphBuffer(This,dwIndex,ppVertexStream)

#define IRdVertexMorph_GetControlBuffer(This,dwIndex,ppVertexStream)	\
    (This)->lpVtbl -> GetControlBuffer(This,dwIndex,ppVertexStream)

#define IRdVertexMorph_GetMorphWeight(This,dwIndex,pfWeight)	\
    (This)->lpVtbl -> GetMorphWeight(This,dwIndex,pfWeight)

#define IRdVertexMorph_GetMorphId(This,dwIndex,pgId)	\
    (This)->lpVtbl -> GetMorphId(This,dwIndex,pgId)

#define IRdVertexMorph_SetMorphBuffer(This,dwIndex,pVertexStream)	\
    (This)->lpVtbl -> SetMorphBuffer(This,dwIndex,pVertexStream)

#define IRdVertexMorph_SetControlBuffer(This,dwIndex,pVertexStream)	\
    (This)->lpVtbl -> SetControlBuffer(This,dwIndex,pVertexStream)

#define IRdVertexMorph_SetMorphWeight(This,dwIndex,fWeight)	\
    (This)->lpVtbl -> SetMorphWeight(This,dwIndex,fWeight)

#define IRdVertexMorph_SetActiveMorph(This,dwIndex)	\
    (This)->lpVtbl -> SetActiveMorph(This,dwIndex)

#define IRdVertexMorph_GetActiveMorph(This,pdwIndex)	\
    (This)->lpVtbl -> GetActiveMorph(This,pdwIndex)

#define IRdVertexMorph_SetReferenceMeshes(This,pControlMesh,pMorphMesh)	\
    (This)->lpVtbl -> SetReferenceMeshes(This,pControlMesh,pMorphMesh)

#define IRdVertexMorph_GetReferenceMeshes(This,ppControlMesh,ppMorphMesh)	\
    (This)->lpVtbl -> GetReferenceMeshes(This,ppControlMesh,ppMorphMesh)

#define IRdVertexMorph_SetMorphVertexCount(This,dwVertexCount)	\
    (This)->lpVtbl -> SetMorphVertexCount(This,dwVertexCount)

#define IRdVertexMorph_GetMorphVertexCount(This,pdwVertexCount)	\
    (This)->lpVtbl -> GetMorphVertexCount(This,pdwVertexCount)

#define IRdVertexMorph_SetControlVertexCount(This,dwVertexCount)	\
    (This)->lpVtbl -> SetControlVertexCount(This,dwVertexCount)

#define IRdVertexMorph_GetControlVertexCount(This,pdwVertexCount)	\
    (This)->lpVtbl -> GetControlVertexCount(This,pdwVertexCount)

#define IRdVertexMorph_put_RelativeEditing(This,bRelative)	\
    (This)->lpVtbl -> put_RelativeEditing(This,bRelative)

#define IRdVertexMorph_get_RelativeEditing(This,pbRelative)	\
    (This)->lpVtbl -> get_RelativeEditing(This,pbRelative)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexMorph_AddMorph_Proxy( 
    IRdVertexMorph * This,
    /* [in] */ IRsGenStream *pControlVertexStream,
    /* [in] */ IRsGenStream *pMorphVertexStream,
    /* [in] */ GUID *gMorphId);


void __RPC_STUB IRdVertexMorph_AddMorph_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexMorph_RemoveMorph_Proxy( 
    IRdVertexMorph * This,
    /* [in] */ RtUlong dwIndex);


void __RPC_STUB IRdVertexMorph_RemoveMorph_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexMorph_GetMorphCount_Proxy( 
    IRdVertexMorph * This,
    /* [retval][out] */ RtUlong *pdwCount);


void __RPC_STUB IRdVertexMorph_GetMorphCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexMorph_GetMorphBuffer_Proxy( 
    IRdVertexMorph * This,
    /* [in] */ RtUlong dwIndex,
    /* [retval][out] */ IRsGenStream **ppVertexStream);


void __RPC_STUB IRdVertexMorph_GetMorphBuffer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexMorph_GetControlBuffer_Proxy( 
    IRdVertexMorph * This,
    /* [in] */ RtUlong dwIndex,
    /* [retval][out] */ IRsGenStream **ppVertexStream);


void __RPC_STUB IRdVertexMorph_GetControlBuffer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexMorph_GetMorphWeight_Proxy( 
    IRdVertexMorph * This,
    /* [in] */ RtUlong dwIndex,
    /* [retval][out] */ RtFloat *pfWeight);


void __RPC_STUB IRdVertexMorph_GetMorphWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexMorph_GetMorphId_Proxy( 
    IRdVertexMorph * This,
    /* [in] */ RtUlong dwIndex,
    /* [retval][out] */ GUID *pgId);


void __RPC_STUB IRdVertexMorph_GetMorphId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexMorph_SetMorphBuffer_Proxy( 
    IRdVertexMorph * This,
    /* [in] */ RtUlong dwIndex,
    /* [in] */ IRsGenStream *pVertexStream);


void __RPC_STUB IRdVertexMorph_SetMorphBuffer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexMorph_SetControlBuffer_Proxy( 
    IRdVertexMorph * This,
    /* [in] */ RtUlong dwIndex,
    /* [in] */ IRsGenStream *pVertexStream);


void __RPC_STUB IRdVertexMorph_SetControlBuffer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexMorph_SetMorphWeight_Proxy( 
    IRdVertexMorph * This,
    /* [in] */ RtUlong dwIndex,
    /* [in] */ RtFloat fWeight);


void __RPC_STUB IRdVertexMorph_SetMorphWeight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexMorph_SetActiveMorph_Proxy( 
    IRdVertexMorph * This,
    /* [in] */ RtUlong dwIndex);


void __RPC_STUB IRdVertexMorph_SetActiveMorph_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexMorph_GetActiveMorph_Proxy( 
    IRdVertexMorph * This,
    /* [retval][out] */ RtUlong *pdwIndex);


void __RPC_STUB IRdVertexMorph_GetActiveMorph_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexMorph_SetReferenceMeshes_Proxy( 
    IRdVertexMorph * This,
    /* [in] */ IRdMesh *pControlMesh,
    /* [in] */ IRdMesh *pMorphMesh);


void __RPC_STUB IRdVertexMorph_SetReferenceMeshes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexMorph_GetReferenceMeshes_Proxy( 
    IRdVertexMorph * This,
    /* [out] */ IRdMesh **ppControlMesh,
    /* [out] */ IRdMesh **ppMorphMesh);


void __RPC_STUB IRdVertexMorph_GetReferenceMeshes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexMorph_SetMorphVertexCount_Proxy( 
    IRdVertexMorph * This,
    /* [in] */ RtUlong dwVertexCount);


void __RPC_STUB IRdVertexMorph_SetMorphVertexCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexMorph_GetMorphVertexCount_Proxy( 
    IRdVertexMorph * This,
    /* [retval][out] */ RtUlong *pdwVertexCount);


void __RPC_STUB IRdVertexMorph_GetMorphVertexCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexMorph_SetControlVertexCount_Proxy( 
    IRdVertexMorph * This,
    /* [in] */ RtUlong dwVertexCount);


void __RPC_STUB IRdVertexMorph_SetControlVertexCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexMorph_GetControlVertexCount_Proxy( 
    IRdVertexMorph * This,
    /* [retval][out] */ RtUlong *pdwVertexCount);


void __RPC_STUB IRdVertexMorph_GetControlVertexCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexMorph_put_RelativeEditing_Proxy( 
    IRdVertexMorph * This,
    /* [in] */ RtBool bRelative);


void __RPC_STUB IRdVertexMorph_put_RelativeEditing_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexMorph_get_RelativeEditing_Proxy( 
    IRdVertexMorph * This,
    /* [retval][out] */ RtBool *pbRelative);


void __RPC_STUB IRdVertexMorph_get_RelativeEditing_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdVertexMorph_INTERFACE_DEFINED__ */


#ifndef __IRfVertexMorphSet_INTERFACE_DEFINED__
#define __IRfVertexMorphSet_INTERFACE_DEFINED__

/* interface IRfVertexMorphSet */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRfVertexMorphSet;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("60C4872C-BE50-41c4-B432-1018AE471D36")
    IRfVertexMorphSet : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CompactMorph( 
            /* [in] */ IRdVertexStream *pExpanded,
            /* [out] */ IRsGenStream **ppMorph) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ExpandMorph( 
            /* [in] */ IRsGenStream *pMorph,
            /* [in] */ RtUlong num_vertices,
            /* [out] */ IRdVertexStream **ppExpanded) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RetargetMorph( 
            /* [in] */ IRdVertexMorph *pVertexMorph,
            /* [in] */ IRdMesh *spControlMesh,
            /* [in] */ IRdMesh *pTargetMesh) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfVertexMorphSetVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfVertexMorphSet * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfVertexMorphSet * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfVertexMorphSet * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CompactMorph )( 
            IRfVertexMorphSet * This,
            /* [in] */ IRdVertexStream *pExpanded,
            /* [out] */ IRsGenStream **ppMorph);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ExpandMorph )( 
            IRfVertexMorphSet * This,
            /* [in] */ IRsGenStream *pMorph,
            /* [in] */ RtUlong num_vertices,
            /* [out] */ IRdVertexStream **ppExpanded);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RetargetMorph )( 
            IRfVertexMorphSet * This,
            /* [in] */ IRdVertexMorph *pVertexMorph,
            /* [in] */ IRdMesh *spControlMesh,
            /* [in] */ IRdMesh *pTargetMesh);
        
        END_INTERFACE
    } IRfVertexMorphSetVtbl;

    interface IRfVertexMorphSet
    {
        CONST_VTBL struct IRfVertexMorphSetVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfVertexMorphSet_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfVertexMorphSet_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfVertexMorphSet_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfVertexMorphSet_CompactMorph(This,pExpanded,ppMorph)	\
    (This)->lpVtbl -> CompactMorph(This,pExpanded,ppMorph)

#define IRfVertexMorphSet_ExpandMorph(This,pMorph,num_vertices,ppExpanded)	\
    (This)->lpVtbl -> ExpandMorph(This,pMorph,num_vertices,ppExpanded)

#define IRfVertexMorphSet_RetargetMorph(This,pVertexMorph,spControlMesh,pTargetMesh)	\
    (This)->lpVtbl -> RetargetMorph(This,pVertexMorph,spControlMesh,pTargetMesh)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfVertexMorphSet_CompactMorph_Proxy( 
    IRfVertexMorphSet * This,
    /* [in] */ IRdVertexStream *pExpanded,
    /* [out] */ IRsGenStream **ppMorph);


void __RPC_STUB IRfVertexMorphSet_CompactMorph_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfVertexMorphSet_ExpandMorph_Proxy( 
    IRfVertexMorphSet * This,
    /* [in] */ IRsGenStream *pMorph,
    /* [in] */ RtUlong num_vertices,
    /* [out] */ IRdVertexStream **ppExpanded);


void __RPC_STUB IRfVertexMorphSet_ExpandMorph_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfVertexMorphSet_RetargetMorph_Proxy( 
    IRfVertexMorphSet * This,
    /* [in] */ IRdVertexMorph *pVertexMorph,
    /* [in] */ IRdMesh *spControlMesh,
    /* [in] */ IRdMesh *pTargetMesh);


void __RPC_STUB IRfVertexMorphSet_RetargetMorph_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfVertexMorphSet_INTERFACE_DEFINED__ */


#ifndef __IRsOfflineRenderer_INTERFACE_DEFINED__
#define __IRsOfflineRenderer_INTERFACE_DEFINED__

/* interface IRsOfflineRenderer */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsOfflineRenderer;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("033A0742-A1BD-4799-B5FF-85A31F6D634E")
    IRsOfflineRenderer : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EnumPropertiesPanels( 
            /* [in] */ IRsPanelContainer *pContainer) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OpenView( 
            /* [in] */ BSTR szViewName,
            /* [in] */ RtUlong dwWidth,
            /* [in] */ RtUlong dwHeight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RenderScene( 
            /* [in] */ BSTR szViewName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RenderObject( 
            /* [in] */ BSTR szViewName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RenderArea( 
            /* [in] */ BSTR szViewName,
            /* [in] */ RtUlong dwMinX,
            /* [in] */ RtUlong dwMinY,
            /* [in] */ RtUlong dwMaxX,
            /* [in] */ RtUlong dwMaxY) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RenderAnimation( 
            /* [in] */ BSTR szViewName) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsOfflineRendererVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsOfflineRenderer * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsOfflineRenderer * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsOfflineRenderer * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EnumPropertiesPanels )( 
            IRsOfflineRenderer * This,
            /* [in] */ IRsPanelContainer *pContainer);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OpenView )( 
            IRsOfflineRenderer * This,
            /* [in] */ BSTR szViewName,
            /* [in] */ RtUlong dwWidth,
            /* [in] */ RtUlong dwHeight);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RenderScene )( 
            IRsOfflineRenderer * This,
            /* [in] */ BSTR szViewName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RenderObject )( 
            IRsOfflineRenderer * This,
            /* [in] */ BSTR szViewName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RenderArea )( 
            IRsOfflineRenderer * This,
            /* [in] */ BSTR szViewName,
            /* [in] */ RtUlong dwMinX,
            /* [in] */ RtUlong dwMinY,
            /* [in] */ RtUlong dwMaxX,
            /* [in] */ RtUlong dwMaxY);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RenderAnimation )( 
            IRsOfflineRenderer * This,
            /* [in] */ BSTR szViewName);
        
        END_INTERFACE
    } IRsOfflineRendererVtbl;

    interface IRsOfflineRenderer
    {
        CONST_VTBL struct IRsOfflineRendererVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsOfflineRenderer_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsOfflineRenderer_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsOfflineRenderer_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsOfflineRenderer_EnumPropertiesPanels(This,pContainer)	\
    (This)->lpVtbl -> EnumPropertiesPanels(This,pContainer)

#define IRsOfflineRenderer_OpenView(This,szViewName,dwWidth,dwHeight)	\
    (This)->lpVtbl -> OpenView(This,szViewName,dwWidth,dwHeight)

#define IRsOfflineRenderer_RenderScene(This,szViewName)	\
    (This)->lpVtbl -> RenderScene(This,szViewName)

#define IRsOfflineRenderer_RenderObject(This,szViewName)	\
    (This)->lpVtbl -> RenderObject(This,szViewName)

#define IRsOfflineRenderer_RenderArea(This,szViewName,dwMinX,dwMinY,dwMaxX,dwMaxY)	\
    (This)->lpVtbl -> RenderArea(This,szViewName,dwMinX,dwMinY,dwMaxX,dwMaxY)

#define IRsOfflineRenderer_RenderAnimation(This,szViewName)	\
    (This)->lpVtbl -> RenderAnimation(This,szViewName)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsOfflineRenderer_EnumPropertiesPanels_Proxy( 
    IRsOfflineRenderer * This,
    /* [in] */ IRsPanelContainer *pContainer);


void __RPC_STUB IRsOfflineRenderer_EnumPropertiesPanels_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsOfflineRenderer_OpenView_Proxy( 
    IRsOfflineRenderer * This,
    /* [in] */ BSTR szViewName,
    /* [in] */ RtUlong dwWidth,
    /* [in] */ RtUlong dwHeight);


void __RPC_STUB IRsOfflineRenderer_OpenView_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsOfflineRenderer_RenderScene_Proxy( 
    IRsOfflineRenderer * This,
    /* [in] */ BSTR szViewName);


void __RPC_STUB IRsOfflineRenderer_RenderScene_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsOfflineRenderer_RenderObject_Proxy( 
    IRsOfflineRenderer * This,
    /* [in] */ BSTR szViewName);


void __RPC_STUB IRsOfflineRenderer_RenderObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsOfflineRenderer_RenderArea_Proxy( 
    IRsOfflineRenderer * This,
    /* [in] */ BSTR szViewName,
    /* [in] */ RtUlong dwMinX,
    /* [in] */ RtUlong dwMinY,
    /* [in] */ RtUlong dwMaxX,
    /* [in] */ RtUlong dwMaxY);


void __RPC_STUB IRsOfflineRenderer_RenderArea_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsOfflineRenderer_RenderAnimation_Proxy( 
    IRsOfflineRenderer * This,
    /* [in] */ BSTR szViewName);


void __RPC_STUB IRsOfflineRenderer_RenderAnimation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsOfflineRenderer_INTERFACE_DEFINED__ */


#ifndef __IRfOfflineRendering_INTERFACE_DEFINED__
#define __IRfOfflineRendering_INTERFACE_DEFINED__

/* interface IRfOfflineRendering */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRfOfflineRendering;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BA8E6DD3-1CBB-4ca0-87E2-3843C95550C1")
    IRfOfflineRendering : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetOfflineRenderersHandler( 
            /* [out] */ IRsNode **ppNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE OpenPropertiesPanels( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetActiveOfflineRenderer( 
            /* [retval][out] */ IRsNode **ppActiveOfflineRenderer) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetOfflineRenderer( 
            /* [in] */ GUID gId,
            /* [out] */ IRsNode **ppRenderer) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfOfflineRenderingVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfOfflineRendering * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfOfflineRendering * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfOfflineRendering * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetOfflineRenderersHandler )( 
            IRfOfflineRendering * This,
            /* [out] */ IRsNode **ppNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *OpenPropertiesPanels )( 
            IRfOfflineRendering * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetActiveOfflineRenderer )( 
            IRfOfflineRendering * This,
            /* [retval][out] */ IRsNode **ppActiveOfflineRenderer);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetOfflineRenderer )( 
            IRfOfflineRendering * This,
            /* [in] */ GUID gId,
            /* [out] */ IRsNode **ppRenderer);
        
        END_INTERFACE
    } IRfOfflineRenderingVtbl;

    interface IRfOfflineRendering
    {
        CONST_VTBL struct IRfOfflineRenderingVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfOfflineRendering_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfOfflineRendering_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfOfflineRendering_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfOfflineRendering_GetOfflineRenderersHandler(This,ppNode)	\
    (This)->lpVtbl -> GetOfflineRenderersHandler(This,ppNode)

#define IRfOfflineRendering_OpenPropertiesPanels(This)	\
    (This)->lpVtbl -> OpenPropertiesPanels(This)

#define IRfOfflineRendering_GetActiveOfflineRenderer(This,ppActiveOfflineRenderer)	\
    (This)->lpVtbl -> GetActiveOfflineRenderer(This,ppActiveOfflineRenderer)

#define IRfOfflineRendering_GetOfflineRenderer(This,gId,ppRenderer)	\
    (This)->lpVtbl -> GetOfflineRenderer(This,gId,ppRenderer)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfOfflineRendering_GetOfflineRenderersHandler_Proxy( 
    IRfOfflineRendering * This,
    /* [out] */ IRsNode **ppNode);


void __RPC_STUB IRfOfflineRendering_GetOfflineRenderersHandler_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfOfflineRendering_OpenPropertiesPanels_Proxy( 
    IRfOfflineRendering * This);


void __RPC_STUB IRfOfflineRendering_OpenPropertiesPanels_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfOfflineRendering_GetActiveOfflineRenderer_Proxy( 
    IRfOfflineRendering * This,
    /* [retval][out] */ IRsNode **ppActiveOfflineRenderer);


void __RPC_STUB IRfOfflineRendering_GetActiveOfflineRenderer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfOfflineRendering_GetOfflineRenderer_Proxy( 
    IRfOfflineRendering * This,
    /* [in] */ GUID gId,
    /* [out] */ IRsNode **ppRenderer);


void __RPC_STUB IRfOfflineRendering_GetOfflineRenderer_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfOfflineRendering_INTERFACE_DEFINED__ */


#ifndef __IRnMaterialReference_INTERFACE_DEFINED__
#define __IRnMaterialReference_INTERFACE_DEFINED__

/* interface IRnMaterialReference */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnMaterialReference;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5915CE78-B20D-4d33-80D6-E5687323338F")
    IRnMaterialReference : public IRsMaterialFlavorManager
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetSharedMaterialNode( 
            /* [in] */ IRsMaterialFlavorManager **ppNode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE LinkReferencedMaterial( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnMaterialReferenceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnMaterialReference * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnMaterialReference * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnMaterialReference * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMaterialFlavorsCount )( 
            IRnMaterialReference * This,
            /* [in] */ RtDWORD dwMatNum);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialFlavorsCount )( 
            IRnMaterialReference * This,
            /* [out] */ RtDWORD *pdwCount);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialFlavorConnector )( 
            IRnMaterialReference * This,
            /* [in] */ RtDWORD dwIndex,
            /* [out] */ IRsConnector **ppCon);
        
        HRESULT ( STDMETHODCALLTYPE *GetSharedMaterialNode )( 
            IRnMaterialReference * This,
            /* [in] */ IRsMaterialFlavorManager **ppNode);
        
        HRESULT ( STDMETHODCALLTYPE *LinkReferencedMaterial )( 
            IRnMaterialReference * This);
        
        END_INTERFACE
    } IRnMaterialReferenceVtbl;

    interface IRnMaterialReference
    {
        CONST_VTBL struct IRnMaterialReferenceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnMaterialReference_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnMaterialReference_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnMaterialReference_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnMaterialReference_SetMaterialFlavorsCount(This,dwMatNum)	\
    (This)->lpVtbl -> SetMaterialFlavorsCount(This,dwMatNum)

#define IRnMaterialReference_GetMaterialFlavorsCount(This,pdwCount)	\
    (This)->lpVtbl -> GetMaterialFlavorsCount(This,pdwCount)

#define IRnMaterialReference_GetMaterialFlavorConnector(This,dwIndex,ppCon)	\
    (This)->lpVtbl -> GetMaterialFlavorConnector(This,dwIndex,ppCon)


#define IRnMaterialReference_GetSharedMaterialNode(This,ppNode)	\
    (This)->lpVtbl -> GetSharedMaterialNode(This,ppNode)

#define IRnMaterialReference_LinkReferencedMaterial(This)	\
    (This)->lpVtbl -> LinkReferencedMaterial(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRnMaterialReference_GetSharedMaterialNode_Proxy( 
    IRnMaterialReference * This,
    /* [in] */ IRsMaterialFlavorManager **ppNode);


void __RPC_STUB IRnMaterialReference_GetSharedMaterialNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRnMaterialReference_LinkReferencedMaterial_Proxy( 
    IRnMaterialReference * This);


void __RPC_STUB IRnMaterialReference_LinkReferencedMaterial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRnMaterialReference_INTERFACE_DEFINED__ */


#ifndef __IRfReferencedMaterials_INTERFACE_DEFINED__
#define __IRfReferencedMaterials_INTERFACE_DEFINED__

/* interface IRfReferencedMaterials */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRfReferencedMaterials;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("651B0D92-8DA3-4a7f-9A04-94D85AE2C9C9")
    IRfReferencedMaterials : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetGlobalMaterialsEncapsulator( 
            /* [out] */ IRnEncapsulator **ppEnc) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateGlobalMaterialsEncapsulator( 
            /* [out] */ IRnEncapsulator **ppEnc) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetObjectMaterialsEncapsulator( 
            /* [in] */ IRsNode *pNode,
            /* [out] */ IRnEncapsulator **ppEnc) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateObjectMaterialsEncapsulator( 
            /* [in] */ IRsNode *pNode,
            /* [out] */ IRnEncapsulator **ppEnc) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMaterialId( 
            /* [in] */ IRsNode *pMaterialNode,
            /* [in] */ GUID gId) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialId( 
            /* [in] */ IRsNode *pMaterialNode,
            /* [out] */ GUID *gId) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UpdateMaterialLinks( 
            /* [in] */ IRsNode *pMaterialNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetReferencedMaterialNode( 
            /* [in] */ IRnMaterialReference *pRefMat,
            /* [out] */ IRsNode **ppSharedMaterialNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ReplaceMaterialReferences( 
            /* [in] */ GUID *pId,
            /* [in] */ IRsNode *pObjectRoot,
            /* [in] */ IRsNode *pSharedMaterialNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LocateMaterialNode( 
            /* [in] */ GUID *pId,
            /* [in] */ IRnEncapsulator *pEncaps,
            /* [out] */ IRsNode **ppMaterial) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveUnusedMaterials( 
            /* [in] */ IRnEncapsulator *pMatEnc) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMaterialReferencesCount( 
            /* [in] */ IRsNode *pNode,
            /* [out] */ RtUlong *pdwNum) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CleanupSharedMaterialEncapsulator( 
            /* [in] */ IRnEncapsulator *pMatEnc) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRfReferencedMaterialsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRfReferencedMaterials * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRfReferencedMaterials * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRfReferencedMaterials * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetGlobalMaterialsEncapsulator )( 
            IRfReferencedMaterials * This,
            /* [out] */ IRnEncapsulator **ppEnc);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateGlobalMaterialsEncapsulator )( 
            IRfReferencedMaterials * This,
            /* [out] */ IRnEncapsulator **ppEnc);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetObjectMaterialsEncapsulator )( 
            IRfReferencedMaterials * This,
            /* [in] */ IRsNode *pNode,
            /* [out] */ IRnEncapsulator **ppEnc);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateObjectMaterialsEncapsulator )( 
            IRfReferencedMaterials * This,
            /* [in] */ IRsNode *pNode,
            /* [out] */ IRnEncapsulator **ppEnc);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMaterialId )( 
            IRfReferencedMaterials * This,
            /* [in] */ IRsNode *pMaterialNode,
            /* [in] */ GUID gId);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialId )( 
            IRfReferencedMaterials * This,
            /* [in] */ IRsNode *pMaterialNode,
            /* [out] */ GUID *gId);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UpdateMaterialLinks )( 
            IRfReferencedMaterials * This,
            /* [in] */ IRsNode *pMaterialNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetReferencedMaterialNode )( 
            IRfReferencedMaterials * This,
            /* [in] */ IRnMaterialReference *pRefMat,
            /* [out] */ IRsNode **ppSharedMaterialNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ReplaceMaterialReferences )( 
            IRfReferencedMaterials * This,
            /* [in] */ GUID *pId,
            /* [in] */ IRsNode *pObjectRoot,
            /* [in] */ IRsNode *pSharedMaterialNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LocateMaterialNode )( 
            IRfReferencedMaterials * This,
            /* [in] */ GUID *pId,
            /* [in] */ IRnEncapsulator *pEncaps,
            /* [out] */ IRsNode **ppMaterial);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveUnusedMaterials )( 
            IRfReferencedMaterials * This,
            /* [in] */ IRnEncapsulator *pMatEnc);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMaterialReferencesCount )( 
            IRfReferencedMaterials * This,
            /* [in] */ IRsNode *pNode,
            /* [out] */ RtUlong *pdwNum);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CleanupSharedMaterialEncapsulator )( 
            IRfReferencedMaterials * This,
            /* [in] */ IRnEncapsulator *pMatEnc);
        
        END_INTERFACE
    } IRfReferencedMaterialsVtbl;

    interface IRfReferencedMaterials
    {
        CONST_VTBL struct IRfReferencedMaterialsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRfReferencedMaterials_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRfReferencedMaterials_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRfReferencedMaterials_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRfReferencedMaterials_GetGlobalMaterialsEncapsulator(This,ppEnc)	\
    (This)->lpVtbl -> GetGlobalMaterialsEncapsulator(This,ppEnc)

#define IRfReferencedMaterials_CreateGlobalMaterialsEncapsulator(This,ppEnc)	\
    (This)->lpVtbl -> CreateGlobalMaterialsEncapsulator(This,ppEnc)

#define IRfReferencedMaterials_GetObjectMaterialsEncapsulator(This,pNode,ppEnc)	\
    (This)->lpVtbl -> GetObjectMaterialsEncapsulator(This,pNode,ppEnc)

#define IRfReferencedMaterials_CreateObjectMaterialsEncapsulator(This,pNode,ppEnc)	\
    (This)->lpVtbl -> CreateObjectMaterialsEncapsulator(This,pNode,ppEnc)

#define IRfReferencedMaterials_SetMaterialId(This,pMaterialNode,gId)	\
    (This)->lpVtbl -> SetMaterialId(This,pMaterialNode,gId)

#define IRfReferencedMaterials_GetMaterialId(This,pMaterialNode,gId)	\
    (This)->lpVtbl -> GetMaterialId(This,pMaterialNode,gId)

#define IRfReferencedMaterials_UpdateMaterialLinks(This,pMaterialNode)	\
    (This)->lpVtbl -> UpdateMaterialLinks(This,pMaterialNode)

#define IRfReferencedMaterials_GetReferencedMaterialNode(This,pRefMat,ppSharedMaterialNode)	\
    (This)->lpVtbl -> GetReferencedMaterialNode(This,pRefMat,ppSharedMaterialNode)

#define IRfReferencedMaterials_ReplaceMaterialReferences(This,pId,pObjectRoot,pSharedMaterialNode)	\
    (This)->lpVtbl -> ReplaceMaterialReferences(This,pId,pObjectRoot,pSharedMaterialNode)

#define IRfReferencedMaterials_LocateMaterialNode(This,pId,pEncaps,ppMaterial)	\
    (This)->lpVtbl -> LocateMaterialNode(This,pId,pEncaps,ppMaterial)

#define IRfReferencedMaterials_RemoveUnusedMaterials(This,pMatEnc)	\
    (This)->lpVtbl -> RemoveUnusedMaterials(This,pMatEnc)

#define IRfReferencedMaterials_GetMaterialReferencesCount(This,pNode,pdwNum)	\
    (This)->lpVtbl -> GetMaterialReferencesCount(This,pNode,pdwNum)

#define IRfReferencedMaterials_CleanupSharedMaterialEncapsulator(This,pMatEnc)	\
    (This)->lpVtbl -> CleanupSharedMaterialEncapsulator(This,pMatEnc)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfReferencedMaterials_GetGlobalMaterialsEncapsulator_Proxy( 
    IRfReferencedMaterials * This,
    /* [out] */ IRnEncapsulator **ppEnc);


void __RPC_STUB IRfReferencedMaterials_GetGlobalMaterialsEncapsulator_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfReferencedMaterials_CreateGlobalMaterialsEncapsulator_Proxy( 
    IRfReferencedMaterials * This,
    /* [out] */ IRnEncapsulator **ppEnc);


void __RPC_STUB IRfReferencedMaterials_CreateGlobalMaterialsEncapsulator_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfReferencedMaterials_GetObjectMaterialsEncapsulator_Proxy( 
    IRfReferencedMaterials * This,
    /* [in] */ IRsNode *pNode,
    /* [out] */ IRnEncapsulator **ppEnc);


void __RPC_STUB IRfReferencedMaterials_GetObjectMaterialsEncapsulator_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfReferencedMaterials_CreateObjectMaterialsEncapsulator_Proxy( 
    IRfReferencedMaterials * This,
    /* [in] */ IRsNode *pNode,
    /* [out] */ IRnEncapsulator **ppEnc);


void __RPC_STUB IRfReferencedMaterials_CreateObjectMaterialsEncapsulator_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfReferencedMaterials_SetMaterialId_Proxy( 
    IRfReferencedMaterials * This,
    /* [in] */ IRsNode *pMaterialNode,
    /* [in] */ GUID gId);


void __RPC_STUB IRfReferencedMaterials_SetMaterialId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfReferencedMaterials_GetMaterialId_Proxy( 
    IRfReferencedMaterials * This,
    /* [in] */ IRsNode *pMaterialNode,
    /* [out] */ GUID *gId);


void __RPC_STUB IRfReferencedMaterials_GetMaterialId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfReferencedMaterials_UpdateMaterialLinks_Proxy( 
    IRfReferencedMaterials * This,
    /* [in] */ IRsNode *pMaterialNode);


void __RPC_STUB IRfReferencedMaterials_UpdateMaterialLinks_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfReferencedMaterials_GetReferencedMaterialNode_Proxy( 
    IRfReferencedMaterials * This,
    /* [in] */ IRnMaterialReference *pRefMat,
    /* [out] */ IRsNode **ppSharedMaterialNode);


void __RPC_STUB IRfReferencedMaterials_GetReferencedMaterialNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfReferencedMaterials_ReplaceMaterialReferences_Proxy( 
    IRfReferencedMaterials * This,
    /* [in] */ GUID *pId,
    /* [in] */ IRsNode *pObjectRoot,
    /* [in] */ IRsNode *pSharedMaterialNode);


void __RPC_STUB IRfReferencedMaterials_ReplaceMaterialReferences_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfReferencedMaterials_LocateMaterialNode_Proxy( 
    IRfReferencedMaterials * This,
    /* [in] */ GUID *pId,
    /* [in] */ IRnEncapsulator *pEncaps,
    /* [out] */ IRsNode **ppMaterial);


void __RPC_STUB IRfReferencedMaterials_LocateMaterialNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfReferencedMaterials_RemoveUnusedMaterials_Proxy( 
    IRfReferencedMaterials * This,
    /* [in] */ IRnEncapsulator *pMatEnc);


void __RPC_STUB IRfReferencedMaterials_RemoveUnusedMaterials_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfReferencedMaterials_GetMaterialReferencesCount_Proxy( 
    IRfReferencedMaterials * This,
    /* [in] */ IRsNode *pNode,
    /* [out] */ RtUlong *pdwNum);


void __RPC_STUB IRfReferencedMaterials_GetMaterialReferencesCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRfReferencedMaterials_CleanupSharedMaterialEncapsulator_Proxy( 
    IRfReferencedMaterials * This,
    /* [in] */ IRnEncapsulator *pMatEnc);


void __RPC_STUB IRfReferencedMaterials_CleanupSharedMaterialEncapsulator_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRfReferencedMaterials_INTERFACE_DEFINED__ */


#ifndef __IRsEditor_INTERFACE_DEFINED__
#define __IRsEditor_INTERFACE_DEFINED__

/* interface IRsEditor */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsEditor;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D80C39BC-00C2-4ad0-ACA0-FD09148F9B27")
    IRsEditor : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetEditorFeature( 
            /* [in] */ GUID gEditorFeature,
            /* [in] */ RtBool bEnabled) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetEditorFeature( 
            /* [in] */ GUID gEditorFeature,
            /* [in] */ RtBool *bEnabled) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetEditableSubtreeRoot( 
            /* [in] */ IRsNode *pNode,
            /* [in] */ SAFEARRAY **ppExpandedNode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ActivateDefaultTool( 
            /* [in] */ IRcUndoRedoGroup *spUndoRedo) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsEditorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsEditor * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsEditor * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsEditor * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetEditorFeature )( 
            IRsEditor * This,
            /* [in] */ GUID gEditorFeature,
            /* [in] */ RtBool bEnabled);
        
        HRESULT ( STDMETHODCALLTYPE *GetEditorFeature )( 
            IRsEditor * This,
            /* [in] */ GUID gEditorFeature,
            /* [in] */ RtBool *bEnabled);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetEditableSubtreeRoot )( 
            IRsEditor * This,
            /* [in] */ IRsNode *pNode,
            /* [in] */ SAFEARRAY **ppExpandedNode);
        
        HRESULT ( STDMETHODCALLTYPE *ActivateDefaultTool )( 
            IRsEditor * This,
            /* [in] */ IRcUndoRedoGroup *spUndoRedo);
        
        END_INTERFACE
    } IRsEditorVtbl;

    interface IRsEditor
    {
        CONST_VTBL struct IRsEditorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsEditor_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsEditor_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsEditor_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsEditor_SetEditorFeature(This,gEditorFeature,bEnabled)	\
    (This)->lpVtbl -> SetEditorFeature(This,gEditorFeature,bEnabled)

#define IRsEditor_GetEditorFeature(This,gEditorFeature,bEnabled)	\
    (This)->lpVtbl -> GetEditorFeature(This,gEditorFeature,bEnabled)

#define IRsEditor_GetEditableSubtreeRoot(This,pNode,ppExpandedNode)	\
    (This)->lpVtbl -> GetEditableSubtreeRoot(This,pNode,ppExpandedNode)

#define IRsEditor_ActivateDefaultTool(This,spUndoRedo)	\
    (This)->lpVtbl -> ActivateDefaultTool(This,spUndoRedo)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsEditor_SetEditorFeature_Proxy( 
    IRsEditor * This,
    /* [in] */ GUID gEditorFeature,
    /* [in] */ RtBool bEnabled);


void __RPC_STUB IRsEditor_SetEditorFeature_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsEditor_GetEditorFeature_Proxy( 
    IRsEditor * This,
    /* [in] */ GUID gEditorFeature,
    /* [in] */ RtBool *bEnabled);


void __RPC_STUB IRsEditor_GetEditorFeature_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [local] */ HRESULT STDMETHODCALLTYPE IRsEditor_GetEditableSubtreeRoot_Proxy( 
    IRsEditor * This,
    /* [in] */ IRsNode *pNode,
    /* [in] */ SAFEARRAY **ppExpandedNode);


void __RPC_STUB IRsEditor_GetEditableSubtreeRoot_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsEditor_ActivateDefaultTool_Proxy( 
    IRsEditor * This,
    /* [in] */ IRcUndoRedoGroup *spUndoRedo);


void __RPC_STUB IRsEditor_ActivateDefaultTool_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsEditor_INTERFACE_DEFINED__ */


#ifndef __IRpSpace3DPck_INTERFACE_DEFINED__
#define __IRpSpace3DPck_INTERFACE_DEFINED__

/* interface IRpSpace3DPck */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRpSpace3DPck;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1882ADED-F854-4186-9882-615D486C3DE9")
    IRpSpace3DPck : public IRsObject
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSpaceRoot( 
            /* [retval][out] */ IRnEncapsulator **ppRoot) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateMeshFnSet( 
            /* [retval][out] */ IRfMeshSet **ppFn) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateNURBSFnSet( 
            /* [retval][out] */ IRfNURBSSet **ppFn) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateObjectHelper( 
            /* [retval][out] */ IRfObjectHelper **ppObjectHelper) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateSceneHelper( 
            /* [retval][out] */ IRfSceneHelper **ppSceneHelper) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateMaterialListFnSet( 
            /* [retval][out] */ IRfMaterialListSet **ppFn) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateTransformSet( 
            /* [retval][out] */ IRfTransformSet **ppTransformSet) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateWorkPlaneHelper( 
            /* [retval][out] */ IRfWorkPlane **ppWorkPlane) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMeshStreamCache( 
            /* [retval][out] */ IRsStreamCache **ppCache) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateSnapperSet( 
            /* [retval][out] */ IRfSnapperSet **ppSnappingSet) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetObjectTypeDetector( 
            /* [retval][out] */ IRsObjectTypeDetector **ppDetector) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateSkeletonFnSet( 
            /* [retval][out] */ IRfSkeletonSet **ppFn) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetTransformOverride( 
            /* [retval][out] */ IRsTransformOverride **ppFn) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateEditableMeshFnSet( 
            /* [retval][out] */ IRfEditableMeshSet **ppFn) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateSkinFnSet( 
            /* [retval][out] */ IRfSkinSet **ppFn) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetCoordinateSystemManager( 
            /* [retval][out] */ IRsCoordinateSystemManager **ppCoordSysMng) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateMeshRetargetFnSet( 
            /* [retval][out] */ IRfMeshRetargetSet **ppFn) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateMaterialEditorFnSet( 
            /* [retval][out] */ IRfMaterialEditor **ppFn) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateOfflineRenderingFnSet( 
            /* [retval][out] */ IRfOfflineRendering **ppFn) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateVertexMorphSet( 
            /* [retval][out] */ IRfVertexMorphSet **ppFn) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateReferencedMaterialsFnSet( 
            /* [retval][out] */ IRfReferencedMaterials **ppFn) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetActiveEditor( 
            /* [in] */ IRsEditor *pEditor) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetActiveEditor( 
            /* [retval][out] */ IRsEditor **pEditor) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RegisterSysMessageReceiver( 
            /* [in] */ MSGID msg,
            /* [in] */ IRsSysMessageReceiver *pRecv) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnregisterSysMessageReceiver( 
            /* [in] */ MSGID msg,
            /* [in] */ IRsSysMessageReceiver *pRecv) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateVolumeTreeFnSet( 
            /* [retval][out] */ IRfVolumeTree **ppFn) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRpSpace3DPckVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRpSpace3DPck * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRpSpace3DPck * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRpSpace3DPck * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSpaceRoot )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRnEncapsulator **ppRoot);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateMeshFnSet )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRfMeshSet **ppFn);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateNURBSFnSet )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRfNURBSSet **ppFn);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateObjectHelper )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRfObjectHelper **ppObjectHelper);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateSceneHelper )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRfSceneHelper **ppSceneHelper);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateMaterialListFnSet )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRfMaterialListSet **ppFn);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateTransformSet )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRfTransformSet **ppTransformSet);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateWorkPlaneHelper )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRfWorkPlane **ppWorkPlane);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMeshStreamCache )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRsStreamCache **ppCache);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateSnapperSet )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRfSnapperSet **ppSnappingSet);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetObjectTypeDetector )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRsObjectTypeDetector **ppDetector);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateSkeletonFnSet )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRfSkeletonSet **ppFn);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTransformOverride )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRsTransformOverride **ppFn);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateEditableMeshFnSet )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRfEditableMeshSet **ppFn);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateSkinFnSet )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRfSkinSet **ppFn);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetCoordinateSystemManager )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRsCoordinateSystemManager **ppCoordSysMng);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateMeshRetargetFnSet )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRfMeshRetargetSet **ppFn);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateMaterialEditorFnSet )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRfMaterialEditor **ppFn);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateOfflineRenderingFnSet )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRfOfflineRendering **ppFn);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateVertexMorphSet )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRfVertexMorphSet **ppFn);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateReferencedMaterialsFnSet )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRfReferencedMaterials **ppFn);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetActiveEditor )( 
            IRpSpace3DPck * This,
            /* [in] */ IRsEditor *pEditor);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetActiveEditor )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRsEditor **pEditor);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterSysMessageReceiver )( 
            IRpSpace3DPck * This,
            /* [in] */ MSGID msg,
            /* [in] */ IRsSysMessageReceiver *pRecv);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnregisterSysMessageReceiver )( 
            IRpSpace3DPck * This,
            /* [in] */ MSGID msg,
            /* [in] */ IRsSysMessageReceiver *pRecv);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateVolumeTreeFnSet )( 
            IRpSpace3DPck * This,
            /* [retval][out] */ IRfVolumeTree **ppFn);
        
        END_INTERFACE
    } IRpSpace3DPckVtbl;

    interface IRpSpace3DPck
    {
        CONST_VTBL struct IRpSpace3DPckVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRpSpace3DPck_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRpSpace3DPck_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRpSpace3DPck_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRpSpace3DPck_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRpSpace3DPck_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#define IRpSpace3DPck_GetSpaceRoot(This,ppRoot)	\
    (This)->lpVtbl -> GetSpaceRoot(This,ppRoot)

#define IRpSpace3DPck_CreateMeshFnSet(This,ppFn)	\
    (This)->lpVtbl -> CreateMeshFnSet(This,ppFn)

#define IRpSpace3DPck_CreateNURBSFnSet(This,ppFn)	\
    (This)->lpVtbl -> CreateNURBSFnSet(This,ppFn)

#define IRpSpace3DPck_CreateObjectHelper(This,ppObjectHelper)	\
    (This)->lpVtbl -> CreateObjectHelper(This,ppObjectHelper)

#define IRpSpace3DPck_CreateSceneHelper(This,ppSceneHelper)	\
    (This)->lpVtbl -> CreateSceneHelper(This,ppSceneHelper)

#define IRpSpace3DPck_CreateMaterialListFnSet(This,ppFn)	\
    (This)->lpVtbl -> CreateMaterialListFnSet(This,ppFn)

#define IRpSpace3DPck_CreateTransformSet(This,ppTransformSet)	\
    (This)->lpVtbl -> CreateTransformSet(This,ppTransformSet)

#define IRpSpace3DPck_CreateWorkPlaneHelper(This,ppWorkPlane)	\
    (This)->lpVtbl -> CreateWorkPlaneHelper(This,ppWorkPlane)

#define IRpSpace3DPck_GetMeshStreamCache(This,ppCache)	\
    (This)->lpVtbl -> GetMeshStreamCache(This,ppCache)

#define IRpSpace3DPck_CreateSnapperSet(This,ppSnappingSet)	\
    (This)->lpVtbl -> CreateSnapperSet(This,ppSnappingSet)

#define IRpSpace3DPck_GetObjectTypeDetector(This,ppDetector)	\
    (This)->lpVtbl -> GetObjectTypeDetector(This,ppDetector)

#define IRpSpace3DPck_CreateSkeletonFnSet(This,ppFn)	\
    (This)->lpVtbl -> CreateSkeletonFnSet(This,ppFn)

#define IRpSpace3DPck_GetTransformOverride(This,ppFn)	\
    (This)->lpVtbl -> GetTransformOverride(This,ppFn)

#define IRpSpace3DPck_CreateEditableMeshFnSet(This,ppFn)	\
    (This)->lpVtbl -> CreateEditableMeshFnSet(This,ppFn)

#define IRpSpace3DPck_CreateSkinFnSet(This,ppFn)	\
    (This)->lpVtbl -> CreateSkinFnSet(This,ppFn)

#define IRpSpace3DPck_GetCoordinateSystemManager(This,ppCoordSysMng)	\
    (This)->lpVtbl -> GetCoordinateSystemManager(This,ppCoordSysMng)

#define IRpSpace3DPck_CreateMeshRetargetFnSet(This,ppFn)	\
    (This)->lpVtbl -> CreateMeshRetargetFnSet(This,ppFn)

#define IRpSpace3DPck_CreateMaterialEditorFnSet(This,ppFn)	\
    (This)->lpVtbl -> CreateMaterialEditorFnSet(This,ppFn)

#define IRpSpace3DPck_CreateOfflineRenderingFnSet(This,ppFn)	\
    (This)->lpVtbl -> CreateOfflineRenderingFnSet(This,ppFn)

#define IRpSpace3DPck_CreateVertexMorphSet(This,ppFn)	\
    (This)->lpVtbl -> CreateVertexMorphSet(This,ppFn)

#define IRpSpace3DPck_CreateReferencedMaterialsFnSet(This,ppFn)	\
    (This)->lpVtbl -> CreateReferencedMaterialsFnSet(This,ppFn)

#define IRpSpace3DPck_SetActiveEditor(This,pEditor)	\
    (This)->lpVtbl -> SetActiveEditor(This,pEditor)

#define IRpSpace3DPck_GetActiveEditor(This,pEditor)	\
    (This)->lpVtbl -> GetActiveEditor(This,pEditor)

#define IRpSpace3DPck_RegisterSysMessageReceiver(This,msg,pRecv)	\
    (This)->lpVtbl -> RegisterSysMessageReceiver(This,msg,pRecv)

#define IRpSpace3DPck_UnregisterSysMessageReceiver(This,msg,pRecv)	\
    (This)->lpVtbl -> UnregisterSysMessageReceiver(This,msg,pRecv)

#define IRpSpace3DPck_CreateVolumeTreeFnSet(This,ppFn)	\
    (This)->lpVtbl -> CreateVolumeTreeFnSet(This,ppFn)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_GetSpaceRoot_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRnEncapsulator **ppRoot);


void __RPC_STUB IRpSpace3DPck_GetSpaceRoot_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_CreateMeshFnSet_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRfMeshSet **ppFn);


void __RPC_STUB IRpSpace3DPck_CreateMeshFnSet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_CreateNURBSFnSet_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRfNURBSSet **ppFn);


void __RPC_STUB IRpSpace3DPck_CreateNURBSFnSet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_CreateObjectHelper_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRfObjectHelper **ppObjectHelper);


void __RPC_STUB IRpSpace3DPck_CreateObjectHelper_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_CreateSceneHelper_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRfSceneHelper **ppSceneHelper);


void __RPC_STUB IRpSpace3DPck_CreateSceneHelper_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_CreateMaterialListFnSet_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRfMaterialListSet **ppFn);


void __RPC_STUB IRpSpace3DPck_CreateMaterialListFnSet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_CreateTransformSet_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRfTransformSet **ppTransformSet);


void __RPC_STUB IRpSpace3DPck_CreateTransformSet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_CreateWorkPlaneHelper_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRfWorkPlane **ppWorkPlane);


void __RPC_STUB IRpSpace3DPck_CreateWorkPlaneHelper_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_GetMeshStreamCache_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRsStreamCache **ppCache);


void __RPC_STUB IRpSpace3DPck_GetMeshStreamCache_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_CreateSnapperSet_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRfSnapperSet **ppSnappingSet);


void __RPC_STUB IRpSpace3DPck_CreateSnapperSet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_GetObjectTypeDetector_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRsObjectTypeDetector **ppDetector);


void __RPC_STUB IRpSpace3DPck_GetObjectTypeDetector_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_CreateSkeletonFnSet_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRfSkeletonSet **ppFn);


void __RPC_STUB IRpSpace3DPck_CreateSkeletonFnSet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_GetTransformOverride_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRsTransformOverride **ppFn);


void __RPC_STUB IRpSpace3DPck_GetTransformOverride_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_CreateEditableMeshFnSet_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRfEditableMeshSet **ppFn);


void __RPC_STUB IRpSpace3DPck_CreateEditableMeshFnSet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_CreateSkinFnSet_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRfSkinSet **ppFn);


void __RPC_STUB IRpSpace3DPck_CreateSkinFnSet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_GetCoordinateSystemManager_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRsCoordinateSystemManager **ppCoordSysMng);


void __RPC_STUB IRpSpace3DPck_GetCoordinateSystemManager_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_CreateMeshRetargetFnSet_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRfMeshRetargetSet **ppFn);


void __RPC_STUB IRpSpace3DPck_CreateMeshRetargetFnSet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_CreateMaterialEditorFnSet_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRfMaterialEditor **ppFn);


void __RPC_STUB IRpSpace3DPck_CreateMaterialEditorFnSet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_CreateOfflineRenderingFnSet_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRfOfflineRendering **ppFn);


void __RPC_STUB IRpSpace3DPck_CreateOfflineRenderingFnSet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_CreateVertexMorphSet_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRfVertexMorphSet **ppFn);


void __RPC_STUB IRpSpace3DPck_CreateVertexMorphSet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_CreateReferencedMaterialsFnSet_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRfReferencedMaterials **ppFn);


void __RPC_STUB IRpSpace3DPck_CreateReferencedMaterialsFnSet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_SetActiveEditor_Proxy( 
    IRpSpace3DPck * This,
    /* [in] */ IRsEditor *pEditor);


void __RPC_STUB IRpSpace3DPck_SetActiveEditor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_GetActiveEditor_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRsEditor **pEditor);


void __RPC_STUB IRpSpace3DPck_GetActiveEditor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_RegisterSysMessageReceiver_Proxy( 
    IRpSpace3DPck * This,
    /* [in] */ MSGID msg,
    /* [in] */ IRsSysMessageReceiver *pRecv);


void __RPC_STUB IRpSpace3DPck_RegisterSysMessageReceiver_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_UnregisterSysMessageReceiver_Proxy( 
    IRpSpace3DPck * This,
    /* [in] */ MSGID msg,
    /* [in] */ IRsSysMessageReceiver *pRecv);


void __RPC_STUB IRpSpace3DPck_UnregisterSysMessageReceiver_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRpSpace3DPck_CreateVolumeTreeFnSet_Proxy( 
    IRpSpace3DPck * This,
    /* [retval][out] */ IRfVolumeTree **ppFn);


void __RPC_STUB IRpSpace3DPck_CreateVolumeTreeFnSet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRpSpace3DPck_INTERFACE_DEFINED__ */


#ifndef __IRdTripleIndexArray_INTERFACE_DEFINED__
#define __IRdTripleIndexArray_INTERFACE_DEFINED__

/* interface IRdTripleIndexArray */
/* [unique][helpstring][object][uuid] */ 


EXTERN_C const IID IID_IRdTripleIndexArray;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F5F8C0F6-C9AF-48E0-87AD-48B8AE5CF648")
    IRdTripleIndexArray : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockData( 
            /* [retval][out] */ RtTripleIndex **ppData) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnLockData( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDesc( 
            /* [out] */ RtNumArrayDesc *pDesc) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSize( 
            /* [in] */ RtUlong cNewSize) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FreeExtra( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ RtUlong index,
            /* [retval][out] */ RtTripleIndex *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetAt( 
            /* [in] */ RtUlong index,
            /* [in] */ RtTripleIndex val) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetElem( 
            /* [in] */ RtUlong index,
            /* [out] */ RtUlong *pI,
            /* [out] */ RtUlong *pJ,
            /* [out] */ RtUlong *pK) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetElem( 
            /* [in] */ RtUlong index,
            /* [in] */ RtUlong i,
            /* [in] */ RtUlong j,
            /* [in] */ RtUlong k) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_i( 
            /* [in] */ RtUlong index,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_i( 
            /* [in] */ RtUlong index,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_j( 
            /* [in] */ RtUlong index,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_j( 
            /* [in] */ RtUlong index,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE get_k( 
            /* [in] */ RtUlong index,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE put_k( 
            /* [in] */ RtUlong index,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSize( 
            /* [retval][out] */ RtUlong *pSize) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdTripleIndexArrayVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdTripleIndexArray * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdTripleIndexArray * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdTripleIndexArray * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockData )( 
            IRdTripleIndexArray * This,
            /* [retval][out] */ RtTripleIndex **ppData);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnLockData )( 
            IRdTripleIndexArray * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDesc )( 
            IRdTripleIndexArray * This,
            /* [out] */ RtNumArrayDesc *pDesc);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSize )( 
            IRdTripleIndexArray * This,
            /* [in] */ RtUlong cNewSize);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FreeExtra )( 
            IRdTripleIndexArray * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdTripleIndexArray * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            IRdTripleIndexArray * This,
            /* [in] */ RtUlong index,
            /* [retval][out] */ RtTripleIndex *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetAt )( 
            IRdTripleIndexArray * This,
            /* [in] */ RtUlong index,
            /* [in] */ RtTripleIndex val);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetElem )( 
            IRdTripleIndexArray * This,
            /* [in] */ RtUlong index,
            /* [out] */ RtUlong *pI,
            /* [out] */ RtUlong *pJ,
            /* [out] */ RtUlong *pK);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetElem )( 
            IRdTripleIndexArray * This,
            /* [in] */ RtUlong index,
            /* [in] */ RtUlong i,
            /* [in] */ RtUlong j,
            /* [in] */ RtUlong k);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_i )( 
            IRdTripleIndexArray * This,
            /* [in] */ RtUlong index,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_i )( 
            IRdTripleIndexArray * This,
            /* [in] */ RtUlong index,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_j )( 
            IRdTripleIndexArray * This,
            /* [in] */ RtUlong index,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_j )( 
            IRdTripleIndexArray * This,
            /* [in] */ RtUlong index,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_k )( 
            IRdTripleIndexArray * This,
            /* [in] */ RtUlong index,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][propput] */ HRESULT ( STDMETHODCALLTYPE *put_k )( 
            IRdTripleIndexArray * This,
            /* [in] */ RtUlong index,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSize )( 
            IRdTripleIndexArray * This,
            /* [retval][out] */ RtUlong *pSize);
        
        END_INTERFACE
    } IRdTripleIndexArrayVtbl;

    interface IRdTripleIndexArray
    {
        CONST_VTBL struct IRdTripleIndexArrayVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdTripleIndexArray_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdTripleIndexArray_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdTripleIndexArray_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdTripleIndexArray_LockData(This,ppData)	\
    (This)->lpVtbl -> LockData(This,ppData)

#define IRdTripleIndexArray_UnLockData(This)	\
    (This)->lpVtbl -> UnLockData(This)

#define IRdTripleIndexArray_GetDesc(This,pDesc)	\
    (This)->lpVtbl -> GetDesc(This,pDesc)

#define IRdTripleIndexArray_SetSize(This,cNewSize)	\
    (This)->lpVtbl -> SetSize(This,cNewSize)

#define IRdTripleIndexArray_FreeExtra(This)	\
    (This)->lpVtbl -> FreeExtra(This)

#define IRdTripleIndexArray_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdTripleIndexArray_GetAt(This,index,pVal)	\
    (This)->lpVtbl -> GetAt(This,index,pVal)

#define IRdTripleIndexArray_SetAt(This,index,val)	\
    (This)->lpVtbl -> SetAt(This,index,val)

#define IRdTripleIndexArray_GetElem(This,index,pI,pJ,pK)	\
    (This)->lpVtbl -> GetElem(This,index,pI,pJ,pK)

#define IRdTripleIndexArray_SetElem(This,index,i,j,k)	\
    (This)->lpVtbl -> SetElem(This,index,i,j,k)

#define IRdTripleIndexArray_get_i(This,index,pVal)	\
    (This)->lpVtbl -> get_i(This,index,pVal)

#define IRdTripleIndexArray_put_i(This,index,newVal)	\
    (This)->lpVtbl -> put_i(This,index,newVal)

#define IRdTripleIndexArray_get_j(This,index,pVal)	\
    (This)->lpVtbl -> get_j(This,index,pVal)

#define IRdTripleIndexArray_put_j(This,index,newVal)	\
    (This)->lpVtbl -> put_j(This,index,newVal)

#define IRdTripleIndexArray_get_k(This,index,pVal)	\
    (This)->lpVtbl -> get_k(This,index,pVal)

#define IRdTripleIndexArray_put_k(This,index,newVal)	\
    (This)->lpVtbl -> put_k(This,index,newVal)

#define IRdTripleIndexArray_GetSize(This,pSize)	\
    (This)->lpVtbl -> GetSize(This,pSize)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArray_LockData_Proxy( 
    IRdTripleIndexArray * This,
    /* [retval][out] */ RtTripleIndex **ppData);


void __RPC_STUB IRdTripleIndexArray_LockData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArray_UnLockData_Proxy( 
    IRdTripleIndexArray * This);


void __RPC_STUB IRdTripleIndexArray_UnLockData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArray_GetDesc_Proxy( 
    IRdTripleIndexArray * This,
    /* [out] */ RtNumArrayDesc *pDesc);


void __RPC_STUB IRdTripleIndexArray_GetDesc_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArray_SetSize_Proxy( 
    IRdTripleIndexArray * This,
    /* [in] */ RtUlong cNewSize);


void __RPC_STUB IRdTripleIndexArray_SetSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArray_FreeExtra_Proxy( 
    IRdTripleIndexArray * This);


void __RPC_STUB IRdTripleIndexArray_FreeExtra_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArray_Clear_Proxy( 
    IRdTripleIndexArray * This);


void __RPC_STUB IRdTripleIndexArray_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArray_GetAt_Proxy( 
    IRdTripleIndexArray * This,
    /* [in] */ RtUlong index,
    /* [retval][out] */ RtTripleIndex *pVal);


void __RPC_STUB IRdTripleIndexArray_GetAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArray_SetAt_Proxy( 
    IRdTripleIndexArray * This,
    /* [in] */ RtUlong index,
    /* [in] */ RtTripleIndex val);


void __RPC_STUB IRdTripleIndexArray_SetAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArray_GetElem_Proxy( 
    IRdTripleIndexArray * This,
    /* [in] */ RtUlong index,
    /* [out] */ RtUlong *pI,
    /* [out] */ RtUlong *pJ,
    /* [out] */ RtUlong *pK);


void __RPC_STUB IRdTripleIndexArray_GetElem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArray_SetElem_Proxy( 
    IRdTripleIndexArray * This,
    /* [in] */ RtUlong index,
    /* [in] */ RtUlong i,
    /* [in] */ RtUlong j,
    /* [in] */ RtUlong k);


void __RPC_STUB IRdTripleIndexArray_SetElem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArray_get_i_Proxy( 
    IRdTripleIndexArray * This,
    /* [in] */ RtUlong index,
    /* [retval][out] */ RtUlong *pVal);


void __RPC_STUB IRdTripleIndexArray_get_i_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArray_put_i_Proxy( 
    IRdTripleIndexArray * This,
    /* [in] */ RtUlong index,
    /* [in] */ RtUlong newVal);


void __RPC_STUB IRdTripleIndexArray_put_i_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArray_get_j_Proxy( 
    IRdTripleIndexArray * This,
    /* [in] */ RtUlong index,
    /* [retval][out] */ RtUlong *pVal);


void __RPC_STUB IRdTripleIndexArray_get_j_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArray_put_j_Proxy( 
    IRdTripleIndexArray * This,
    /* [in] */ RtUlong index,
    /* [in] */ RtUlong newVal);


void __RPC_STUB IRdTripleIndexArray_put_j_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propget] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArray_get_k_Proxy( 
    IRdTripleIndexArray * This,
    /* [in] */ RtUlong index,
    /* [retval][out] */ RtUlong *pVal);


void __RPC_STUB IRdTripleIndexArray_get_k_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][propput] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArray_put_k_Proxy( 
    IRdTripleIndexArray * This,
    /* [in] */ RtUlong index,
    /* [in] */ RtUlong newVal);


void __RPC_STUB IRdTripleIndexArray_put_k_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArray_GetSize_Proxy( 
    IRdTripleIndexArray * This,
    /* [retval][out] */ RtUlong *pSize);


void __RPC_STUB IRdTripleIndexArray_GetSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdTripleIndexArray_INTERFACE_DEFINED__ */


#ifndef __IRdTripleIndexArrayDisp_INTERFACE_DEFINED__
#define __IRdTripleIndexArrayDisp_INTERFACE_DEFINED__

/* interface IRdTripleIndexArrayDisp */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdTripleIndexArrayDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("e585ce15-376e-43a7-9ed3-7e3e1ddd52aa")
    IRdTripleIndexArrayDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FreeExtra( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetSize( 
            /* [in] */ RtUlong cNewSize) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetElem( 
            /* [in] */ RtUlong index,
            /* [out] */ RtUlong *pI,
            /* [out] */ RtUlong *pJ,
            /* [out] */ RtUlong *pK) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetElem( 
            /* [in] */ RtUlong index,
            /* [in] */ RtUlong i,
            /* [in] */ RtUlong j,
            /* [in] */ RtUlong k) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_i( 
            /* [in] */ RtUlong index,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_i( 
            /* [in] */ RtUlong index,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_j( 
            /* [in] */ RtUlong index,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_j( 
            /* [in] */ RtUlong index,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_k( 
            /* [in] */ RtUlong index,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_k( 
            /* [in] */ RtUlong index,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSize( 
            /* [retval][out] */ RtUlong *pSize) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdTripleIndexArrayDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdTripleIndexArrayDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdTripleIndexArrayDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdTripleIndexArrayDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdTripleIndexArrayDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdTripleIndexArrayDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdTripleIndexArrayDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdTripleIndexArrayDisp * 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 *FreeExtra )( 
            IRdTripleIndexArrayDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetSize )( 
            IRdTripleIndexArrayDisp * This,
            /* [in] */ RtUlong cNewSize);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdTripleIndexArrayDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetElem )( 
            IRdTripleIndexArrayDisp * This,
            /* [in] */ RtUlong index,
            /* [out] */ RtUlong *pI,
            /* [out] */ RtUlong *pJ,
            /* [out] */ RtUlong *pK);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetElem )( 
            IRdTripleIndexArrayDisp * This,
            /* [in] */ RtUlong index,
            /* [in] */ RtUlong i,
            /* [in] */ RtUlong j,
            /* [in] */ RtUlong k);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_i )( 
            IRdTripleIndexArrayDisp * This,
            /* [in] */ RtUlong index,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_i )( 
            IRdTripleIndexArrayDisp * This,
            /* [in] */ RtUlong index,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_j )( 
            IRdTripleIndexArrayDisp * This,
            /* [in] */ RtUlong index,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_j )( 
            IRdTripleIndexArrayDisp * This,
            /* [in] */ RtUlong index,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_k )( 
            IRdTripleIndexArrayDisp * This,
            /* [in] */ RtUlong index,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_k )( 
            IRdTripleIndexArrayDisp * This,
            /* [in] */ RtUlong index,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSize )( 
            IRdTripleIndexArrayDisp * This,
            /* [retval][out] */ RtUlong *pSize);
        
        END_INTERFACE
    } IRdTripleIndexArrayDispVtbl;

    interface IRdTripleIndexArrayDisp
    {
        CONST_VTBL struct IRdTripleIndexArrayDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdTripleIndexArrayDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdTripleIndexArrayDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdTripleIndexArrayDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdTripleIndexArrayDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdTripleIndexArrayDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdTripleIndexArrayDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdTripleIndexArrayDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdTripleIndexArrayDisp_FreeExtra(This)	\
    (This)->lpVtbl -> FreeExtra(This)

#define IRdTripleIndexArrayDisp_SetSize(This,cNewSize)	\
    (This)->lpVtbl -> SetSize(This,cNewSize)

#define IRdTripleIndexArrayDisp_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdTripleIndexArrayDisp_GetElem(This,index,pI,pJ,pK)	\
    (This)->lpVtbl -> GetElem(This,index,pI,pJ,pK)

#define IRdTripleIndexArrayDisp_SetElem(This,index,i,j,k)	\
    (This)->lpVtbl -> SetElem(This,index,i,j,k)

#define IRdTripleIndexArrayDisp_get_i(This,index,pVal)	\
    (This)->lpVtbl -> get_i(This,index,pVal)

#define IRdTripleIndexArrayDisp_put_i(This,index,newVal)	\
    (This)->lpVtbl -> put_i(This,index,newVal)

#define IRdTripleIndexArrayDisp_get_j(This,index,pVal)	\
    (This)->lpVtbl -> get_j(This,index,pVal)

#define IRdTripleIndexArrayDisp_put_j(This,index,newVal)	\
    (This)->lpVtbl -> put_j(This,index,newVal)

#define IRdTripleIndexArrayDisp_get_k(This,index,pVal)	\
    (This)->lpVtbl -> get_k(This,index,pVal)

#define IRdTripleIndexArrayDisp_put_k(This,index,newVal)	\
    (This)->lpVtbl -> put_k(This,index,newVal)

#define IRdTripleIndexArrayDisp_GetSize(This,pSize)	\
    (This)->lpVtbl -> GetSize(This,pSize)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArrayDisp_FreeExtra_Proxy( 
    IRdTripleIndexArrayDisp * This);


void __RPC_STUB IRdTripleIndexArrayDisp_FreeExtra_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArrayDisp_SetSize_Proxy( 
    IRdTripleIndexArrayDisp * This,
    /* [in] */ RtUlong cNewSize);


void __RPC_STUB IRdTripleIndexArrayDisp_SetSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArrayDisp_Clear_Proxy( 
    IRdTripleIndexArrayDisp * This);


void __RPC_STUB IRdTripleIndexArrayDisp_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArrayDisp_GetElem_Proxy( 
    IRdTripleIndexArrayDisp * This,
    /* [in] */ RtUlong index,
    /* [out] */ RtUlong *pI,
    /* [out] */ RtUlong *pJ,
    /* [out] */ RtUlong *pK);


void __RPC_STUB IRdTripleIndexArrayDisp_GetElem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArrayDisp_SetElem_Proxy( 
    IRdTripleIndexArrayDisp * This,
    /* [in] */ RtUlong index,
    /* [in] */ RtUlong i,
    /* [in] */ RtUlong j,
    /* [in] */ RtUlong k);


void __RPC_STUB IRdTripleIndexArrayDisp_SetElem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArrayDisp_get_i_Proxy( 
    IRdTripleIndexArrayDisp * This,
    /* [in] */ RtUlong index,
    /* [retval][out] */ RtUlong *pVal);


void __RPC_STUB IRdTripleIndexArrayDisp_get_i_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArrayDisp_put_i_Proxy( 
    IRdTripleIndexArrayDisp * This,
    /* [in] */ RtUlong index,
    /* [in] */ RtUlong newVal);


void __RPC_STUB IRdTripleIndexArrayDisp_put_i_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArrayDisp_get_j_Proxy( 
    IRdTripleIndexArrayDisp * This,
    /* [in] */ RtUlong index,
    /* [retval][out] */ RtUlong *pVal);


void __RPC_STUB IRdTripleIndexArrayDisp_get_j_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArrayDisp_put_j_Proxy( 
    IRdTripleIndexArrayDisp * This,
    /* [in] */ RtUlong index,
    /* [in] */ RtUlong newVal);


void __RPC_STUB IRdTripleIndexArrayDisp_put_j_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArrayDisp_get_k_Proxy( 
    IRdTripleIndexArrayDisp * This,
    /* [in] */ RtUlong index,
    /* [retval][out] */ RtUlong *pVal);


void __RPC_STUB IRdTripleIndexArrayDisp_get_k_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArrayDisp_put_k_Proxy( 
    IRdTripleIndexArrayDisp * This,
    /* [in] */ RtUlong index,
    /* [in] */ RtUlong newVal);


void __RPC_STUB IRdTripleIndexArrayDisp_put_k_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTripleIndexArrayDisp_GetSize_Proxy( 
    IRdTripleIndexArrayDisp * This,
    /* [retval][out] */ RtUlong *pSize);


void __RPC_STUB IRdTripleIndexArrayDisp_GetSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdTripleIndexArrayDisp_INTERFACE_DEFINED__ */


#ifndef __IRdPointArray_INTERFACE_DEFINED__
#define __IRdPointArray_INTERFACE_DEFINED__

/* interface IRdPointArray */
/* [unique][helpstring][object][uuid] */ 


EXTERN_C const IID IID_IRdPointArray;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D6C8A39F-05EC-4628-9329-DD9F9E7BF0F6")
    IRdPointArray : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LockData( 
            /* [retval][out] */ RtPoint **ppfData) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UnLockData( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDesc( 
            /* [out] */ RtNumArrayDesc *pDesc) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetSize( 
            /* [in] */ RtUlong dwNewSize) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FreeExtra( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ RtUlong dwIndex,
            /* [out] */ RtPoint *pData) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetAt( 
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtPoint value) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetElem( 
            /* [in] */ RtUlong dwIndex,
            /* [out] */ RtFloat *pfX,
            /* [out] */ RtFloat *pfY,
            /* [out] */ RtFloat *pfZ) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetElem( 
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtFloat fX,
            /* [in] */ RtFloat fY,
            /* [in] */ RtFloat fZ) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_x( 
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_x( 
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_y( 
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_y( 
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_z( 
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_z( 
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSize( 
            /* [retval][out] */ RtUlong *pSize) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdPointArrayVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdPointArray * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdPointArray * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdPointArray * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LockData )( 
            IRdPointArray * This,
            /* [retval][out] */ RtPoint **ppfData);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UnLockData )( 
            IRdPointArray * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDesc )( 
            IRdPointArray * This,
            /* [out] */ RtNumArrayDesc *pDesc);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetSize )( 
            IRdPointArray * This,
            /* [in] */ RtUlong dwNewSize);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FreeExtra )( 
            IRdPointArray * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdPointArray * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            IRdPointArray * This,
            /* [in] */ RtUlong dwIndex,
            /* [out] */ RtPoint *pData);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetAt )( 
            IRdPointArray * This,
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtPoint value);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetElem )( 
            IRdPointArray * This,
            /* [in] */ RtUlong dwIndex,
            /* [out] */ RtFloat *pfX,
            /* [out] */ RtFloat *pfY,
            /* [out] */ RtFloat *pfZ);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetElem )( 
            IRdPointArray * This,
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtFloat fX,
            /* [in] */ RtFloat fY,
            /* [in] */ RtFloat fZ);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_x )( 
            IRdPointArray * This,
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_x )( 
            IRdPointArray * This,
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_y )( 
            IRdPointArray * This,
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_y )( 
            IRdPointArray * This,
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_z )( 
            IRdPointArray * This,
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_z )( 
            IRdPointArray * This,
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSize )( 
            IRdPointArray * This,
            /* [retval][out] */ RtUlong *pSize);
        
        END_INTERFACE
    } IRdPointArrayVtbl;

    interface IRdPointArray
    {
        CONST_VTBL struct IRdPointArrayVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdPointArray_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdPointArray_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdPointArray_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdPointArray_LockData(This,ppfData)	\
    (This)->lpVtbl -> LockData(This,ppfData)

#define IRdPointArray_UnLockData(This)	\
    (This)->lpVtbl -> UnLockData(This)

#define IRdPointArray_GetDesc(This,pDesc)	\
    (This)->lpVtbl -> GetDesc(This,pDesc)

#define IRdPointArray_SetSize(This,dwNewSize)	\
    (This)->lpVtbl -> SetSize(This,dwNewSize)

#define IRdPointArray_FreeExtra(This)	\
    (This)->lpVtbl -> FreeExtra(This)

#define IRdPointArray_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdPointArray_GetAt(This,dwIndex,pData)	\
    (This)->lpVtbl -> GetAt(This,dwIndex,pData)

#define IRdPointArray_SetAt(This,dwIndex,value)	\
    (This)->lpVtbl -> SetAt(This,dwIndex,value)

#define IRdPointArray_GetElem(This,dwIndex,pfX,pfY,pfZ)	\
    (This)->lpVtbl -> GetElem(This,dwIndex,pfX,pfY,pfZ)

#define IRdPointArray_SetElem(This,dwIndex,fX,fY,fZ)	\
    (This)->lpVtbl -> SetElem(This,dwIndex,fX,fY,fZ)

#define IRdPointArray_get_x(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_x(This,dwIndex,pVal)

#define IRdPointArray_put_x(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_x(This,dwIndex,newVal)

#define IRdPointArray_get_y(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_y(This,dwIndex,pVal)

#define IRdPointArray_put_y(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_y(This,dwIndex,newVal)

#define IRdPointArray_get_z(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_z(This,dwIndex,pVal)

#define IRdPointArray_put_z(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_z(This,dwIndex,newVal)

#define IRdPointArray_GetSize(This,pSize)	\
    (This)->lpVtbl -> GetSize(This,pSize)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdPointArray_LockData_Proxy( 
    IRdPointArray * This,
    /* [retval][out] */ RtPoint **ppfData);


void __RPC_STUB IRdPointArray_LockData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdPointArray_UnLockData_Proxy( 
    IRdPointArray * This);


void __RPC_STUB IRdPointArray_UnLockData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdPointArray_GetDesc_Proxy( 
    IRdPointArray * This,
    /* [out] */ RtNumArrayDesc *pDesc);


void __RPC_STUB IRdPointArray_GetDesc_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdPointArray_SetSize_Proxy( 
    IRdPointArray * This,
    /* [in] */ RtUlong dwNewSize);


void __RPC_STUB IRdPointArray_SetSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdPointArray_FreeExtra_Proxy( 
    IRdPointArray * This);


void __RPC_STUB IRdPointArray_FreeExtra_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdPointArray_Clear_Proxy( 
    IRdPointArray * This);


void __RPC_STUB IRdPointArray_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdPointArray_GetAt_Proxy( 
    IRdPointArray * This,
    /* [in] */ RtUlong dwIndex,
    /* [out] */ RtPoint *pData);


void __RPC_STUB IRdPointArray_GetAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdPointArray_SetAt_Proxy( 
    IRdPointArray * This,
    /* [in] */ RtUlong dwIndex,
    /* [in] */ RtPoint value);


void __RPC_STUB IRdPointArray_SetAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdPointArray_GetElem_Proxy( 
    IRdPointArray * This,
    /* [in] */ RtUlong dwIndex,
    /* [out] */ RtFloat *pfX,
    /* [out] */ RtFloat *pfY,
    /* [out] */ RtFloat *pfZ);


void __RPC_STUB IRdPointArray_GetElem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdPointArray_SetElem_Proxy( 
    IRdPointArray * This,
    /* [in] */ RtUlong dwIndex,
    /* [in] */ RtFloat fX,
    /* [in] */ RtFloat fY,
    /* [in] */ RtFloat fZ);


void __RPC_STUB IRdPointArray_SetElem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPointArray_get_x_Proxy( 
    IRdPointArray * This,
    /* [in] */ RtUlong dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdPointArray_get_x_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPointArray_put_x_Proxy( 
    IRdPointArray * This,
    /* [in] */ RtUlong dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdPointArray_put_x_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPointArray_get_y_Proxy( 
    IRdPointArray * This,
    /* [in] */ RtUlong dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdPointArray_get_y_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPointArray_put_y_Proxy( 
    IRdPointArray * This,
    /* [in] */ RtUlong dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdPointArray_put_y_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPointArray_get_z_Proxy( 
    IRdPointArray * This,
    /* [in] */ RtUlong dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdPointArray_get_z_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPointArray_put_z_Proxy( 
    IRdPointArray * This,
    /* [in] */ RtUlong dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdPointArray_put_z_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdPointArray_GetSize_Proxy( 
    IRdPointArray * This,
    /* [retval][out] */ RtUlong *pSize);


void __RPC_STUB IRdPointArray_GetSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdPointArray_INTERFACE_DEFINED__ */


#ifndef __IRdPointArrayDisp_INTERFACE_DEFINED__
#define __IRdPointArrayDisp_INTERFACE_DEFINED__

/* interface IRdPointArrayDisp */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdPointArrayDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5fc12534-5249-4af6-b9f6-78d8d63754bb")
    IRdPointArrayDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetSize( 
            /* [in] */ RtUlong dwNewSize) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FreeExtra( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetElem( 
            /* [in] */ RtUlong dwIndex,
            /* [out] */ RtFloat *pfX,
            /* [out] */ RtFloat *pfY,
            /* [out] */ RtFloat *pfZ) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetElem( 
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtFloat fX,
            /* [in] */ RtFloat fY,
            /* [in] */ RtFloat fZ) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_x( 
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_x( 
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_y( 
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_y( 
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_z( 
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_z( 
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSize( 
            /* [retval][out] */ RtUlong *pSize) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdPointArrayDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdPointArrayDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdPointArrayDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdPointArrayDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdPointArrayDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdPointArrayDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdPointArrayDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdPointArrayDisp * 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 *SetSize )( 
            IRdPointArrayDisp * This,
            /* [in] */ RtUlong dwNewSize);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FreeExtra )( 
            IRdPointArrayDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdPointArrayDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetElem )( 
            IRdPointArrayDisp * This,
            /* [in] */ RtUlong dwIndex,
            /* [out] */ RtFloat *pfX,
            /* [out] */ RtFloat *pfY,
            /* [out] */ RtFloat *pfZ);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetElem )( 
            IRdPointArrayDisp * This,
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtFloat fX,
            /* [in] */ RtFloat fY,
            /* [in] */ RtFloat fZ);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_x )( 
            IRdPointArrayDisp * This,
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_x )( 
            IRdPointArrayDisp * This,
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_y )( 
            IRdPointArrayDisp * This,
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_y )( 
            IRdPointArrayDisp * This,
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_z )( 
            IRdPointArrayDisp * This,
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_z )( 
            IRdPointArrayDisp * This,
            /* [in] */ RtUlong dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSize )( 
            IRdPointArrayDisp * This,
            /* [retval][out] */ RtUlong *pSize);
        
        END_INTERFACE
    } IRdPointArrayDispVtbl;

    interface IRdPointArrayDisp
    {
        CONST_VTBL struct IRdPointArrayDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdPointArrayDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdPointArrayDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdPointArrayDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdPointArrayDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdPointArrayDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdPointArrayDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdPointArrayDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdPointArrayDisp_SetSize(This,dwNewSize)	\
    (This)->lpVtbl -> SetSize(This,dwNewSize)

#define IRdPointArrayDisp_FreeExtra(This)	\
    (This)->lpVtbl -> FreeExtra(This)

#define IRdPointArrayDisp_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdPointArrayDisp_GetElem(This,dwIndex,pfX,pfY,pfZ)	\
    (This)->lpVtbl -> GetElem(This,dwIndex,pfX,pfY,pfZ)

#define IRdPointArrayDisp_SetElem(This,dwIndex,fX,fY,fZ)	\
    (This)->lpVtbl -> SetElem(This,dwIndex,fX,fY,fZ)

#define IRdPointArrayDisp_get_x(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_x(This,dwIndex,pVal)

#define IRdPointArrayDisp_put_x(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_x(This,dwIndex,newVal)

#define IRdPointArrayDisp_get_y(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_y(This,dwIndex,pVal)

#define IRdPointArrayDisp_put_y(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_y(This,dwIndex,newVal)

#define IRdPointArrayDisp_get_z(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_z(This,dwIndex,pVal)

#define IRdPointArrayDisp_put_z(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_z(This,dwIndex,newVal)

#define IRdPointArrayDisp_GetSize(This,pSize)	\
    (This)->lpVtbl -> GetSize(This,pSize)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdPointArrayDisp_SetSize_Proxy( 
    IRdPointArrayDisp * This,
    /* [in] */ RtUlong dwNewSize);


void __RPC_STUB IRdPointArrayDisp_SetSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdPointArrayDisp_FreeExtra_Proxy( 
    IRdPointArrayDisp * This);


void __RPC_STUB IRdPointArrayDisp_FreeExtra_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdPointArrayDisp_Clear_Proxy( 
    IRdPointArrayDisp * This);


void __RPC_STUB IRdPointArrayDisp_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdPointArrayDisp_GetElem_Proxy( 
    IRdPointArrayDisp * This,
    /* [in] */ RtUlong dwIndex,
    /* [out] */ RtFloat *pfX,
    /* [out] */ RtFloat *pfY,
    /* [out] */ RtFloat *pfZ);


void __RPC_STUB IRdPointArrayDisp_GetElem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdPointArrayDisp_SetElem_Proxy( 
    IRdPointArrayDisp * This,
    /* [in] */ RtUlong dwIndex,
    /* [in] */ RtFloat fX,
    /* [in] */ RtFloat fY,
    /* [in] */ RtFloat fZ);


void __RPC_STUB IRdPointArrayDisp_SetElem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPointArrayDisp_get_x_Proxy( 
    IRdPointArrayDisp * This,
    /* [in] */ RtUlong dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdPointArrayDisp_get_x_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPointArrayDisp_put_x_Proxy( 
    IRdPointArrayDisp * This,
    /* [in] */ RtUlong dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdPointArrayDisp_put_x_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPointArrayDisp_get_y_Proxy( 
    IRdPointArrayDisp * This,
    /* [in] */ RtUlong dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdPointArrayDisp_get_y_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPointArrayDisp_put_y_Proxy( 
    IRdPointArrayDisp * This,
    /* [in] */ RtUlong dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdPointArrayDisp_put_y_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdPointArrayDisp_get_z_Proxy( 
    IRdPointArrayDisp * This,
    /* [in] */ RtUlong dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdPointArrayDisp_get_z_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdPointArrayDisp_put_z_Proxy( 
    IRdPointArrayDisp * This,
    /* [in] */ RtUlong dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdPointArrayDisp_put_z_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdPointArrayDisp_GetSize_Proxy( 
    IRdPointArrayDisp * This,
    /* [retval][out] */ RtUlong *pSize);


void __RPC_STUB IRdPointArrayDisp_GetSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdPointArrayDisp_INTERFACE_DEFINED__ */


#ifndef __IRdUvArray_INTERFACE_DEFINED__
#define __IRdUvArray_INTERFACE_DEFINED__

/* interface IRdUvArray */
/* [unique][helpstring][object][uuid] */ 


EXTERN_C const IID IID_IRdUvArray;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("01587A1D-61D1-402A-9293-B888B14CDB87")
    IRdUvArray : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockData( 
            /* [retval][out] */ RtUVcoord **ppfData) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnLockData( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDesc( 
            /* [out] */ RtNumArrayDesc *pDesc) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSize( 
            /* [in] */ RtUlong cNewSize) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FreeExtra( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ RtUlong index,
            /* [retval][out] */ RtUVcoord *pData) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetAt( 
            /* [in] */ RtUlong index,
            /* [in] */ RtUVcoord value) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetElem( 
            /* [in] */ RtUlong index,
            /* [out] */ RtFloat *pU,
            /* [out] */ RtFloat *pV) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetElem( 
            /* [in] */ RtUlong index,
            /* [in] */ RtFloat u,
            /* [in] */ RtFloat v) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSize( 
            /* [retval][out] */ RtUlong *pSize) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdUvArrayVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdUvArray * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdUvArray * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdUvArray * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockData )( 
            IRdUvArray * This,
            /* [retval][out] */ RtUVcoord **ppfData);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnLockData )( 
            IRdUvArray * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDesc )( 
            IRdUvArray * This,
            /* [out] */ RtNumArrayDesc *pDesc);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSize )( 
            IRdUvArray * This,
            /* [in] */ RtUlong cNewSize);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FreeExtra )( 
            IRdUvArray * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdUvArray * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            IRdUvArray * This,
            /* [in] */ RtUlong index,
            /* [retval][out] */ RtUVcoord *pData);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetAt )( 
            IRdUvArray * This,
            /* [in] */ RtUlong index,
            /* [in] */ RtUVcoord value);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetElem )( 
            IRdUvArray * This,
            /* [in] */ RtUlong index,
            /* [out] */ RtFloat *pU,
            /* [out] */ RtFloat *pV);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetElem )( 
            IRdUvArray * This,
            /* [in] */ RtUlong index,
            /* [in] */ RtFloat u,
            /* [in] */ RtFloat v);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSize )( 
            IRdUvArray * This,
            /* [retval][out] */ RtUlong *pSize);
        
        END_INTERFACE
    } IRdUvArrayVtbl;

    interface IRdUvArray
    {
        CONST_VTBL struct IRdUvArrayVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdUvArray_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdUvArray_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdUvArray_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdUvArray_LockData(This,ppfData)	\
    (This)->lpVtbl -> LockData(This,ppfData)

#define IRdUvArray_UnLockData(This)	\
    (This)->lpVtbl -> UnLockData(This)

#define IRdUvArray_GetDesc(This,pDesc)	\
    (This)->lpVtbl -> GetDesc(This,pDesc)

#define IRdUvArray_SetSize(This,cNewSize)	\
    (This)->lpVtbl -> SetSize(This,cNewSize)

#define IRdUvArray_FreeExtra(This)	\
    (This)->lpVtbl -> FreeExtra(This)

#define IRdUvArray_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdUvArray_GetAt(This,index,pData)	\
    (This)->lpVtbl -> GetAt(This,index,pData)

#define IRdUvArray_SetAt(This,index,value)	\
    (This)->lpVtbl -> SetAt(This,index,value)

#define IRdUvArray_GetElem(This,index,pU,pV)	\
    (This)->lpVtbl -> GetElem(This,index,pU,pV)

#define IRdUvArray_SetElem(This,index,u,v)	\
    (This)->lpVtbl -> SetElem(This,index,u,v)

#define IRdUvArray_GetSize(This,pSize)	\
    (This)->lpVtbl -> GetSize(This,pSize)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdUvArray_LockData_Proxy( 
    IRdUvArray * This,
    /* [retval][out] */ RtUVcoord **ppfData);


void __RPC_STUB IRdUvArray_LockData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdUvArray_UnLockData_Proxy( 
    IRdUvArray * This);


void __RPC_STUB IRdUvArray_UnLockData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdUvArray_GetDesc_Proxy( 
    IRdUvArray * This,
    /* [out] */ RtNumArrayDesc *pDesc);


void __RPC_STUB IRdUvArray_GetDesc_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdUvArray_SetSize_Proxy( 
    IRdUvArray * This,
    /* [in] */ RtUlong cNewSize);


void __RPC_STUB IRdUvArray_SetSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdUvArray_FreeExtra_Proxy( 
    IRdUvArray * This);


void __RPC_STUB IRdUvArray_FreeExtra_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdUvArray_Clear_Proxy( 
    IRdUvArray * This);


void __RPC_STUB IRdUvArray_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdUvArray_GetAt_Proxy( 
    IRdUvArray * This,
    /* [in] */ RtUlong index,
    /* [retval][out] */ RtUVcoord *pData);


void __RPC_STUB IRdUvArray_GetAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdUvArray_SetAt_Proxy( 
    IRdUvArray * This,
    /* [in] */ RtUlong index,
    /* [in] */ RtUVcoord value);


void __RPC_STUB IRdUvArray_SetAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdUvArray_GetElem_Proxy( 
    IRdUvArray * This,
    /* [in] */ RtUlong index,
    /* [out] */ RtFloat *pU,
    /* [out] */ RtFloat *pV);


void __RPC_STUB IRdUvArray_GetElem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdUvArray_SetElem_Proxy( 
    IRdUvArray * This,
    /* [in] */ RtUlong index,
    /* [in] */ RtFloat u,
    /* [in] */ RtFloat v);


void __RPC_STUB IRdUvArray_SetElem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdUvArray_GetSize_Proxy( 
    IRdUvArray * This,
    /* [retval][out] */ RtUlong *pSize);


void __RPC_STUB IRdUvArray_GetSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdUvArray_INTERFACE_DEFINED__ */


#ifndef __IRdUvArrayDisp_INTERFACE_DEFINED__
#define __IRdUvArrayDisp_INTERFACE_DEFINED__

/* interface IRdUvArrayDisp */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdUvArrayDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("b42f0e5b-6007-4f82-b6a7-186903c91759")
    IRdUvArrayDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetSize( 
            /* [in] */ RtUlong cNewSize) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSize( 
            /* [retval][out] */ RtUlong *pSize) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FreeExtra( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetElem( 
            /* [in] */ RtUlong index,
            /* [out] */ RtFloat *pU,
            /* [out] */ RtFloat *pV) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetElem( 
            /* [in] */ RtUlong index,
            /* [in] */ RtFloat u,
            /* [in] */ RtFloat v) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdUvArrayDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdUvArrayDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdUvArrayDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdUvArrayDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdUvArrayDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdUvArrayDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdUvArrayDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdUvArrayDisp * 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 *SetSize )( 
            IRdUvArrayDisp * This,
            /* [in] */ RtUlong cNewSize);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSize )( 
            IRdUvArrayDisp * This,
            /* [retval][out] */ RtUlong *pSize);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FreeExtra )( 
            IRdUvArrayDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdUvArrayDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetElem )( 
            IRdUvArrayDisp * This,
            /* [in] */ RtUlong index,
            /* [out] */ RtFloat *pU,
            /* [out] */ RtFloat *pV);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetElem )( 
            IRdUvArrayDisp * This,
            /* [in] */ RtUlong index,
            /* [in] */ RtFloat u,
            /* [in] */ RtFloat v);
        
        END_INTERFACE
    } IRdUvArrayDispVtbl;

    interface IRdUvArrayDisp
    {
        CONST_VTBL struct IRdUvArrayDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdUvArrayDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdUvArrayDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdUvArrayDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdUvArrayDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdUvArrayDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdUvArrayDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdUvArrayDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdUvArrayDisp_SetSize(This,cNewSize)	\
    (This)->lpVtbl -> SetSize(This,cNewSize)

#define IRdUvArrayDisp_GetSize(This,pSize)	\
    (This)->lpVtbl -> GetSize(This,pSize)

#define IRdUvArrayDisp_FreeExtra(This)	\
    (This)->lpVtbl -> FreeExtra(This)

#define IRdUvArrayDisp_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdUvArrayDisp_GetElem(This,index,pU,pV)	\
    (This)->lpVtbl -> GetElem(This,index,pU,pV)

#define IRdUvArrayDisp_SetElem(This,index,u,v)	\
    (This)->lpVtbl -> SetElem(This,index,u,v)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdUvArrayDisp_SetSize_Proxy( 
    IRdUvArrayDisp * This,
    /* [in] */ RtUlong cNewSize);


void __RPC_STUB IRdUvArrayDisp_SetSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdUvArrayDisp_GetSize_Proxy( 
    IRdUvArrayDisp * This,
    /* [retval][out] */ RtUlong *pSize);


void __RPC_STUB IRdUvArrayDisp_GetSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdUvArrayDisp_FreeExtra_Proxy( 
    IRdUvArrayDisp * This);


void __RPC_STUB IRdUvArrayDisp_FreeExtra_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdUvArrayDisp_Clear_Proxy( 
    IRdUvArrayDisp * This);


void __RPC_STUB IRdUvArrayDisp_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdUvArrayDisp_GetElem_Proxy( 
    IRdUvArrayDisp * This,
    /* [in] */ RtUlong index,
    /* [out] */ RtFloat *pU,
    /* [out] */ RtFloat *pV);


void __RPC_STUB IRdUvArrayDisp_GetElem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdUvArrayDisp_SetElem_Proxy( 
    IRdUvArrayDisp * This,
    /* [in] */ RtUlong index,
    /* [in] */ RtFloat u,
    /* [in] */ RtFloat v);


void __RPC_STUB IRdUvArrayDisp_SetElem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdUvArrayDisp_INTERFACE_DEFINED__ */


#ifndef __IRdIndexArray_INTERFACE_DEFINED__
#define __IRdIndexArray_INTERFACE_DEFINED__

/* interface IRdIndexArray */
/* [unique][helpstring][object][uuid] */ 


EXTERN_C const IID IID_IRdIndexArray;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("04329B38-3580-498A-A99E-62A0CDC1E064")
    IRdIndexArray : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockData( 
            /* [retval][out] */ RtUlong **ppfData) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnLockData( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDesc( 
            /* [out] */ RtNumArrayDesc *pDesc) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSize( 
            /* [in] */ RtUlong cNewSize) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FreeExtra( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ RtUlong index,
            /* [retval][out] */ RtUlong *pData) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetAt( 
            /* [in] */ RtUlong index,
            /* [in] */ RtUlong value) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSize( 
            /* [retval][out] */ RtUlong *pSize) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ RtUlong newVal,
            /* [retval][out] */ RtUlong *index) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RemoveAt( 
            /* [in] */ RtUlong index) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdIndexArrayVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdIndexArray * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdIndexArray * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdIndexArray * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockData )( 
            IRdIndexArray * This,
            /* [retval][out] */ RtUlong **ppfData);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnLockData )( 
            IRdIndexArray * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDesc )( 
            IRdIndexArray * This,
            /* [out] */ RtNumArrayDesc *pDesc);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSize )( 
            IRdIndexArray * This,
            /* [in] */ RtUlong cNewSize);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FreeExtra )( 
            IRdIndexArray * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdIndexArray * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            IRdIndexArray * This,
            /* [in] */ RtUlong index,
            /* [retval][out] */ RtUlong *pData);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetAt )( 
            IRdIndexArray * This,
            /* [in] */ RtUlong index,
            /* [in] */ RtUlong value);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSize )( 
            IRdIndexArray * This,
            /* [retval][out] */ RtUlong *pSize);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            IRdIndexArray * This,
            /* [in] */ RtUlong newVal,
            /* [retval][out] */ RtUlong *index);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RemoveAt )( 
            IRdIndexArray * This,
            /* [in] */ RtUlong index);
        
        END_INTERFACE
    } IRdIndexArrayVtbl;

    interface IRdIndexArray
    {
        CONST_VTBL struct IRdIndexArrayVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdIndexArray_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdIndexArray_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdIndexArray_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdIndexArray_LockData(This,ppfData)	\
    (This)->lpVtbl -> LockData(This,ppfData)

#define IRdIndexArray_UnLockData(This)	\
    (This)->lpVtbl -> UnLockData(This)

#define IRdIndexArray_GetDesc(This,pDesc)	\
    (This)->lpVtbl -> GetDesc(This,pDesc)

#define IRdIndexArray_SetSize(This,cNewSize)	\
    (This)->lpVtbl -> SetSize(This,cNewSize)

#define IRdIndexArray_FreeExtra(This)	\
    (This)->lpVtbl -> FreeExtra(This)

#define IRdIndexArray_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdIndexArray_GetAt(This,index,pData)	\
    (This)->lpVtbl -> GetAt(This,index,pData)

#define IRdIndexArray_SetAt(This,index,value)	\
    (This)->lpVtbl -> SetAt(This,index,value)

#define IRdIndexArray_GetSize(This,pSize)	\
    (This)->lpVtbl -> GetSize(This,pSize)

#define IRdIndexArray_Add(This,newVal,index)	\
    (This)->lpVtbl -> Add(This,newVal,index)

#define IRdIndexArray_RemoveAt(This,index)	\
    (This)->lpVtbl -> RemoveAt(This,index)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdIndexArray_LockData_Proxy( 
    IRdIndexArray * This,
    /* [retval][out] */ RtUlong **ppfData);


void __RPC_STUB IRdIndexArray_LockData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdIndexArray_UnLockData_Proxy( 
    IRdIndexArray * This);


void __RPC_STUB IRdIndexArray_UnLockData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdIndexArray_GetDesc_Proxy( 
    IRdIndexArray * This,
    /* [out] */ RtNumArrayDesc *pDesc);


void __RPC_STUB IRdIndexArray_GetDesc_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdIndexArray_SetSize_Proxy( 
    IRdIndexArray * This,
    /* [in] */ RtUlong cNewSize);


void __RPC_STUB IRdIndexArray_SetSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdIndexArray_FreeExtra_Proxy( 
    IRdIndexArray * This);


void __RPC_STUB IRdIndexArray_FreeExtra_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdIndexArray_Clear_Proxy( 
    IRdIndexArray * This);


void __RPC_STUB IRdIndexArray_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdIndexArray_GetAt_Proxy( 
    IRdIndexArray * This,
    /* [in] */ RtUlong index,
    /* [retval][out] */ RtUlong *pData);


void __RPC_STUB IRdIndexArray_GetAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdIndexArray_SetAt_Proxy( 
    IRdIndexArray * This,
    /* [in] */ RtUlong index,
    /* [in] */ RtUlong value);


void __RPC_STUB IRdIndexArray_SetAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdIndexArray_GetSize_Proxy( 
    IRdIndexArray * This,
    /* [retval][out] */ RtUlong *pSize);


void __RPC_STUB IRdIndexArray_GetSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdIndexArray_Add_Proxy( 
    IRdIndexArray * This,
    /* [in] */ RtUlong newVal,
    /* [retval][out] */ RtUlong *index);


void __RPC_STUB IRdIndexArray_Add_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdIndexArray_RemoveAt_Proxy( 
    IRdIndexArray * This,
    /* [in] */ RtUlong index);


void __RPC_STUB IRdIndexArray_RemoveAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdIndexArray_INTERFACE_DEFINED__ */


#ifndef __IRdIndexArrayDisp_INTERFACE_DEFINED__
#define __IRdIndexArrayDisp_INTERFACE_DEFINED__

/* interface IRdIndexArrayDisp */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdIndexArrayDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F99D4BA2-DF32-494c-9750-353E618593AD")
    IRdIndexArrayDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetSize( 
            /* [in] */ RtUlong cNewSize) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FreeExtra( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ RtUlong index,
            /* [retval][out] */ RtUlong *pData) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetAt( 
            /* [in] */ RtUlong index,
            /* [in] */ RtUlong value) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSize( 
            /* [retval][out] */ RtUlong *pSize) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ RtUlong newVal,
            /* [retval][out] */ RtUlong *index) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemoveAt( 
            /* [in] */ RtUlong index) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdIndexArrayDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdIndexArrayDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdIndexArrayDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdIndexArrayDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdIndexArrayDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdIndexArrayDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdIndexArrayDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdIndexArrayDisp * 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 *SetSize )( 
            IRdIndexArrayDisp * This,
            /* [in] */ RtUlong cNewSize);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FreeExtra )( 
            IRdIndexArrayDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdIndexArrayDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            IRdIndexArrayDisp * This,
            /* [in] */ RtUlong index,
            /* [retval][out] */ RtUlong *pData);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetAt )( 
            IRdIndexArrayDisp * This,
            /* [in] */ RtUlong index,
            /* [in] */ RtUlong value);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSize )( 
            IRdIndexArrayDisp * This,
            /* [retval][out] */ RtUlong *pSize);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            IRdIndexArrayDisp * This,
            /* [in] */ RtUlong newVal,
            /* [retval][out] */ RtUlong *index);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemoveAt )( 
            IRdIndexArrayDisp * This,
            /* [in] */ RtUlong index);
        
        END_INTERFACE
    } IRdIndexArrayDispVtbl;

    interface IRdIndexArrayDisp
    {
        CONST_VTBL struct IRdIndexArrayDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdIndexArrayDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdIndexArrayDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdIndexArrayDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdIndexArrayDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdIndexArrayDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdIndexArrayDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdIndexArrayDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdIndexArrayDisp_SetSize(This,cNewSize)	\
    (This)->lpVtbl -> SetSize(This,cNewSize)

#define IRdIndexArrayDisp_FreeExtra(This)	\
    (This)->lpVtbl -> FreeExtra(This)

#define IRdIndexArrayDisp_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdIndexArrayDisp_GetAt(This,index,pData)	\
    (This)->lpVtbl -> GetAt(This,index,pData)

#define IRdIndexArrayDisp_SetAt(This,index,value)	\
    (This)->lpVtbl -> SetAt(This,index,value)

#define IRdIndexArrayDisp_GetSize(This,pSize)	\
    (This)->lpVtbl -> GetSize(This,pSize)

#define IRdIndexArrayDisp_Add(This,newVal,index)	\
    (This)->lpVtbl -> Add(This,newVal,index)

#define IRdIndexArrayDisp_RemoveAt(This,index)	\
    (This)->lpVtbl -> RemoveAt(This,index)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdIndexArrayDisp_SetSize_Proxy( 
    IRdIndexArrayDisp * This,
    /* [in] */ RtUlong cNewSize);


void __RPC_STUB IRdIndexArrayDisp_SetSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdIndexArrayDisp_FreeExtra_Proxy( 
    IRdIndexArrayDisp * This);


void __RPC_STUB IRdIndexArrayDisp_FreeExtra_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdIndexArrayDisp_Clear_Proxy( 
    IRdIndexArrayDisp * This);


void __RPC_STUB IRdIndexArrayDisp_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdIndexArrayDisp_GetAt_Proxy( 
    IRdIndexArrayDisp * This,
    /* [in] */ RtUlong index,
    /* [retval][out] */ RtUlong *pData);


void __RPC_STUB IRdIndexArrayDisp_GetAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdIndexArrayDisp_SetAt_Proxy( 
    IRdIndexArrayDisp * This,
    /* [in] */ RtUlong index,
    /* [in] */ RtUlong value);


void __RPC_STUB IRdIndexArrayDisp_SetAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdIndexArrayDisp_GetSize_Proxy( 
    IRdIndexArrayDisp * This,
    /* [retval][out] */ RtUlong *pSize);


void __RPC_STUB IRdIndexArrayDisp_GetSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdIndexArrayDisp_Add_Proxy( 
    IRdIndexArrayDisp * This,
    /* [in] */ RtUlong newVal,
    /* [retval][out] */ RtUlong *index);


void __RPC_STUB IRdIndexArrayDisp_Add_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdIndexArrayDisp_RemoveAt_Proxy( 
    IRdIndexArrayDisp * This,
    /* [in] */ RtUlong index);


void __RPC_STUB IRdIndexArrayDisp_RemoveAt_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdIndexArrayDisp_INTERFACE_DEFINED__ */


#ifndef __IRsWidgetRenderingController_INTERFACE_DEFINED__
#define __IRsWidgetRenderingController_INTERFACE_DEFINED__

/* interface IRsWidgetRenderingController */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsWidgetRenderingController;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("92958D40-9F08-4368-B00C-21F79D61CD81")
    IRsWidgetRenderingController : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetViewportParameters( 
            /* [in] */ IRsNode *pViewNode,
            /* [in] */ struct RtRenderTargetInfo *pRenderTagetInfo,
            /* [in] */ struct RtLayerInfo *pLayerInfo) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMesh( 
            /* [out] */ IRdMesh **ppMesh) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMaterial( 
            /* [out] */ IRsDataObject **ppMaterial) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMatrix( 
            /* [out] */ IRdMatrixf **ppMatrix) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetRenderAttributes( 
            /* [out] */ IRsDataObject **ppRenderAttributes) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetResourcesTimestamp( 
            /* [out] */ RtUlong *puMeshTimestamp,
            /* [out] */ RtUlong *puMaterialTimestamp,
            /* [out] */ RtUlong *puRenderAttribsTimestamp) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsWidgetRenderingControllerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsWidgetRenderingController * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsWidgetRenderingController * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsWidgetRenderingController * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetViewportParameters )( 
            IRsWidgetRenderingController * This,
            /* [in] */ IRsNode *pViewNode,
            /* [in] */ struct RtRenderTargetInfo *pRenderTagetInfo,
            /* [in] */ struct RtLayerInfo *pLayerInfo);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMesh )( 
            IRsWidgetRenderingController * This,
            /* [out] */ IRdMesh **ppMesh);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMaterial )( 
            IRsWidgetRenderingController * This,
            /* [out] */ IRsDataObject **ppMaterial);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMatrix )( 
            IRsWidgetRenderingController * This,
            /* [out] */ IRdMatrixf **ppMatrix);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetRenderAttributes )( 
            IRsWidgetRenderingController * This,
            /* [out] */ IRsDataObject **ppRenderAttributes);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetResourcesTimestamp )( 
            IRsWidgetRenderingController * This,
            /* [out] */ RtUlong *puMeshTimestamp,
            /* [out] */ RtUlong *puMaterialTimestamp,
            /* [out] */ RtUlong *puRenderAttribsTimestamp);
        
        END_INTERFACE
    } IRsWidgetRenderingControllerVtbl;

    interface IRsWidgetRenderingController
    {
        CONST_VTBL struct IRsWidgetRenderingControllerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsWidgetRenderingController_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsWidgetRenderingController_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsWidgetRenderingController_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsWidgetRenderingController_SetViewportParameters(This,pViewNode,pRenderTagetInfo,pLayerInfo)	\
    (This)->lpVtbl -> SetViewportParameters(This,pViewNode,pRenderTagetInfo,pLayerInfo)

#define IRsWidgetRenderingController_GetMesh(This,ppMesh)	\
    (This)->lpVtbl -> GetMesh(This,ppMesh)

#define IRsWidgetRenderingController_GetMaterial(This,ppMaterial)	\
    (This)->lpVtbl -> GetMaterial(This,ppMaterial)

#define IRsWidgetRenderingController_GetMatrix(This,ppMatrix)	\
    (This)->lpVtbl -> GetMatrix(This,ppMatrix)

#define IRsWidgetRenderingController_GetRenderAttributes(This,ppRenderAttributes)	\
    (This)->lpVtbl -> GetRenderAttributes(This,ppRenderAttributes)

#define IRsWidgetRenderingController_GetResourcesTimestamp(This,puMeshTimestamp,puMaterialTimestamp,puRenderAttribsTimestamp)	\
    (This)->lpVtbl -> GetResourcesTimestamp(This,puMeshTimestamp,puMaterialTimestamp,puRenderAttribsTimestamp)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsWidgetRenderingController_SetViewportParameters_Proxy( 
    IRsWidgetRenderingController * This,
    /* [in] */ IRsNode *pViewNode,
    /* [in] */ struct RtRenderTargetInfo *pRenderTagetInfo,
    /* [in] */ struct RtLayerInfo *pLayerInfo);


void __RPC_STUB IRsWidgetRenderingController_SetViewportParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsWidgetRenderingController_GetMesh_Proxy( 
    IRsWidgetRenderingController * This,
    /* [out] */ IRdMesh **ppMesh);


void __RPC_STUB IRsWidgetRenderingController_GetMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsWidgetRenderingController_GetMaterial_Proxy( 
    IRsWidgetRenderingController * This,
    /* [out] */ IRsDataObject **ppMaterial);


void __RPC_STUB IRsWidgetRenderingController_GetMaterial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsWidgetRenderingController_GetMatrix_Proxy( 
    IRsWidgetRenderingController * This,
    /* [out] */ IRdMatrixf **ppMatrix);


void __RPC_STUB IRsWidgetRenderingController_GetMatrix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsWidgetRenderingController_GetRenderAttributes_Proxy( 
    IRsWidgetRenderingController * This,
    /* [out] */ IRsDataObject **ppRenderAttributes);


void __RPC_STUB IRsWidgetRenderingController_GetRenderAttributes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsWidgetRenderingController_GetResourcesTimestamp_Proxy( 
    IRsWidgetRenderingController * This,
    /* [out] */ RtUlong *puMeshTimestamp,
    /* [out] */ RtUlong *puMaterialTimestamp,
    /* [out] */ RtUlong *puRenderAttribsTimestamp);


void __RPC_STUB IRsWidgetRenderingController_GetResourcesTimestamp_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsWidgetRenderingController_INTERFACE_DEFINED__ */


#ifndef __IRdBaseWidget_INTERFACE_DEFINED__
#define __IRdBaseWidget_INTERFACE_DEFINED__

/* interface IRdBaseWidget */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdBaseWidget;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4DEB7020-5918-401F-B319-1B4BBB4EDCB9")
    IRdBaseWidget : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetActionCtrl( 
            /* [in] */ IRsWidgetRenderingController *pGesture) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMesh( 
            /* [out] */ IRdMesh **ppMesh) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMatrix( 
            /* [out] */ IRdMatrixf **ppMatrix) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMaterial( 
            /* [out] */ IRsDataObject **ppMaterial) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetRenderAttributes( 
            /* [out] */ IRsDataObject **ppRenderAttributes) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetResourcesTimestamp( 
            /* [out] */ RtUlong *puMeshTimestamp,
            /* [out] */ RtUlong *puMaterialTimestamp,
            /* [out] */ RtUlong *puRenderAttribsTimestamp) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetViewportParameters( 
            /* [in] */ IRsNode *pViewNode,
            /* [in] */ struct RtRenderTargetInfo *pRenderTagetInfo,
            /* [in] */ struct RtLayerInfo *pLayerInfo) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdBaseWidgetVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdBaseWidget * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdBaseWidget * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdBaseWidget * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetActionCtrl )( 
            IRdBaseWidget * This,
            /* [in] */ IRsWidgetRenderingController *pGesture);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMesh )( 
            IRdBaseWidget * This,
            /* [out] */ IRdMesh **ppMesh);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMatrix )( 
            IRdBaseWidget * This,
            /* [out] */ IRdMatrixf **ppMatrix);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMaterial )( 
            IRdBaseWidget * This,
            /* [out] */ IRsDataObject **ppMaterial);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetRenderAttributes )( 
            IRdBaseWidget * This,
            /* [out] */ IRsDataObject **ppRenderAttributes);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetResourcesTimestamp )( 
            IRdBaseWidget * This,
            /* [out] */ RtUlong *puMeshTimestamp,
            /* [out] */ RtUlong *puMaterialTimestamp,
            /* [out] */ RtUlong *puRenderAttribsTimestamp);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetViewportParameters )( 
            IRdBaseWidget * This,
            /* [in] */ IRsNode *pViewNode,
            /* [in] */ struct RtRenderTargetInfo *pRenderTagetInfo,
            /* [in] */ struct RtLayerInfo *pLayerInfo);
        
        END_INTERFACE
    } IRdBaseWidgetVtbl;

    interface IRdBaseWidget
    {
        CONST_VTBL struct IRdBaseWidgetVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdBaseWidget_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdBaseWidget_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdBaseWidget_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdBaseWidget_SetActionCtrl(This,pGesture)	\
    (This)->lpVtbl -> SetActionCtrl(This,pGesture)

#define IRdBaseWidget_GetMesh(This,ppMesh)	\
    (This)->lpVtbl -> GetMesh(This,ppMesh)

#define IRdBaseWidget_GetMatrix(This,ppMatrix)	\
    (This)->lpVtbl -> GetMatrix(This,ppMatrix)

#define IRdBaseWidget_GetMaterial(This,ppMaterial)	\
    (This)->lpVtbl -> GetMaterial(This,ppMaterial)

#define IRdBaseWidget_GetRenderAttributes(This,ppRenderAttributes)	\
    (This)->lpVtbl -> GetRenderAttributes(This,ppRenderAttributes)

#define IRdBaseWidget_GetResourcesTimestamp(This,puMeshTimestamp,puMaterialTimestamp,puRenderAttribsTimestamp)	\
    (This)->lpVtbl -> GetResourcesTimestamp(This,puMeshTimestamp,puMaterialTimestamp,puRenderAttribsTimestamp)

#define IRdBaseWidget_SetViewportParameters(This,pViewNode,pRenderTagetInfo,pLayerInfo)	\
    (This)->lpVtbl -> SetViewportParameters(This,pViewNode,pRenderTagetInfo,pLayerInfo)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdBaseWidget_SetActionCtrl_Proxy( 
    IRdBaseWidget * This,
    /* [in] */ IRsWidgetRenderingController *pGesture);


void __RPC_STUB IRdBaseWidget_SetActionCtrl_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdBaseWidget_GetMesh_Proxy( 
    IRdBaseWidget * This,
    /* [out] */ IRdMesh **ppMesh);


void __RPC_STUB IRdBaseWidget_GetMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdBaseWidget_GetMatrix_Proxy( 
    IRdBaseWidget * This,
    /* [out] */ IRdMatrixf **ppMatrix);


void __RPC_STUB IRdBaseWidget_GetMatrix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdBaseWidget_GetMaterial_Proxy( 
    IRdBaseWidget * This,
    /* [out] */ IRsDataObject **ppMaterial);


void __RPC_STUB IRdBaseWidget_GetMaterial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdBaseWidget_GetRenderAttributes_Proxy( 
    IRdBaseWidget * This,
    /* [out] */ IRsDataObject **ppRenderAttributes);


void __RPC_STUB IRdBaseWidget_GetRenderAttributes_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdBaseWidget_GetResourcesTimestamp_Proxy( 
    IRdBaseWidget * This,
    /* [out] */ RtUlong *puMeshTimestamp,
    /* [out] */ RtUlong *puMaterialTimestamp,
    /* [out] */ RtUlong *puRenderAttribsTimestamp);


void __RPC_STUB IRdBaseWidget_GetResourcesTimestamp_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdBaseWidget_SetViewportParameters_Proxy( 
    IRdBaseWidget * This,
    /* [in] */ IRsNode *pViewNode,
    /* [in] */ struct RtRenderTargetInfo *pRenderTagetInfo,
    /* [in] */ struct RtLayerInfo *pLayerInfo);


void __RPC_STUB IRdBaseWidget_SetViewportParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdBaseWidget_INTERFACE_DEFINED__ */


#ifndef __IRnShape_INTERFACE_DEFINED__
#define __IRnShape_INTERFACE_DEFINED__

/* interface IRnShape */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnShape;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1B980476-ACF2-4515-A7B6-7754EFDDAC04")
    IRnShape : public IRsObject
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnShapeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnShape * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnShape * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnShape * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRnShape * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRnShape * This,
            /* [retval][out] */ BSTR *pVal);
        
        END_INTERFACE
    } IRnShapeVtbl;

    interface IRnShape
    {
        CONST_VTBL struct IRnShapeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnShape_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnShape_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnShape_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnShape_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRnShape_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnShape_INTERFACE_DEFINED__ */


#ifndef __IRnTransform_INTERFACE_DEFINED__
#define __IRnTransform_INTERFACE_DEFINED__

/* interface IRnTransform */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnTransform;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("146D3734-3207-4ff4-90ED-C41C098BB5CA")
    IRnTransform : public IRsObject
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnTransformVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnTransform * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnTransform * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnTransform * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRnTransform * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRnTransform * This,
            /* [retval][out] */ BSTR *pVal);
        
        END_INTERFACE
    } IRnTransformVtbl;

    interface IRnTransform
    {
        CONST_VTBL struct IRnTransformVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnTransform_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnTransform_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnTransform_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnTransform_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRnTransform_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnTransform_INTERFACE_DEFINED__ */


#ifndef __IRnSphere_INTERFACE_DEFINED__
#define __IRnSphere_INTERFACE_DEFINED__

/* interface IRnSphere */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnSphere;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("CF6A60D2-9A8F-43BE-A122-BFDF8BDBF4CE")
    IRnSphere : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnSphereVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnSphere * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnSphere * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnSphere * This);
        
        END_INTERFACE
    } IRnSphereVtbl;

    interface IRnSphere
    {
        CONST_VTBL struct IRnSphereVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnSphere_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnSphere_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnSphere_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnSphere_INTERFACE_DEFINED__ */


#ifndef __IRnTwist_INTERFACE_DEFINED__
#define __IRnTwist_INTERFACE_DEFINED__

/* interface IRnTwist */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnTwist;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D8EFE179-E9E1-4932-9D50-983A01844617")
    IRnTwist : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ApplyDeform( 
            /* [in] */ IRdMesh *pMesh,
            /* [in] */ RtDouble angle,
            /* [retval][out] */ IRdMesh **ppNewMesh) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnTwistVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnTwist * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnTwist * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnTwist * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ApplyDeform )( 
            IRnTwist * This,
            /* [in] */ IRdMesh *pMesh,
            /* [in] */ RtDouble angle,
            /* [retval][out] */ IRdMesh **ppNewMesh);
        
        END_INTERFACE
    } IRnTwistVtbl;

    interface IRnTwist
    {
        CONST_VTBL struct IRnTwistVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnTwist_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnTwist_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnTwist_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnTwist_ApplyDeform(This,pMesh,angle,ppNewMesh)	\
    (This)->lpVtbl -> ApplyDeform(This,pMesh,angle,ppNewMesh)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnTwist_ApplyDeform_Proxy( 
    IRnTwist * This,
    /* [in] */ IRdMesh *pMesh,
    /* [in] */ RtDouble angle,
    /* [retval][out] */ IRdMesh **ppNewMesh);


void __RPC_STUB IRnTwist_ApplyDeform_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRnTwist_INTERFACE_DEFINED__ */


#ifndef __IRnTaper_INTERFACE_DEFINED__
#define __IRnTaper_INTERFACE_DEFINED__

/* interface IRnTaper */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnTaper;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6B2F4733-07FA-4827-AEF6-A8D2607814CE")
    IRnTaper : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ApplyDeform( 
            /* [in] */ IRdMesh *pMesh,
            /* [in] */ RtDouble angle,
            /* [retval][out] */ IRdMesh **ppNewMesh) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnTaperVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnTaper * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnTaper * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnTaper * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ApplyDeform )( 
            IRnTaper * This,
            /* [in] */ IRdMesh *pMesh,
            /* [in] */ RtDouble angle,
            /* [retval][out] */ IRdMesh **ppNewMesh);
        
        END_INTERFACE
    } IRnTaperVtbl;

    interface IRnTaper
    {
        CONST_VTBL struct IRnTaperVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnTaper_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnTaper_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnTaper_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnTaper_ApplyDeform(This,pMesh,angle,ppNewMesh)	\
    (This)->lpVtbl -> ApplyDeform(This,pMesh,angle,ppNewMesh)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnTaper_ApplyDeform_Proxy( 
    IRnTaper * This,
    /* [in] */ IRdMesh *pMesh,
    /* [in] */ RtDouble angle,
    /* [retval][out] */ IRdMesh **ppNewMesh);


void __RPC_STUB IRnTaper_ApplyDeform_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRnTaper_INTERFACE_DEFINED__ */


#ifndef __IRcApplyDeform_INTERFACE_DEFINED__
#define __IRcApplyDeform_INTERFACE_DEFINED__

/* interface IRcApplyDeform */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcApplyDeform;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BE6EDC53-946E-4FB6-97D1-689215E298C1")
    IRcApplyDeform : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcApplyDeformVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcApplyDeform * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcApplyDeform * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcApplyDeform * This);
        
        END_INTERFACE
    } IRcApplyDeformVtbl;

    interface IRcApplyDeform
    {
        CONST_VTBL struct IRcApplyDeformVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcApplyDeform_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcApplyDeform_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcApplyDeform_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcApplyDeform_INTERFACE_DEFINED__ */


#ifndef __IRcAutoRunActivities_INTERFACE_DEFINED__
#define __IRcAutoRunActivities_INTERFACE_DEFINED__

/* interface IRcAutoRunActivities */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcAutoRunActivities;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FBB9E9AE-BBA4-46c9-BDFE-E1B6FE4B1913")
    IRcAutoRunActivities : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcAutoRunActivitiesVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcAutoRunActivities * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcAutoRunActivities * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcAutoRunActivities * This);
        
        END_INTERFACE
    } IRcAutoRunActivitiesVtbl;

    interface IRcAutoRunActivities
    {
        CONST_VTBL struct IRcAutoRunActivitiesVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcAutoRunActivities_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcAutoRunActivities_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcAutoRunActivities_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcAutoRunActivities_INTERFACE_DEFINED__ */


#ifndef __IRnVolumeTree_INTERFACE_DEFINED__
#define __IRnVolumeTree_INTERFACE_DEFINED__

/* interface IRnVolumeTree */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnVolumeTree;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D5DB9788-BD8B-4CAE-937B-5EEB46FBDCD4")
    IRnVolumeTree : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE FocusToNode( 
            /* [in] */ VARIANT *vRootName) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE NodeScan( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UpdateScan( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE InvalidateCacheNode( 
            /* [in] */ IRsBaseNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetRootNode( 
            /* [out] */ IRsBaseNode **pRootNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE PickSubObject( 
            /* [in] */ RtPoint *orig,
            /* [in] */ RtPoint *ray,
            /* [out] */ IRsNode **pObjNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE PickRootObject( 
            /* [in] */ RtPoint *orig,
            /* [in] */ RtPoint *ray,
            /* [out] */ IRsNode **pObjNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE PickNearestObject( 
            /* [in] */ RtPoint *orig,
            /* [in] */ RtPoint *ray,
            /* [out] */ IRsNode **pObjNode,
            /* [out] */ RtUlong *pdwFaceHitIndex,
            /* [out] */ RtPoint *pPoint) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE PickNearestObjectTranslated( 
            /* [in] */ RtPoint *orig,
            /* [in] */ RtPoint *ray,
            /* [out] */ IRsNode **pObjNode,
            /* [out] */ RtPoint *pPoint) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ValidateCacheNode( 
            /* [in] */ IRsBaseNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE EnableCacheNode( 
            /* [in] */ IRsBaseNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DisableCacheNode( 
            /* [in] */ IRsBaseNode *pNode) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE PointInObject( 
            /* [in] */ RtPoint *point) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE VectorInObject( 
            /* [in] */ RtPoint *startPoint,
            /* [in] */ RtPoint *endPoint) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE IsCollision( 
            /* [in] */ IRsBaseNode *pNode,
            /* [in] */ RtPoint *shift) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RayMesh( 
            /* [in] */ RtPoint *orig,
            /* [in] */ RtPoint *ray,
            /* [in] */ IRdMatrixf *pMatrix,
            /* [in] */ IRdMesh *pMesh,
            /* [in] */ RtUlong *pdwHitFaceIndex,
            /* [in] */ RtPoint *pPoint) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Lock( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnVolumeTreeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnVolumeTree * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnVolumeTree * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnVolumeTree * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *FocusToNode )( 
            IRnVolumeTree * This,
            /* [in] */ VARIANT *vRootName);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *NodeScan )( 
            IRnVolumeTree * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UpdateScan )( 
            IRnVolumeTree * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *InvalidateCacheNode )( 
            IRnVolumeTree * This,
            /* [in] */ IRsBaseNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetRootNode )( 
            IRnVolumeTree * This,
            /* [out] */ IRsBaseNode **pRootNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *PickSubObject )( 
            IRnVolumeTree * This,
            /* [in] */ RtPoint *orig,
            /* [in] */ RtPoint *ray,
            /* [out] */ IRsNode **pObjNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *PickRootObject )( 
            IRnVolumeTree * This,
            /* [in] */ RtPoint *orig,
            /* [in] */ RtPoint *ray,
            /* [out] */ IRsNode **pObjNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *PickNearestObject )( 
            IRnVolumeTree * This,
            /* [in] */ RtPoint *orig,
            /* [in] */ RtPoint *ray,
            /* [out] */ IRsNode **pObjNode,
            /* [out] */ RtUlong *pdwFaceHitIndex,
            /* [out] */ RtPoint *pPoint);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *PickNearestObjectTranslated )( 
            IRnVolumeTree * This,
            /* [in] */ RtPoint *orig,
            /* [in] */ RtPoint *ray,
            /* [out] */ IRsNode **pObjNode,
            /* [out] */ RtPoint *pPoint);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ValidateCacheNode )( 
            IRnVolumeTree * This,
            /* [in] */ IRsBaseNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EnableCacheNode )( 
            IRnVolumeTree * This,
            /* [in] */ IRsBaseNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DisableCacheNode )( 
            IRnVolumeTree * This,
            /* [in] */ IRsBaseNode *pNode);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *PointInObject )( 
            IRnVolumeTree * This,
            /* [in] */ RtPoint *point);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *VectorInObject )( 
            IRnVolumeTree * This,
            /* [in] */ RtPoint *startPoint,
            /* [in] */ RtPoint *endPoint);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *IsCollision )( 
            IRnVolumeTree * This,
            /* [in] */ IRsBaseNode *pNode,
            /* [in] */ RtPoint *shift);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RayMesh )( 
            IRnVolumeTree * This,
            /* [in] */ RtPoint *orig,
            /* [in] */ RtPoint *ray,
            /* [in] */ IRdMatrixf *pMatrix,
            /* [in] */ IRdMesh *pMesh,
            /* [in] */ RtUlong *pdwHitFaceIndex,
            /* [in] */ RtPoint *pPoint);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Lock )( 
            IRnVolumeTree * This);
        
        END_INTERFACE
    } IRnVolumeTreeVtbl;

    interface IRnVolumeTree
    {
        CONST_VTBL struct IRnVolumeTreeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnVolumeTree_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnVolumeTree_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnVolumeTree_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnVolumeTree_FocusToNode(This,vRootName)	\
    (This)->lpVtbl -> FocusToNode(This,vRootName)

#define IRnVolumeTree_NodeScan(This)	\
    (This)->lpVtbl -> NodeScan(This)

#define IRnVolumeTree_UpdateScan(This)	\
    (This)->lpVtbl -> UpdateScan(This)

#define IRnVolumeTree_InvalidateCacheNode(This,pNode)	\
    (This)->lpVtbl -> InvalidateCacheNode(This,pNode)

#define IRnVolumeTree_GetRootNode(This,pRootNode)	\
    (This)->lpVtbl -> GetRootNode(This,pRootNode)

#define IRnVolumeTree_PickSubObject(This,orig,ray,pObjNode)	\
    (This)->lpVtbl -> PickSubObject(This,orig,ray,pObjNode)

#define IRnVolumeTree_PickRootObject(This,orig,ray,pObjNode)	\
    (This)->lpVtbl -> PickRootObject(This,orig,ray,pObjNode)

#define IRnVolumeTree_PickNearestObject(This,orig,ray,pObjNode,pdwFaceHitIndex,pPoint)	\
    (This)->lpVtbl -> PickNearestObject(This,orig,ray,pObjNode,pdwFaceHitIndex,pPoint)

#define IRnVolumeTree_PickNearestObjectTranslated(This,orig,ray,pObjNode,pPoint)	\
    (This)->lpVtbl -> PickNearestObjectTranslated(This,orig,ray,pObjNode,pPoint)

#define IRnVolumeTree_ValidateCacheNode(This,pNode)	\
    (This)->lpVtbl -> ValidateCacheNode(This,pNode)

#define IRnVolumeTree_EnableCacheNode(This,pNode)	\
    (This)->lpVtbl -> EnableCacheNode(This,pNode)

#define IRnVolumeTree_DisableCacheNode(This,pNode)	\
    (This)->lpVtbl -> DisableCacheNode(This,pNode)

#define IRnVolumeTree_PointInObject(This,point)	\
    (This)->lpVtbl -> PointInObject(This,point)

#define IRnVolumeTree_VectorInObject(This,startPoint,endPoint)	\
    (This)->lpVtbl -> VectorInObject(This,startPoint,endPoint)

#define IRnVolumeTree_IsCollision(This,pNode,shift)	\
    (This)->lpVtbl -> IsCollision(This,pNode,shift)

#define IRnVolumeTree_RayMesh(This,orig,ray,pMatrix,pMesh,pdwHitFaceIndex,pPoint)	\
    (This)->lpVtbl -> RayMesh(This,orig,ray,pMatrix,pMesh,pdwHitFaceIndex,pPoint)

#define IRnVolumeTree_Lock(This)	\
    (This)->lpVtbl -> Lock(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnVolumeTree_FocusToNode_Proxy( 
    IRnVolumeTree * This,
    /* [in] */ VARIANT *vRootName);


void __RPC_STUB IRnVolumeTree_FocusToNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnVolumeTree_NodeScan_Proxy( 
    IRnVolumeTree * This);


void __RPC_STUB IRnVolumeTree_NodeScan_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnVolumeTree_UpdateScan_Proxy( 
    IRnVolumeTree * This);


void __RPC_STUB IRnVolumeTree_UpdateScan_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnVolumeTree_InvalidateCacheNode_Proxy( 
    IRnVolumeTree * This,
    /* [in] */ IRsBaseNode *pNode);


void __RPC_STUB IRnVolumeTree_InvalidateCacheNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnVolumeTree_GetRootNode_Proxy( 
    IRnVolumeTree * This,
    /* [out] */ IRsBaseNode **pRootNode);


void __RPC_STUB IRnVolumeTree_GetRootNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnVolumeTree_PickSubObject_Proxy( 
    IRnVolumeTree * This,
    /* [in] */ RtPoint *orig,
    /* [in] */ RtPoint *ray,
    /* [out] */ IRsNode **pObjNode);


void __RPC_STUB IRnVolumeTree_PickSubObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnVolumeTree_PickRootObject_Proxy( 
    IRnVolumeTree * This,
    /* [in] */ RtPoint *orig,
    /* [in] */ RtPoint *ray,
    /* [out] */ IRsNode **pObjNode);


void __RPC_STUB IRnVolumeTree_PickRootObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnVolumeTree_PickNearestObject_Proxy( 
    IRnVolumeTree * This,
    /* [in] */ RtPoint *orig,
    /* [in] */ RtPoint *ray,
    /* [out] */ IRsNode **pObjNode,
    /* [out] */ RtUlong *pdwFaceHitIndex,
    /* [out] */ RtPoint *pPoint);


void __RPC_STUB IRnVolumeTree_PickNearestObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnVolumeTree_PickNearestObjectTranslated_Proxy( 
    IRnVolumeTree * This,
    /* [in] */ RtPoint *orig,
    /* [in] */ RtPoint *ray,
    /* [out] */ IRsNode **pObjNode,
    /* [out] */ RtPoint *pPoint);


void __RPC_STUB IRnVolumeTree_PickNearestObjectTranslated_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnVolumeTree_ValidateCacheNode_Proxy( 
    IRnVolumeTree * This,
    /* [in] */ IRsBaseNode *pNode);


void __RPC_STUB IRnVolumeTree_ValidateCacheNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnVolumeTree_EnableCacheNode_Proxy( 
    IRnVolumeTree * This,
    /* [in] */ IRsBaseNode *pNode);


void __RPC_STUB IRnVolumeTree_EnableCacheNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnVolumeTree_DisableCacheNode_Proxy( 
    IRnVolumeTree * This,
    /* [in] */ IRsBaseNode *pNode);


void __RPC_STUB IRnVolumeTree_DisableCacheNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnVolumeTree_PointInObject_Proxy( 
    IRnVolumeTree * This,
    /* [in] */ RtPoint *point);


void __RPC_STUB IRnVolumeTree_PointInObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnVolumeTree_VectorInObject_Proxy( 
    IRnVolumeTree * This,
    /* [in] */ RtPoint *startPoint,
    /* [in] */ RtPoint *endPoint);


void __RPC_STUB IRnVolumeTree_VectorInObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnVolumeTree_IsCollision_Proxy( 
    IRnVolumeTree * This,
    /* [in] */ IRsBaseNode *pNode,
    /* [in] */ RtPoint *shift);


void __RPC_STUB IRnVolumeTree_IsCollision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnVolumeTree_RayMesh_Proxy( 
    IRnVolumeTree * This,
    /* [in] */ RtPoint *orig,
    /* [in] */ RtPoint *ray,
    /* [in] */ IRdMatrixf *pMatrix,
    /* [in] */ IRdMesh *pMesh,
    /* [in] */ RtUlong *pdwHitFaceIndex,
    /* [in] */ RtPoint *pPoint);


void __RPC_STUB IRnVolumeTree_RayMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnVolumeTree_Lock_Proxy( 
    IRnVolumeTree * This);


void __RPC_STUB IRnVolumeTree_Lock_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRnVolumeTree_INTERFACE_DEFINED__ */


#ifndef __IRcConnectTreeToSpace_INTERFACE_DEFINED__
#define __IRcConnectTreeToSpace_INTERFACE_DEFINED__

/* interface IRcConnectTreeToSpace */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcConnectTreeToSpace;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("56CDAF3F-53B9-4683-AF54-C6CE530FF4F3")
    IRcConnectTreeToSpace : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcConnectTreeToSpaceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcConnectTreeToSpace * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcConnectTreeToSpace * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcConnectTreeToSpace * This);
        
        END_INTERFACE
    } IRcConnectTreeToSpaceVtbl;

    interface IRcConnectTreeToSpace
    {
        CONST_VTBL struct IRcConnectTreeToSpaceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcConnectTreeToSpace_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcConnectTreeToSpace_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcConnectTreeToSpace_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcConnectTreeToSpace_INTERFACE_DEFINED__ */


#ifndef __IRcConvertToMatList_INTERFACE_DEFINED__
#define __IRcConvertToMatList_INTERFACE_DEFINED__

/* interface IRcConvertToMatList */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcConvertToMatList;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D736495F-F53D-4aca-B931-CD57BA4AC24A")
    IRcConvertToMatList : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcConvertToMatListVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcConvertToMatList * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcConvertToMatList * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcConvertToMatList * This);
        
        END_INTERFACE
    } IRcConvertToMatListVtbl;

    interface IRcConvertToMatList
    {
        CONST_VTBL struct IRcConvertToMatListVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcConvertToMatList_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcConvertToMatList_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcConvertToMatList_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcConvertToMatList_INTERFACE_DEFINED__ */


#ifndef __IRnCube_INTERFACE_DEFINED__
#define __IRnCube_INTERFACE_DEFINED__

/* interface IRnCube */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnCube;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("098F7769-395F-49E0-BAA5-92345AEF3B8B")
    IRnCube : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnCubeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnCube * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnCube * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnCube * This);
        
        END_INTERFACE
    } IRnCubeVtbl;

    interface IRnCube
    {
        CONST_VTBL struct IRnCubeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnCube_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnCube_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnCube_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnCube_INTERFACE_DEFINED__ */


#ifndef __IRcCube_INTERFACE_DEFINED__
#define __IRcCube_INTERFACE_DEFINED__

/* interface IRcCube */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcCube;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2A9FA2EB-7953-4c65-A56C-918AF937BA0E")
    IRcCube : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateCube( 
            /* [in] */ RtDouble cx,
            /* [in] */ RtDouble cy,
            /* [in] */ RtDouble cz,
            /* [in] */ RtUlong rcx,
            /* [in] */ RtUlong rcy,
            /* [in] */ RtUlong rcz,
            /* [in] */ BSTR name,
            /* [out] */ IRsNode **pObj) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteCube( 
            /* [in] */ BSTR szFullName) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcCubeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcCube * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcCube * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcCube * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateCube )( 
            IRcCube * This,
            /* [in] */ RtDouble cx,
            /* [in] */ RtDouble cy,
            /* [in] */ RtDouble cz,
            /* [in] */ RtUlong rcx,
            /* [in] */ RtUlong rcy,
            /* [in] */ RtUlong rcz,
            /* [in] */ BSTR name,
            /* [out] */ IRsNode **pObj);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteCube )( 
            IRcCube * This,
            /* [in] */ BSTR szFullName);
        
        END_INTERFACE
    } IRcCubeVtbl;

    interface IRcCube
    {
        CONST_VTBL struct IRcCubeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcCube_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcCube_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcCube_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcCube_CreateCube(This,cx,cy,cz,rcx,rcy,rcz,name,pObj)	\
    (This)->lpVtbl -> CreateCube(This,cx,cy,cz,rcx,rcy,rcz,name,pObj)

#define IRcCube_DeleteCube(This,szFullName)	\
    (This)->lpVtbl -> DeleteCube(This,szFullName)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcCube_CreateCube_Proxy( 
    IRcCube * This,
    /* [in] */ RtDouble cx,
    /* [in] */ RtDouble cy,
    /* [in] */ RtDouble cz,
    /* [in] */ RtUlong rcx,
    /* [in] */ RtUlong rcy,
    /* [in] */ RtUlong rcz,
    /* [in] */ BSTR name,
    /* [out] */ IRsNode **pObj);


void __RPC_STUB IRcCube_CreateCube_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcCube_DeleteCube_Proxy( 
    IRcCube * This,
    /* [in] */ BSTR szFullName);


void __RPC_STUB IRcCube_DeleteCube_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcCube_INTERFACE_DEFINED__ */


#ifndef __IRcDisplayAll_INTERFACE_DEFINED__
#define __IRcDisplayAll_INTERFACE_DEFINED__

/* interface IRcDisplayAll */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcDisplayAll;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2F2601A9-A9B4-4388-85FE-28493C131133")
    IRcDisplayAll : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcDisplayAllVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcDisplayAll * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcDisplayAll * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcDisplayAll * This);
        
        END_INTERFACE
    } IRcDisplayAllVtbl;

    interface IRcDisplayAll
    {
        CONST_VTBL struct IRcDisplayAllVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcDisplayAll_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcDisplayAll_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcDisplayAll_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcDisplayAll_INTERFACE_DEFINED__ */


#ifndef __IRcEnableCollision_INTERFACE_DEFINED__
#define __IRcEnableCollision_INTERFACE_DEFINED__

/* interface IRcEnableCollision */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcEnableCollision;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("511276FC-732B-4146-AE53-12516330632D")
    IRcEnableCollision : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcEnableCollisionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcEnableCollision * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcEnableCollision * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcEnableCollision * This);
        
        END_INTERFACE
    } IRcEnableCollisionVtbl;

    interface IRcEnableCollision
    {
        CONST_VTBL struct IRcEnableCollisionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcEnableCollision_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcEnableCollision_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcEnableCollision_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcEnableCollision_INTERFACE_DEFINED__ */


#ifndef __IRnCollision_INTERFACE_DEFINED__
#define __IRnCollision_INTERFACE_DEFINED__

/* interface IRnCollision */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnCollision;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("97DFFF8D-0323-43F4-B6DA-3DB009DAFE5A")
    IRnCollision : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetDirection( 
            /* [in] */ RtBool bCheckInDir,
            /* [in] */ RtPoint *direction) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnCollisionVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnCollision * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnCollision * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnCollision * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDirection )( 
            IRnCollision * This,
            /* [in] */ RtBool bCheckInDir,
            /* [in] */ RtPoint *direction);
        
        END_INTERFACE
    } IRnCollisionVtbl;

    interface IRnCollision
    {
        CONST_VTBL struct IRnCollisionVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnCollision_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnCollision_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnCollision_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnCollision_SetDirection(This,bCheckInDir,direction)	\
    (This)->lpVtbl -> SetDirection(This,bCheckInDir,direction)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnCollision_SetDirection_Proxy( 
    IRnCollision * This,
    /* [in] */ RtBool bCheckInDir,
    /* [in] */ RtPoint *direction);


void __RPC_STUB IRnCollision_SetDirection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRnCollision_INTERFACE_DEFINED__ */


#ifndef __IRcGetMeshVolume_INTERFACE_DEFINED__
#define __IRcGetMeshVolume_INTERFACE_DEFINED__

/* interface IRcGetMeshVolume */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcGetMeshVolume;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("64EE3819-9B96-45C0-B448-9D527BE77342")
    IRcGetMeshVolume : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcGetMeshVolumeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcGetMeshVolume * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcGetMeshVolume * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcGetMeshVolume * This);
        
        END_INTERFACE
    } IRcGetMeshVolumeVtbl;

    interface IRcGetMeshVolume
    {
        CONST_VTBL struct IRcGetMeshVolumeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcGetMeshVolume_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcGetMeshVolume_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcGetMeshVolume_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcGetMeshVolume_INTERFACE_DEFINED__ */


#ifndef __IRnShapeVolumeInfo_INTERFACE_DEFINED__
#define __IRnShapeVolumeInfo_INTERFACE_DEFINED__

/* interface IRnShapeVolumeInfo */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnShapeVolumeInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6D8DD8A9-95BB-4E31-817B-5FB794BBF117")
    IRnShapeVolumeInfo : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetOctreeNode( 
            /* [in] */ IRsBaseNode *pOctree) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RayBox( 
            /* [in] */ RtPoint *p0,
            /* [in] */ RtPoint *ray,
            /* [out] */ RtBool *pick,
            /* [out] */ RtFloat *min,
            /* [out] */ RtFloat *max) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMeshCenter( 
            /* [out] */ RtPoint *point) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetVolume( 
            /* [out] */ RtFloat *volume) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Validate( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetPassiveFlag( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ClearPassiveFlag( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPassiveFlag( 
            /* [out] */ RtBool *bPassive) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockData( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnLockData( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetLockedData( 
            /* [out] */ IRdOBBTree **pTree,
            /* [out] */ IRdMatrixf **pMatrix) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE IsVisible( 
            /* [out] */ RtBool *pVisible) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetBox( 
            /* [out] */ RtFloat *pBox) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetObjectA( 
            /* [out] */ IRsNode **ppObject) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnShapeVolumeInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnShapeVolumeInfo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnShapeVolumeInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnShapeVolumeInfo * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetOctreeNode )( 
            IRnShapeVolumeInfo * This,
            /* [in] */ IRsBaseNode *pOctree);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RayBox )( 
            IRnShapeVolumeInfo * This,
            /* [in] */ RtPoint *p0,
            /* [in] */ RtPoint *ray,
            /* [out] */ RtBool *pick,
            /* [out] */ RtFloat *min,
            /* [out] */ RtFloat *max);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMeshCenter )( 
            IRnShapeVolumeInfo * This,
            /* [out] */ RtPoint *point);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetVolume )( 
            IRnShapeVolumeInfo * This,
            /* [out] */ RtFloat *volume);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Validate )( 
            IRnShapeVolumeInfo * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetPassiveFlag )( 
            IRnShapeVolumeInfo * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ClearPassiveFlag )( 
            IRnShapeVolumeInfo * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPassiveFlag )( 
            IRnShapeVolumeInfo * This,
            /* [out] */ RtBool *bPassive);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockData )( 
            IRnShapeVolumeInfo * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnLockData )( 
            IRnShapeVolumeInfo * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetLockedData )( 
            IRnShapeVolumeInfo * This,
            /* [out] */ IRdOBBTree **pTree,
            /* [out] */ IRdMatrixf **pMatrix);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *IsVisible )( 
            IRnShapeVolumeInfo * This,
            /* [out] */ RtBool *pVisible);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetBox )( 
            IRnShapeVolumeInfo * This,
            /* [out] */ RtFloat *pBox);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetObjectA )( 
            IRnShapeVolumeInfo * This,
            /* [out] */ IRsNode **ppObject);
        
        END_INTERFACE
    } IRnShapeVolumeInfoVtbl;

    interface IRnShapeVolumeInfo
    {
        CONST_VTBL struct IRnShapeVolumeInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnShapeVolumeInfo_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnShapeVolumeInfo_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnShapeVolumeInfo_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnShapeVolumeInfo_SetOctreeNode(This,pOctree)	\
    (This)->lpVtbl -> SetOctreeNode(This,pOctree)

#define IRnShapeVolumeInfo_RayBox(This,p0,ray,pick,min,max)	\
    (This)->lpVtbl -> RayBox(This,p0,ray,pick,min,max)

#define IRnShapeVolumeInfo_GetMeshCenter(This,point)	\
    (This)->lpVtbl -> GetMeshCenter(This,point)

#define IRnShapeVolumeInfo_GetVolume(This,volume)	\
    (This)->lpVtbl -> GetVolume(This,volume)

#define IRnShapeVolumeInfo_Validate(This)	\
    (This)->lpVtbl -> Validate(This)

#define IRnShapeVolumeInfo_SetPassiveFlag(This)	\
    (This)->lpVtbl -> SetPassiveFlag(This)

#define IRnShapeVolumeInfo_ClearPassiveFlag(This)	\
    (This)->lpVtbl -> ClearPassiveFlag(This)

#define IRnShapeVolumeInfo_GetPassiveFlag(This,bPassive)	\
    (This)->lpVtbl -> GetPassiveFlag(This,bPassive)

#define IRnShapeVolumeInfo_LockData(This)	\
    (This)->lpVtbl -> LockData(This)

#define IRnShapeVolumeInfo_UnLockData(This)	\
    (This)->lpVtbl -> UnLockData(This)

#define IRnShapeVolumeInfo_GetLockedData(This,pTree,pMatrix)	\
    (This)->lpVtbl -> GetLockedData(This,pTree,pMatrix)

#define IRnShapeVolumeInfo_IsVisible(This,pVisible)	\
    (This)->lpVtbl -> IsVisible(This,pVisible)

#define IRnShapeVolumeInfo_GetBox(This,pBox)	\
    (This)->lpVtbl -> GetBox(This,pBox)

#define IRnShapeVolumeInfo_GetObjectA(This,ppObject)	\
    (This)->lpVtbl -> GetObjectA(This,ppObject)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnShapeVolumeInfo_SetOctreeNode_Proxy( 
    IRnShapeVolumeInfo * This,
    /* [in] */ IRsBaseNode *pOctree);


void __RPC_STUB IRnShapeVolumeInfo_SetOctreeNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnShapeVolumeInfo_RayBox_Proxy( 
    IRnShapeVolumeInfo * This,
    /* [in] */ RtPoint *p0,
    /* [in] */ RtPoint *ray,
    /* [out] */ RtBool *pick,
    /* [out] */ RtFloat *min,
    /* [out] */ RtFloat *max);


void __RPC_STUB IRnShapeVolumeInfo_RayBox_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnShapeVolumeInfo_GetMeshCenter_Proxy( 
    IRnShapeVolumeInfo * This,
    /* [out] */ RtPoint *point);


void __RPC_STUB IRnShapeVolumeInfo_GetMeshCenter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnShapeVolumeInfo_GetVolume_Proxy( 
    IRnShapeVolumeInfo * This,
    /* [out] */ RtFloat *volume);


void __RPC_STUB IRnShapeVolumeInfo_GetVolume_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnShapeVolumeInfo_Validate_Proxy( 
    IRnShapeVolumeInfo * This);


void __RPC_STUB IRnShapeVolumeInfo_Validate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnShapeVolumeInfo_SetPassiveFlag_Proxy( 
    IRnShapeVolumeInfo * This);


void __RPC_STUB IRnShapeVolumeInfo_SetPassiveFlag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnShapeVolumeInfo_ClearPassiveFlag_Proxy( 
    IRnShapeVolumeInfo * This);


void __RPC_STUB IRnShapeVolumeInfo_ClearPassiveFlag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnShapeVolumeInfo_GetPassiveFlag_Proxy( 
    IRnShapeVolumeInfo * This,
    /* [out] */ RtBool *bPassive);


void __RPC_STUB IRnShapeVolumeInfo_GetPassiveFlag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnShapeVolumeInfo_LockData_Proxy( 
    IRnShapeVolumeInfo * This);


void __RPC_STUB IRnShapeVolumeInfo_LockData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnShapeVolumeInfo_UnLockData_Proxy( 
    IRnShapeVolumeInfo * This);


void __RPC_STUB IRnShapeVolumeInfo_UnLockData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnShapeVolumeInfo_GetLockedData_Proxy( 
    IRnShapeVolumeInfo * This,
    /* [out] */ IRdOBBTree **pTree,
    /* [out] */ IRdMatrixf **pMatrix);


void __RPC_STUB IRnShapeVolumeInfo_GetLockedData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnShapeVolumeInfo_IsVisible_Proxy( 
    IRnShapeVolumeInfo * This,
    /* [out] */ RtBool *pVisible);


void __RPC_STUB IRnShapeVolumeInfo_IsVisible_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnShapeVolumeInfo_GetBox_Proxy( 
    IRnShapeVolumeInfo * This,
    /* [out] */ RtFloat *pBox);


void __RPC_STUB IRnShapeVolumeInfo_GetBox_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnShapeVolumeInfo_GetObjectA_Proxy( 
    IRnShapeVolumeInfo * This,
    /* [out] */ IRsNode **ppObject);


void __RPC_STUB IRnShapeVolumeInfo_GetObjectA_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRnShapeVolumeInfo_INTERFACE_DEFINED__ */


#ifndef __IRcNewScene_INTERFACE_DEFINED__
#define __IRcNewScene_INTERFACE_DEFINED__

/* interface IRcNewScene */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcNewScene;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("80288C3B-EC3B-4DE3-88F0-4FB23E337445")
    IRcNewScene : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcNewSceneVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcNewScene * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcNewScene * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcNewScene * This);
        
        END_INTERFACE
    } IRcNewSceneVtbl;

    interface IRcNewScene
    {
        CONST_VTBL struct IRcNewSceneVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcNewScene_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcNewScene_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcNewScene_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcNewScene_INTERFACE_DEFINED__ */


#ifndef __IRcNodeConList_INTERFACE_DEFINED__
#define __IRcNodeConList_INTERFACE_DEFINED__

/* interface IRcNodeConList */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcNodeConList;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("CA02393C-39B8-426B-9700-B5AC3336ED0F")
    IRcNodeConList : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcNodeConListVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcNodeConList * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcNodeConList * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcNodeConList * This);
        
        END_INTERFACE
    } IRcNodeConListVtbl;

    interface IRcNodeConList
    {
        CONST_VTBL struct IRcNodeConListVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcNodeConList_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcNodeConList_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcNodeConList_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcNodeConList_INTERFACE_DEFINED__ */


#ifndef __IRnPolygon3D_INTERFACE_DEFINED__
#define __IRnPolygon3D_INTERFACE_DEFINED__

/* interface IRnPolygon3D */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnPolygon3D;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("01C7820E-0E1F-4f9f-8607-3333FF933E57")
    IRnPolygon3D : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetPolygon( 
            /* [in] */ RtUlong ulNumPoints,
            /* [in] */ RtPoint *pPoints,
            /* [in] */ RtBool bClosed) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnPolygon3DVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnPolygon3D * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnPolygon3D * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnPolygon3D * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetPolygon )( 
            IRnPolygon3D * This,
            /* [in] */ RtUlong ulNumPoints,
            /* [in] */ RtPoint *pPoints,
            /* [in] */ RtBool bClosed);
        
        END_INTERFACE
    } IRnPolygon3DVtbl;

    interface IRnPolygon3D
    {
        CONST_VTBL struct IRnPolygon3DVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnPolygon3D_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnPolygon3D_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnPolygon3D_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnPolygon3D_SetPolygon(This,ulNumPoints,pPoints,bClosed)	\
    (This)->lpVtbl -> SetPolygon(This,ulNumPoints,pPoints,bClosed)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnPolygon3D_SetPolygon_Proxy( 
    IRnPolygon3D * This,
    /* [in] */ RtUlong ulNumPoints,
    /* [in] */ RtPoint *pPoints,
    /* [in] */ RtBool bClosed);


void __RPC_STUB IRnPolygon3D_SetPolygon_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRnPolygon3D_INTERFACE_DEFINED__ */


#ifndef __IRcPolygon3D_INTERFACE_DEFINED__
#define __IRcPolygon3D_INTERFACE_DEFINED__

/* interface IRcPolygon3D */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcPolygon3D;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F47AB1C8-C8B5-47ae-9BD4-1813FFB2861D")
    IRcPolygon3D : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreatePolygon3D( 
            /* [in] */ RtDouble size,
            /* [in] */ RtUlong res,
            /* [in] */ BSTR name,
            /* [out] */ IRsNode **pObj) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeletePolygon3D( 
            /* [in] */ BSTR szFullName) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcPolygon3DVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcPolygon3D * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcPolygon3D * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcPolygon3D * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreatePolygon3D )( 
            IRcPolygon3D * This,
            /* [in] */ RtDouble size,
            /* [in] */ RtUlong res,
            /* [in] */ BSTR name,
            /* [out] */ IRsNode **pObj);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeletePolygon3D )( 
            IRcPolygon3D * This,
            /* [in] */ BSTR szFullName);
        
        END_INTERFACE
    } IRcPolygon3DVtbl;

    interface IRcPolygon3D
    {
        CONST_VTBL struct IRcPolygon3DVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcPolygon3D_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcPolygon3D_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcPolygon3D_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcPolygon3D_CreatePolygon3D(This,size,res,name,pObj)	\
    (This)->lpVtbl -> CreatePolygon3D(This,size,res,name,pObj)

#define IRcPolygon3D_DeletePolygon3D(This,szFullName)	\
    (This)->lpVtbl -> DeletePolygon3D(This,szFullName)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcPolygon3D_CreatePolygon3D_Proxy( 
    IRcPolygon3D * This,
    /* [in] */ RtDouble size,
    /* [in] */ RtUlong res,
    /* [in] */ BSTR name,
    /* [out] */ IRsNode **pObj);


void __RPC_STUB IRcPolygon3D_CreatePolygon3D_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcPolygon3D_DeletePolygon3D_Proxy( 
    IRcPolygon3D * This,
    /* [in] */ BSTR szFullName);


void __RPC_STUB IRcPolygon3D_DeletePolygon3D_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcPolygon3D_INTERFACE_DEFINED__ */


#ifndef __IRcRemEulerTransform_INTERFACE_DEFINED__
#define __IRcRemEulerTransform_INTERFACE_DEFINED__

/* interface IRcRemEulerTransform */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcRemEulerTransform;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4DDCD938-9E9B-474D-A92D-79A9FE756E13")
    IRcRemEulerTransform : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcRemEulerTransformVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcRemEulerTransform * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcRemEulerTransform * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcRemEulerTransform * This);
        
        END_INTERFACE
    } IRcRemEulerTransformVtbl;

    interface IRcRemEulerTransform
    {
        CONST_VTBL struct IRcRemEulerTransformVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcRemEulerTransform_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcRemEulerTransform_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcRemEulerTransform_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcRemEulerTransform_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1410 */
/* [local] */ 


enum RtFileAction
    {	SCENE_SAVE	= 0,
	SCENE_LOAD	= 1
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1410_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1410_v0_0_s_ifspec;

#ifndef __IRcSceneFile_INTERFACE_DEFINED__
#define __IRcSceneFile_INTERFACE_DEFINED__

/* interface IRcSceneFile */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcSceneFile;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("81B713EB-2BD5-4FD6-9B1B-5DA8ADBFF908")
    IRcSceneFile : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcSceneFileVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcSceneFile * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcSceneFile * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcSceneFile * This);
        
        END_INTERFACE
    } IRcSceneFileVtbl;

    interface IRcSceneFile
    {
        CONST_VTBL struct IRcSceneFileVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcSceneFile_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcSceneFile_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcSceneFile_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcSceneFile_INTERFACE_DEFINED__ */


#ifndef __IRcSphere_INTERFACE_DEFINED__
#define __IRcSphere_INTERFACE_DEFINED__

/* interface IRcSphere */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcSphere;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("C7D44F89-BA77-4586-BE0E-BA5591FA273B")
    IRcSphere : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateSphere( 
            /* [in] */ RtDouble radius,
            /* [in] */ RtUlong longitude,
            /* [in] */ RtUlong latitude,
            /* [in] */ BSTR name,
            /* [out] */ IRnEncapsulator **pObj) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteSphere( 
            /* [in] */ BSTR szFullName) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcSphereVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcSphere * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcSphere * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcSphere * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateSphere )( 
            IRcSphere * This,
            /* [in] */ RtDouble radius,
            /* [in] */ RtUlong longitude,
            /* [in] */ RtUlong latitude,
            /* [in] */ BSTR name,
            /* [out] */ IRnEncapsulator **pObj);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteSphere )( 
            IRcSphere * This,
            /* [in] */ BSTR szFullName);
        
        END_INTERFACE
    } IRcSphereVtbl;

    interface IRcSphere
    {
        CONST_VTBL struct IRcSphereVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcSphere_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcSphere_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcSphere_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcSphere_CreateSphere(This,radius,longitude,latitude,name,pObj)	\
    (This)->lpVtbl -> CreateSphere(This,radius,longitude,latitude,name,pObj)

#define IRcSphere_DeleteSphere(This,szFullName)	\
    (This)->lpVtbl -> DeleteSphere(This,szFullName)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcSphere_CreateSphere_Proxy( 
    IRcSphere * This,
    /* [in] */ RtDouble radius,
    /* [in] */ RtUlong longitude,
    /* [in] */ RtUlong latitude,
    /* [in] */ BSTR name,
    /* [out] */ IRnEncapsulator **pObj);


void __RPC_STUB IRcSphere_CreateSphere_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcSphere_DeleteSphere_Proxy( 
    IRcSphere * This,
    /* [in] */ BSTR szFullName);


void __RPC_STUB IRcSphere_DeleteSphere_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcSphere_INTERFACE_DEFINED__ */


#ifndef __IRnTorus_INTERFACE_DEFINED__
#define __IRnTorus_INTERFACE_DEFINED__

/* interface IRnTorus */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnTorus;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6708F054-B5DC-4251-8806-3AF06F790492")
    IRnTorus : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnTorusVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnTorus * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnTorus * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnTorus * This);
        
        END_INTERFACE
    } IRnTorusVtbl;

    interface IRnTorus
    {
        CONST_VTBL struct IRnTorusVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnTorus_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnTorus_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnTorus_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnTorus_INTERFACE_DEFINED__ */


#ifndef __IRcTorus_INTERFACE_DEFINED__
#define __IRcTorus_INTERFACE_DEFINED__

/* interface IRcTorus */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcTorus;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("30B891F2-A40C-4707-B6E5-8E7F86351984")
    IRcTorus : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateTorus( 
            /* [in] */ RtDouble radius,
            /* [in] */ RtUlong longitude,
            /* [in] */ RtUlong latitude,
            /* [in] */ BSTR name,
            /* [out] */ IRsNode **pObj) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteTorus( 
            /* [in] */ BSTR szFullName) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcTorusVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcTorus * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcTorus * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcTorus * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateTorus )( 
            IRcTorus * This,
            /* [in] */ RtDouble radius,
            /* [in] */ RtUlong longitude,
            /* [in] */ RtUlong latitude,
            /* [in] */ BSTR name,
            /* [out] */ IRsNode **pObj);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteTorus )( 
            IRcTorus * This,
            /* [in] */ BSTR szFullName);
        
        END_INTERFACE
    } IRcTorusVtbl;

    interface IRcTorus
    {
        CONST_VTBL struct IRcTorusVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcTorus_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcTorus_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcTorus_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcTorus_CreateTorus(This,radius,longitude,latitude,name,pObj)	\
    (This)->lpVtbl -> CreateTorus(This,radius,longitude,latitude,name,pObj)

#define IRcTorus_DeleteTorus(This,szFullName)	\
    (This)->lpVtbl -> DeleteTorus(This,szFullName)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcTorus_CreateTorus_Proxy( 
    IRcTorus * This,
    /* [in] */ RtDouble radius,
    /* [in] */ RtUlong longitude,
    /* [in] */ RtUlong latitude,
    /* [in] */ BSTR name,
    /* [out] */ IRsNode **pObj);


void __RPC_STUB IRcTorus_CreateTorus_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcTorus_DeleteTorus_Proxy( 
    IRcTorus * This,
    /* [in] */ BSTR szFullName);


void __RPC_STUB IRcTorus_DeleteTorus_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcTorus_INTERFACE_DEFINED__ */


#ifndef __IRcVolumeScan_INTERFACE_DEFINED__
#define __IRcVolumeScan_INTERFACE_DEFINED__

/* interface IRcVolumeScan */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcVolumeScan;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("01BA4791-A9CC-43D4-998A-D7ABE7E4E2E8")
    IRcVolumeScan : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcVolumeScanVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcVolumeScan * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcVolumeScan * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcVolumeScan * This);
        
        END_INTERFACE
    } IRcVolumeScanVtbl;

    interface IRcVolumeScan
    {
        CONST_VTBL struct IRcVolumeScanVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcVolumeScan_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcVolumeScan_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcVolumeScan_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcVolumeScan_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1415 */
/* [local] */ 


enum ReTransparencyMode
    {	RE_TRANSP_MODE_DONTSOLVE	= 0,
	RE_TRANSP_MODE_FASTSORT	= 1,
	RE_TRANSP_MODE_FORCEDWORD	= -1
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1415_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1415_v0_0_s_ifspec;

#ifndef __IRdRenderAttributes_INTERFACE_DEFINED__
#define __IRdRenderAttributes_INTERFACE_DEFINED__

/* interface IRdRenderAttributes */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdRenderAttributes;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("19AF9A04-BE48-4597-AE6F-718D35F1F276")
    IRdRenderAttributes : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetForceAttribs( 
            /* [in] */ BOOL bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetFaceOpacity( 
            /* [in] */ float fOpacity) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetPointOpacity( 
            /* [in] */ float fOpacity) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetWireOpacity( 
            /* [in] */ float fOpacity) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetHighlightOpacity( 
            /* [in] */ float fOpacity) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetShowHiddenFaces( 
            /* [in] */ BOOL bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetShowHiddenLines( 
            /* [in] */ BOOL bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetRenderTwoSided( 
            /* [in] */ BOOL bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetPointSize( 
            /* [in] */ BOOL bIsForced,
            /* [in] */ float fPointSize) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetPointColor( 
            /* [in] */ BOOL bIsForced,
            /* [in] */ float fRed,
            /* [in] */ float fGreen,
            /* [in] */ float fBlue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetWireColor( 
            /* [in] */ BOOL bIsForced,
            /* [in] */ float fRed,
            /* [in] */ float fGreen,
            /* [in] */ float fBlue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetHighlightColor( 
            /* [in] */ BOOL bIsForced,
            /* [in] */ float fRed,
            /* [in] */ float fGreen,
            /* [in] */ float fBlue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetPointColorObj( 
            /* [in] */ BOOL bIsForced,
            /* [in] */ IRdColor *pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetWireColorObj( 
            /* [in] */ BOOL bIsForced,
            /* [in] */ IRdColor *pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetHighlightColorObj( 
            /* [in] */ BOOL bIsForced,
            /* [in] */ IRdColor *pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetInvisible( 
            /* [in] */ BOOL bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCastShadows( 
            /* [in] */ BOOL bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetReceiveShadows( 
            /* [in] */ BOOL bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetLayerIndex( 
            /* [in] */ RtDWORD dwIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetForceAttribs( 
            /* [retval][out] */ BOOL *bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetFaceOpacity( 
            /* [retval][out] */ float *fOpacity) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPointOpacity( 
            /* [retval][out] */ float *fOpacity) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetWireOpacity( 
            /* [retval][out] */ float *fOpacity) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetHighlightOpacity( 
            /* [retval][out] */ float *fOpacity) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetShowHiddenFaces( 
            /* [retval][out] */ BOOL *bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetShowHiddenLines( 
            /* [retval][out] */ BOOL *bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetRenderTwoSided( 
            /* [retval][out] */ BOOL *bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPointSize( 
            /* [out] */ BOOL *bIsForced,
            /* [out] */ float *fPointSize) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPointColor( 
            /* [out] */ BOOL *bIsForced,
            /* [out] */ float *fRed,
            /* [out] */ float *fGreen,
            /* [out] */ float *fBlue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetWireColor( 
            /* [out] */ BOOL *bIsForced,
            /* [out] */ float *fRed,
            /* [out] */ float *fGreen,
            /* [out] */ float *fBlue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetHighlightColor( 
            /* [out] */ BOOL *bIsForced,
            /* [out] */ float *fRed,
            /* [out] */ float *fGreen,
            /* [out] */ float *fBlue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetInvisible( 
            /* [retval][out] */ BOOL *bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCastShadows( 
            /* [retval][out] */ BOOL *bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetReceiveShadows( 
            /* [retval][out] */ BOOL *bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetLayerIndex( 
            /* [retval][out] */ RtDWORD *dwIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetTransparencySortingMethod( 
            /* [in] */ enum ReTransparencyMode eMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTransparencySortingMethod( 
            /* [retval][out] */ enum ReTransparencyMode *peMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetOverlayColor( 
            /* [in] */ BOOL bEnable,
            /* [in] */ float fRed,
            /* [in] */ float fGreen,
            /* [in] */ float fBlue,
            /* [in] */ float fIntensity) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetOverlayColor( 
            /* [out] */ BOOL *bEnable,
            /* [out] */ float *fRed,
            /* [out] */ float *fGreen,
            /* [out] */ float *fBlue,
            /* [out] */ float *fIntensity) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdRenderAttributesVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdRenderAttributes * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdRenderAttributes * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdRenderAttributes * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRdRenderAttributes * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetForceAttribs )( 
            IRdRenderAttributes * This,
            /* [in] */ BOOL bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetFaceOpacity )( 
            IRdRenderAttributes * This,
            /* [in] */ float fOpacity);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetPointOpacity )( 
            IRdRenderAttributes * This,
            /* [in] */ float fOpacity);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetWireOpacity )( 
            IRdRenderAttributes * This,
            /* [in] */ float fOpacity);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetHighlightOpacity )( 
            IRdRenderAttributes * This,
            /* [in] */ float fOpacity);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetShowHiddenFaces )( 
            IRdRenderAttributes * This,
            /* [in] */ BOOL bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetShowHiddenLines )( 
            IRdRenderAttributes * This,
            /* [in] */ BOOL bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetRenderTwoSided )( 
            IRdRenderAttributes * This,
            /* [in] */ BOOL bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetPointSize )( 
            IRdRenderAttributes * This,
            /* [in] */ BOOL bIsForced,
            /* [in] */ float fPointSize);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetPointColor )( 
            IRdRenderAttributes * This,
            /* [in] */ BOOL bIsForced,
            /* [in] */ float fRed,
            /* [in] */ float fGreen,
            /* [in] */ float fBlue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetWireColor )( 
            IRdRenderAttributes * This,
            /* [in] */ BOOL bIsForced,
            /* [in] */ float fRed,
            /* [in] */ float fGreen,
            /* [in] */ float fBlue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetHighlightColor )( 
            IRdRenderAttributes * This,
            /* [in] */ BOOL bIsForced,
            /* [in] */ float fRed,
            /* [in] */ float fGreen,
            /* [in] */ float fBlue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetPointColorObj )( 
            IRdRenderAttributes * This,
            /* [in] */ BOOL bIsForced,
            /* [in] */ IRdColor *pColor);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetWireColorObj )( 
            IRdRenderAttributes * This,
            /* [in] */ BOOL bIsForced,
            /* [in] */ IRdColor *pColor);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetHighlightColorObj )( 
            IRdRenderAttributes * This,
            /* [in] */ BOOL bIsForced,
            /* [in] */ IRdColor *pColor);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetInvisible )( 
            IRdRenderAttributes * This,
            /* [in] */ BOOL bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCastShadows )( 
            IRdRenderAttributes * This,
            /* [in] */ BOOL bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetReceiveShadows )( 
            IRdRenderAttributes * This,
            /* [in] */ BOOL bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLayerIndex )( 
            IRdRenderAttributes * This,
            /* [in] */ RtDWORD dwIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetForceAttribs )( 
            IRdRenderAttributes * This,
            /* [retval][out] */ BOOL *bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetFaceOpacity )( 
            IRdRenderAttributes * This,
            /* [retval][out] */ float *fOpacity);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPointOpacity )( 
            IRdRenderAttributes * This,
            /* [retval][out] */ float *fOpacity);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetWireOpacity )( 
            IRdRenderAttributes * This,
            /* [retval][out] */ float *fOpacity);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetHighlightOpacity )( 
            IRdRenderAttributes * This,
            /* [retval][out] */ float *fOpacity);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetShowHiddenFaces )( 
            IRdRenderAttributes * This,
            /* [retval][out] */ BOOL *bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetShowHiddenLines )( 
            IRdRenderAttributes * This,
            /* [retval][out] */ BOOL *bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetRenderTwoSided )( 
            IRdRenderAttributes * This,
            /* [retval][out] */ BOOL *bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPointSize )( 
            IRdRenderAttributes * This,
            /* [out] */ BOOL *bIsForced,
            /* [out] */ float *fPointSize);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPointColor )( 
            IRdRenderAttributes * This,
            /* [out] */ BOOL *bIsForced,
            /* [out] */ float *fRed,
            /* [out] */ float *fGreen,
            /* [out] */ float *fBlue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetWireColor )( 
            IRdRenderAttributes * This,
            /* [out] */ BOOL *bIsForced,
            /* [out] */ float *fRed,
            /* [out] */ float *fGreen,
            /* [out] */ float *fBlue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetHighlightColor )( 
            IRdRenderAttributes * This,
            /* [out] */ BOOL *bIsForced,
            /* [out] */ float *fRed,
            /* [out] */ float *fGreen,
            /* [out] */ float *fBlue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetInvisible )( 
            IRdRenderAttributes * This,
            /* [retval][out] */ BOOL *bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCastShadows )( 
            IRdRenderAttributes * This,
            /* [retval][out] */ BOOL *bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetReceiveShadows )( 
            IRdRenderAttributes * This,
            /* [retval][out] */ BOOL *bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLayerIndex )( 
            IRdRenderAttributes * This,
            /* [retval][out] */ RtDWORD *dwIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetTransparencySortingMethod )( 
            IRdRenderAttributes * This,
            /* [in] */ enum ReTransparencyMode eMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTransparencySortingMethod )( 
            IRdRenderAttributes * This,
            /* [retval][out] */ enum ReTransparencyMode *peMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetOverlayColor )( 
            IRdRenderAttributes * This,
            /* [in] */ BOOL bEnable,
            /* [in] */ float fRed,
            /* [in] */ float fGreen,
            /* [in] */ float fBlue,
            /* [in] */ float fIntensity);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetOverlayColor )( 
            IRdRenderAttributes * This,
            /* [out] */ BOOL *bEnable,
            /* [out] */ float *fRed,
            /* [out] */ float *fGreen,
            /* [out] */ float *fBlue,
            /* [out] */ float *fIntensity);
        
        END_INTERFACE
    } IRdRenderAttributesVtbl;

    interface IRdRenderAttributes
    {
        CONST_VTBL struct IRdRenderAttributesVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdRenderAttributes_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdRenderAttributes_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdRenderAttributes_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdRenderAttributes_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdRenderAttributes_SetForceAttribs(This,bMode)	\
    (This)->lpVtbl -> SetForceAttribs(This,bMode)

#define IRdRenderAttributes_SetFaceOpacity(This,fOpacity)	\
    (This)->lpVtbl -> SetFaceOpacity(This,fOpacity)

#define IRdRenderAttributes_SetPointOpacity(This,fOpacity)	\
    (This)->lpVtbl -> SetPointOpacity(This,fOpacity)

#define IRdRenderAttributes_SetWireOpacity(This,fOpacity)	\
    (This)->lpVtbl -> SetWireOpacity(This,fOpacity)

#define IRdRenderAttributes_SetHighlightOpacity(This,fOpacity)	\
    (This)->lpVtbl -> SetHighlightOpacity(This,fOpacity)

#define IRdRenderAttributes_SetShowHiddenFaces(This,bMode)	\
    (This)->lpVtbl -> SetShowHiddenFaces(This,bMode)

#define IRdRenderAttributes_SetShowHiddenLines(This,bMode)	\
    (This)->lpVtbl -> SetShowHiddenLines(This,bMode)

#define IRdRenderAttributes_SetRenderTwoSided(This,bMode)	\
    (This)->lpVtbl -> SetRenderTwoSided(This,bMode)

#define IRdRenderAttributes_SetPointSize(This,bIsForced,fPointSize)	\
    (This)->lpVtbl -> SetPointSize(This,bIsForced,fPointSize)

#define IRdRenderAttributes_SetPointColor(This,bIsForced,fRed,fGreen,fBlue)	\
    (This)->lpVtbl -> SetPointColor(This,bIsForced,fRed,fGreen,fBlue)

#define IRdRenderAttributes_SetWireColor(This,bIsForced,fRed,fGreen,fBlue)	\
    (This)->lpVtbl -> SetWireColor(This,bIsForced,fRed,fGreen,fBlue)

#define IRdRenderAttributes_SetHighlightColor(This,bIsForced,fRed,fGreen,fBlue)	\
    (This)->lpVtbl -> SetHighlightColor(This,bIsForced,fRed,fGreen,fBlue)

#define IRdRenderAttributes_SetPointColorObj(This,bIsForced,pColor)	\
    (This)->lpVtbl -> SetPointColorObj(This,bIsForced,pColor)

#define IRdRenderAttributes_SetWireColorObj(This,bIsForced,pColor)	\
    (This)->lpVtbl -> SetWireColorObj(This,bIsForced,pColor)

#define IRdRenderAttributes_SetHighlightColorObj(This,bIsForced,pColor)	\
    (This)->lpVtbl -> SetHighlightColorObj(This,bIsForced,pColor)

#define IRdRenderAttributes_SetInvisible(This,bMode)	\
    (This)->lpVtbl -> SetInvisible(This,bMode)

#define IRdRenderAttributes_SetCastShadows(This,bMode)	\
    (This)->lpVtbl -> SetCastShadows(This,bMode)

#define IRdRenderAttributes_SetReceiveShadows(This,bMode)	\
    (This)->lpVtbl -> SetReceiveShadows(This,bMode)

#define IRdRenderAttributes_SetLayerIndex(This,dwIndex)	\
    (This)->lpVtbl -> SetLayerIndex(This,dwIndex)

#define IRdRenderAttributes_GetForceAttribs(This,bMode)	\
    (This)->lpVtbl -> GetForceAttribs(This,bMode)

#define IRdRenderAttributes_GetFaceOpacity(This,fOpacity)	\
    (This)->lpVtbl -> GetFaceOpacity(This,fOpacity)

#define IRdRenderAttributes_GetPointOpacity(This,fOpacity)	\
    (This)->lpVtbl -> GetPointOpacity(This,fOpacity)

#define IRdRenderAttributes_GetWireOpacity(This,fOpacity)	\
    (This)->lpVtbl -> GetWireOpacity(This,fOpacity)

#define IRdRenderAttributes_GetHighlightOpacity(This,fOpacity)	\
    (This)->lpVtbl -> GetHighlightOpacity(This,fOpacity)

#define IRdRenderAttributes_GetShowHiddenFaces(This,bMode)	\
    (This)->lpVtbl -> GetShowHiddenFaces(This,bMode)

#define IRdRenderAttributes_GetShowHiddenLines(This,bMode)	\
    (This)->lpVtbl -> GetShowHiddenLines(This,bMode)

#define IRdRenderAttributes_GetRenderTwoSided(This,bMode)	\
    (This)->lpVtbl -> GetRenderTwoSided(This,bMode)

#define IRdRenderAttributes_GetPointSize(This,bIsForced,fPointSize)	\
    (This)->lpVtbl -> GetPointSize(This,bIsForced,fPointSize)

#define IRdRenderAttributes_GetPointColor(This,bIsForced,fRed,fGreen,fBlue)	\
    (This)->lpVtbl -> GetPointColor(This,bIsForced,fRed,fGreen,fBlue)

#define IRdRenderAttributes_GetWireColor(This,bIsForced,fRed,fGreen,fBlue)	\
    (This)->lpVtbl -> GetWireColor(This,bIsForced,fRed,fGreen,fBlue)

#define IRdRenderAttributes_GetHighlightColor(This,bIsForced,fRed,fGreen,fBlue)	\
    (This)->lpVtbl -> GetHighlightColor(This,bIsForced,fRed,fGreen,fBlue)

#define IRdRenderAttributes_GetInvisible(This,bMode)	\
    (This)->lpVtbl -> GetInvisible(This,bMode)

#define IRdRenderAttributes_GetCastShadows(This,bMode)	\
    (This)->lpVtbl -> GetCastShadows(This,bMode)

#define IRdRenderAttributes_GetReceiveShadows(This,bMode)	\
    (This)->lpVtbl -> GetReceiveShadows(This,bMode)

#define IRdRenderAttributes_GetLayerIndex(This,dwIndex)	\
    (This)->lpVtbl -> GetLayerIndex(This,dwIndex)

#define IRdRenderAttributes_SetTransparencySortingMethod(This,eMode)	\
    (This)->lpVtbl -> SetTransparencySortingMethod(This,eMode)

#define IRdRenderAttributes_GetTransparencySortingMethod(This,peMode)	\
    (This)->lpVtbl -> GetTransparencySortingMethod(This,peMode)

#define IRdRenderAttributes_SetOverlayColor(This,bEnable,fRed,fGreen,fBlue,fIntensity)	\
    (This)->lpVtbl -> SetOverlayColor(This,bEnable,fRed,fGreen,fBlue,fIntensity)

#define IRdRenderAttributes_GetOverlayColor(This,bEnable,fRed,fGreen,fBlue,fIntensity)	\
    (This)->lpVtbl -> GetOverlayColor(This,bEnable,fRed,fGreen,fBlue,fIntensity)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_Clear_Proxy( 
    IRdRenderAttributes * This);


void __RPC_STUB IRdRenderAttributes_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_SetForceAttribs_Proxy( 
    IRdRenderAttributes * This,
    /* [in] */ BOOL bMode);


void __RPC_STUB IRdRenderAttributes_SetForceAttribs_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_SetFaceOpacity_Proxy( 
    IRdRenderAttributes * This,
    /* [in] */ float fOpacity);


void __RPC_STUB IRdRenderAttributes_SetFaceOpacity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_SetPointOpacity_Proxy( 
    IRdRenderAttributes * This,
    /* [in] */ float fOpacity);


void __RPC_STUB IRdRenderAttributes_SetPointOpacity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_SetWireOpacity_Proxy( 
    IRdRenderAttributes * This,
    /* [in] */ float fOpacity);


void __RPC_STUB IRdRenderAttributes_SetWireOpacity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_SetHighlightOpacity_Proxy( 
    IRdRenderAttributes * This,
    /* [in] */ float fOpacity);


void __RPC_STUB IRdRenderAttributes_SetHighlightOpacity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_SetShowHiddenFaces_Proxy( 
    IRdRenderAttributes * This,
    /* [in] */ BOOL bMode);


void __RPC_STUB IRdRenderAttributes_SetShowHiddenFaces_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_SetShowHiddenLines_Proxy( 
    IRdRenderAttributes * This,
    /* [in] */ BOOL bMode);


void __RPC_STUB IRdRenderAttributes_SetShowHiddenLines_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_SetRenderTwoSided_Proxy( 
    IRdRenderAttributes * This,
    /* [in] */ BOOL bMode);


void __RPC_STUB IRdRenderAttributes_SetRenderTwoSided_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_SetPointSize_Proxy( 
    IRdRenderAttributes * This,
    /* [in] */ BOOL bIsForced,
    /* [in] */ float fPointSize);


void __RPC_STUB IRdRenderAttributes_SetPointSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_SetPointColor_Proxy( 
    IRdRenderAttributes * This,
    /* [in] */ BOOL bIsForced,
    /* [in] */ float fRed,
    /* [in] */ float fGreen,
    /* [in] */ float fBlue);


void __RPC_STUB IRdRenderAttributes_SetPointColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_SetWireColor_Proxy( 
    IRdRenderAttributes * This,
    /* [in] */ BOOL bIsForced,
    /* [in] */ float fRed,
    /* [in] */ float fGreen,
    /* [in] */ float fBlue);


void __RPC_STUB IRdRenderAttributes_SetWireColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_SetHighlightColor_Proxy( 
    IRdRenderAttributes * This,
    /* [in] */ BOOL bIsForced,
    /* [in] */ float fRed,
    /* [in] */ float fGreen,
    /* [in] */ float fBlue);


void __RPC_STUB IRdRenderAttributes_SetHighlightColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_SetPointColorObj_Proxy( 
    IRdRenderAttributes * This,
    /* [in] */ BOOL bIsForced,
    /* [in] */ IRdColor *pColor);


void __RPC_STUB IRdRenderAttributes_SetPointColorObj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_SetWireColorObj_Proxy( 
    IRdRenderAttributes * This,
    /* [in] */ BOOL bIsForced,
    /* [in] */ IRdColor *pColor);


void __RPC_STUB IRdRenderAttributes_SetWireColorObj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_SetHighlightColorObj_Proxy( 
    IRdRenderAttributes * This,
    /* [in] */ BOOL bIsForced,
    /* [in] */ IRdColor *pColor);


void __RPC_STUB IRdRenderAttributes_SetHighlightColorObj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_SetInvisible_Proxy( 
    IRdRenderAttributes * This,
    /* [in] */ BOOL bMode);


void __RPC_STUB IRdRenderAttributes_SetInvisible_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_SetCastShadows_Proxy( 
    IRdRenderAttributes * This,
    /* [in] */ BOOL bMode);


void __RPC_STUB IRdRenderAttributes_SetCastShadows_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_SetReceiveShadows_Proxy( 
    IRdRenderAttributes * This,
    /* [in] */ BOOL bMode);


void __RPC_STUB IRdRenderAttributes_SetReceiveShadows_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_SetLayerIndex_Proxy( 
    IRdRenderAttributes * This,
    /* [in] */ RtDWORD dwIndex);


void __RPC_STUB IRdRenderAttributes_SetLayerIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_GetForceAttribs_Proxy( 
    IRdRenderAttributes * This,
    /* [retval][out] */ BOOL *bMode);


void __RPC_STUB IRdRenderAttributes_GetForceAttribs_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_GetFaceOpacity_Proxy( 
    IRdRenderAttributes * This,
    /* [retval][out] */ float *fOpacity);


void __RPC_STUB IRdRenderAttributes_GetFaceOpacity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_GetPointOpacity_Proxy( 
    IRdRenderAttributes * This,
    /* [retval][out] */ float *fOpacity);


void __RPC_STUB IRdRenderAttributes_GetPointOpacity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_GetWireOpacity_Proxy( 
    IRdRenderAttributes * This,
    /* [retval][out] */ float *fOpacity);


void __RPC_STUB IRdRenderAttributes_GetWireOpacity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_GetHighlightOpacity_Proxy( 
    IRdRenderAttributes * This,
    /* [retval][out] */ float *fOpacity);


void __RPC_STUB IRdRenderAttributes_GetHighlightOpacity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_GetShowHiddenFaces_Proxy( 
    IRdRenderAttributes * This,
    /* [retval][out] */ BOOL *bMode);


void __RPC_STUB IRdRenderAttributes_GetShowHiddenFaces_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_GetShowHiddenLines_Proxy( 
    IRdRenderAttributes * This,
    /* [retval][out] */ BOOL *bMode);


void __RPC_STUB IRdRenderAttributes_GetShowHiddenLines_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_GetRenderTwoSided_Proxy( 
    IRdRenderAttributes * This,
    /* [retval][out] */ BOOL *bMode);


void __RPC_STUB IRdRenderAttributes_GetRenderTwoSided_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_GetPointSize_Proxy( 
    IRdRenderAttributes * This,
    /* [out] */ BOOL *bIsForced,
    /* [out] */ float *fPointSize);


void __RPC_STUB IRdRenderAttributes_GetPointSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_GetPointColor_Proxy( 
    IRdRenderAttributes * This,
    /* [out] */ BOOL *bIsForced,
    /* [out] */ float *fRed,
    /* [out] */ float *fGreen,
    /* [out] */ float *fBlue);


void __RPC_STUB IRdRenderAttributes_GetPointColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_GetWireColor_Proxy( 
    IRdRenderAttributes * This,
    /* [out] */ BOOL *bIsForced,
    /* [out] */ float *fRed,
    /* [out] */ float *fGreen,
    /* [out] */ float *fBlue);


void __RPC_STUB IRdRenderAttributes_GetWireColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_GetHighlightColor_Proxy( 
    IRdRenderAttributes * This,
    /* [out] */ BOOL *bIsForced,
    /* [out] */ float *fRed,
    /* [out] */ float *fGreen,
    /* [out] */ float *fBlue);


void __RPC_STUB IRdRenderAttributes_GetHighlightColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_GetInvisible_Proxy( 
    IRdRenderAttributes * This,
    /* [retval][out] */ BOOL *bMode);


void __RPC_STUB IRdRenderAttributes_GetInvisible_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_GetCastShadows_Proxy( 
    IRdRenderAttributes * This,
    /* [retval][out] */ BOOL *bMode);


void __RPC_STUB IRdRenderAttributes_GetCastShadows_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_GetReceiveShadows_Proxy( 
    IRdRenderAttributes * This,
    /* [retval][out] */ BOOL *bMode);


void __RPC_STUB IRdRenderAttributes_GetReceiveShadows_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_GetLayerIndex_Proxy( 
    IRdRenderAttributes * This,
    /* [retval][out] */ RtDWORD *dwIndex);


void __RPC_STUB IRdRenderAttributes_GetLayerIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_SetTransparencySortingMethod_Proxy( 
    IRdRenderAttributes * This,
    /* [in] */ enum ReTransparencyMode eMode);


void __RPC_STUB IRdRenderAttributes_SetTransparencySortingMethod_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_GetTransparencySortingMethod_Proxy( 
    IRdRenderAttributes * This,
    /* [retval][out] */ enum ReTransparencyMode *peMode);


void __RPC_STUB IRdRenderAttributes_GetTransparencySortingMethod_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_SetOverlayColor_Proxy( 
    IRdRenderAttributes * This,
    /* [in] */ BOOL bEnable,
    /* [in] */ float fRed,
    /* [in] */ float fGreen,
    /* [in] */ float fBlue,
    /* [in] */ float fIntensity);


void __RPC_STUB IRdRenderAttributes_SetOverlayColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributes_GetOverlayColor_Proxy( 
    IRdRenderAttributes * This,
    /* [out] */ BOOL *bEnable,
    /* [out] */ float *fRed,
    /* [out] */ float *fGreen,
    /* [out] */ float *fBlue,
    /* [out] */ float *fIntensity);


void __RPC_STUB IRdRenderAttributes_GetOverlayColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdRenderAttributes_INTERFACE_DEFINED__ */


#ifndef __IRdRenderAttributesDisp_INTERFACE_DEFINED__
#define __IRdRenderAttributesDisp_INTERFACE_DEFINED__

/* interface IRdRenderAttributesDisp */
/* [object][unique][helpstring][uuid][dual] */ 


EXTERN_C const IID IID_IRdRenderAttributesDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("ba3f8a56-e3fd-4ce3-bb04-004684adaed9")
    IRdRenderAttributesDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetForceAttribs( 
            /* [in] */ BOOL bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetFaceOpacity( 
            /* [in] */ float fOpacity) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetPointOpacity( 
            /* [in] */ float fOpacity) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetWireOpacity( 
            /* [in] */ float fOpacity) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetHighlightOpacity( 
            /* [in] */ float fOpacity) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetShowHiddenFaces( 
            /* [in] */ BOOL bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetShowHiddenLines( 
            /* [in] */ BOOL bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetRenderTwoSided( 
            /* [in] */ BOOL bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetPointSize( 
            /* [in] */ BOOL bIsForced,
            /* [in] */ float fPointSize) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetPointColor( 
            /* [in] */ BOOL bIsForced,
            /* [in] */ float fRed,
            /* [in] */ float fGreen,
            /* [in] */ float fBlue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetWireColor( 
            /* [in] */ BOOL bIsForced,
            /* [in] */ float fRed,
            /* [in] */ float fGreen,
            /* [in] */ float fBlue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetHighlightColor( 
            /* [in] */ BOOL bIsForced,
            /* [in] */ float fRed,
            /* [in] */ float fGreen,
            /* [in] */ float fBlue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetPointColorObj( 
            /* [in] */ BOOL bIsForced,
            /* [in] */ IDispatch *pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetWireColorObj( 
            /* [in] */ BOOL bIsForced,
            /* [in] */ IDispatch *pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetHighlightColorObj( 
            /* [in] */ BOOL bIsForced,
            /* [in] */ IDispatch *pColor) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetInvisible( 
            /* [in] */ BOOL bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetCastShadows( 
            /* [in] */ BOOL bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetReceiveShadows( 
            /* [in] */ BOOL bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetLayerIndex( 
            /* [in] */ RtDWORD dwIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetForceAttribs( 
            /* [retval][out] */ BOOL *bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetFaceOpacity( 
            /* [retval][out] */ float *fOpacity) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPointOpacity( 
            /* [retval][out] */ float *fOpacity) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetWireOpacity( 
            /* [retval][out] */ float *fOpacity) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetHighlightOpacity( 
            /* [retval][out] */ float *fOpacity) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetShowHiddenFaces( 
            /* [retval][out] */ BOOL *bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetShowHiddenLines( 
            /* [retval][out] */ BOOL *bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetRenderTwoSided( 
            /* [retval][out] */ BOOL *bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPointSize( 
            /* [out] */ BOOL *bIsForced,
            /* [out] */ float *fPointSize) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPointColor( 
            /* [out] */ BOOL *bIsForced,
            /* [out] */ float *fRed,
            /* [out] */ float *fGreen,
            /* [out] */ float *fBlue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetWireColor( 
            /* [out] */ BOOL *bIsForced,
            /* [out] */ float *fRed,
            /* [out] */ float *fGreen,
            /* [out] */ float *fBlue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetHighlightColor( 
            /* [out] */ BOOL *bIsForced,
            /* [out] */ float *fRed,
            /* [out] */ float *fGreen,
            /* [out] */ float *fBlue) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetInvisible( 
            /* [retval][out] */ BOOL *bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCastShadows( 
            /* [retval][out] */ BOOL *bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetReceiveShadows( 
            /* [retval][out] */ BOOL *bMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetLayerIndex( 
            /* [retval][out] */ RtDWORD *dwIndex) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetTransparencySortingMethod( 
            /* [in] */ enum ReTransparencyMode eMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTransparencySortingMethod( 
            /* [retval][out] */ enum ReTransparencyMode *peMode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetOverlayColor( 
            /* [in] */ BOOL bEnable,
            /* [in] */ float fRed,
            /* [in] */ float fGreen,
            /* [in] */ float fBlue,
            /* [in] */ float fIntensity) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetOverlayColor( 
            /* [out] */ BOOL *bEnable,
            /* [out] */ float *fRed,
            /* [out] */ float *fGreen,
            /* [out] */ float *fBlue,
            /* [out] */ float *fIntensity) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdRenderAttributesDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdRenderAttributesDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdRenderAttributesDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdRenderAttributesDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdRenderAttributesDisp * 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 *Clear )( 
            IRdRenderAttributesDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetForceAttribs )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ BOOL bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetFaceOpacity )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ float fOpacity);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetPointOpacity )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ float fOpacity);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetWireOpacity )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ float fOpacity);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetHighlightOpacity )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ float fOpacity);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetShowHiddenFaces )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ BOOL bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetShowHiddenLines )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ BOOL bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetRenderTwoSided )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ BOOL bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetPointSize )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ BOOL bIsForced,
            /* [in] */ float fPointSize);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetPointColor )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ BOOL bIsForced,
            /* [in] */ float fRed,
            /* [in] */ float fGreen,
            /* [in] */ float fBlue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetWireColor )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ BOOL bIsForced,
            /* [in] */ float fRed,
            /* [in] */ float fGreen,
            /* [in] */ float fBlue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetHighlightColor )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ BOOL bIsForced,
            /* [in] */ float fRed,
            /* [in] */ float fGreen,
            /* [in] */ float fBlue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetPointColorObj )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ BOOL bIsForced,
            /* [in] */ IDispatch *pColor);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetWireColorObj )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ BOOL bIsForced,
            /* [in] */ IDispatch *pColor);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetHighlightColorObj )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ BOOL bIsForced,
            /* [in] */ IDispatch *pColor);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetInvisible )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ BOOL bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetCastShadows )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ BOOL bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetReceiveShadows )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ BOOL bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetLayerIndex )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ RtDWORD dwIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetForceAttribs )( 
            IRdRenderAttributesDisp * This,
            /* [retval][out] */ BOOL *bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetFaceOpacity )( 
            IRdRenderAttributesDisp * This,
            /* [retval][out] */ float *fOpacity);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPointOpacity )( 
            IRdRenderAttributesDisp * This,
            /* [retval][out] */ float *fOpacity);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetWireOpacity )( 
            IRdRenderAttributesDisp * This,
            /* [retval][out] */ float *fOpacity);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetHighlightOpacity )( 
            IRdRenderAttributesDisp * This,
            /* [retval][out] */ float *fOpacity);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetShowHiddenFaces )( 
            IRdRenderAttributesDisp * This,
            /* [retval][out] */ BOOL *bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetShowHiddenLines )( 
            IRdRenderAttributesDisp * This,
            /* [retval][out] */ BOOL *bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetRenderTwoSided )( 
            IRdRenderAttributesDisp * This,
            /* [retval][out] */ BOOL *bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPointSize )( 
            IRdRenderAttributesDisp * This,
            /* [out] */ BOOL *bIsForced,
            /* [out] */ float *fPointSize);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPointColor )( 
            IRdRenderAttributesDisp * This,
            /* [out] */ BOOL *bIsForced,
            /* [out] */ float *fRed,
            /* [out] */ float *fGreen,
            /* [out] */ float *fBlue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetWireColor )( 
            IRdRenderAttributesDisp * This,
            /* [out] */ BOOL *bIsForced,
            /* [out] */ float *fRed,
            /* [out] */ float *fGreen,
            /* [out] */ float *fBlue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetHighlightColor )( 
            IRdRenderAttributesDisp * This,
            /* [out] */ BOOL *bIsForced,
            /* [out] */ float *fRed,
            /* [out] */ float *fGreen,
            /* [out] */ float *fBlue);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetInvisible )( 
            IRdRenderAttributesDisp * This,
            /* [retval][out] */ BOOL *bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCastShadows )( 
            IRdRenderAttributesDisp * This,
            /* [retval][out] */ BOOL *bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetReceiveShadows )( 
            IRdRenderAttributesDisp * This,
            /* [retval][out] */ BOOL *bMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLayerIndex )( 
            IRdRenderAttributesDisp * This,
            /* [retval][out] */ RtDWORD *dwIndex);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetTransparencySortingMethod )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ enum ReTransparencyMode eMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTransparencySortingMethod )( 
            IRdRenderAttributesDisp * This,
            /* [retval][out] */ enum ReTransparencyMode *peMode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetOverlayColor )( 
            IRdRenderAttributesDisp * This,
            /* [in] */ BOOL bEnable,
            /* [in] */ float fRed,
            /* [in] */ float fGreen,
            /* [in] */ float fBlue,
            /* [in] */ float fIntensity);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetOverlayColor )( 
            IRdRenderAttributesDisp * This,
            /* [out] */ BOOL *bEnable,
            /* [out] */ float *fRed,
            /* [out] */ float *fGreen,
            /* [out] */ float *fBlue,
            /* [out] */ float *fIntensity);
        
        END_INTERFACE
    } IRdRenderAttributesDispVtbl;

    interface IRdRenderAttributesDisp
    {
        CONST_VTBL struct IRdRenderAttributesDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdRenderAttributesDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdRenderAttributesDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdRenderAttributesDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdRenderAttributesDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdRenderAttributesDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdRenderAttributesDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdRenderAttributesDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdRenderAttributesDisp_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRdRenderAttributesDisp_SetForceAttribs(This,bMode)	\
    (This)->lpVtbl -> SetForceAttribs(This,bMode)

#define IRdRenderAttributesDisp_SetFaceOpacity(This,fOpacity)	\
    (This)->lpVtbl -> SetFaceOpacity(This,fOpacity)

#define IRdRenderAttributesDisp_SetPointOpacity(This,fOpacity)	\
    (This)->lpVtbl -> SetPointOpacity(This,fOpacity)

#define IRdRenderAttributesDisp_SetWireOpacity(This,fOpacity)	\
    (This)->lpVtbl -> SetWireOpacity(This,fOpacity)

#define IRdRenderAttributesDisp_SetHighlightOpacity(This,fOpacity)	\
    (This)->lpVtbl -> SetHighlightOpacity(This,fOpacity)

#define IRdRenderAttributesDisp_SetShowHiddenFaces(This,bMode)	\
    (This)->lpVtbl -> SetShowHiddenFaces(This,bMode)

#define IRdRenderAttributesDisp_SetShowHiddenLines(This,bMode)	\
    (This)->lpVtbl -> SetShowHiddenLines(This,bMode)

#define IRdRenderAttributesDisp_SetRenderTwoSided(This,bMode)	\
    (This)->lpVtbl -> SetRenderTwoSided(This,bMode)

#define IRdRenderAttributesDisp_SetPointSize(This,bIsForced,fPointSize)	\
    (This)->lpVtbl -> SetPointSize(This,bIsForced,fPointSize)

#define IRdRenderAttributesDisp_SetPointColor(This,bIsForced,fRed,fGreen,fBlue)	\
    (This)->lpVtbl -> SetPointColor(This,bIsForced,fRed,fGreen,fBlue)

#define IRdRenderAttributesDisp_SetWireColor(This,bIsForced,fRed,fGreen,fBlue)	\
    (This)->lpVtbl -> SetWireColor(This,bIsForced,fRed,fGreen,fBlue)

#define IRdRenderAttributesDisp_SetHighlightColor(This,bIsForced,fRed,fGreen,fBlue)	\
    (This)->lpVtbl -> SetHighlightColor(This,bIsForced,fRed,fGreen,fBlue)

#define IRdRenderAttributesDisp_SetPointColorObj(This,bIsForced,pColor)	\
    (This)->lpVtbl -> SetPointColorObj(This,bIsForced,pColor)

#define IRdRenderAttributesDisp_SetWireColorObj(This,bIsForced,pColor)	\
    (This)->lpVtbl -> SetWireColorObj(This,bIsForced,pColor)

#define IRdRenderAttributesDisp_SetHighlightColorObj(This,bIsForced,pColor)	\
    (This)->lpVtbl -> SetHighlightColorObj(This,bIsForced,pColor)

#define IRdRenderAttributesDisp_SetInvisible(This,bMode)	\
    (This)->lpVtbl -> SetInvisible(This,bMode)

#define IRdRenderAttributesDisp_SetCastShadows(This,bMode)	\
    (This)->lpVtbl -> SetCastShadows(This,bMode)

#define IRdRenderAttributesDisp_SetReceiveShadows(This,bMode)	\
    (This)->lpVtbl -> SetReceiveShadows(This,bMode)

#define IRdRenderAttributesDisp_SetLayerIndex(This,dwIndex)	\
    (This)->lpVtbl -> SetLayerIndex(This,dwIndex)

#define IRdRenderAttributesDisp_GetForceAttribs(This,bMode)	\
    (This)->lpVtbl -> GetForceAttribs(This,bMode)

#define IRdRenderAttributesDisp_GetFaceOpacity(This,fOpacity)	\
    (This)->lpVtbl -> GetFaceOpacity(This,fOpacity)

#define IRdRenderAttributesDisp_GetPointOpacity(This,fOpacity)	\
    (This)->lpVtbl -> GetPointOpacity(This,fOpacity)

#define IRdRenderAttributesDisp_GetWireOpacity(This,fOpacity)	\
    (This)->lpVtbl -> GetWireOpacity(This,fOpacity)

#define IRdRenderAttributesDisp_GetHighlightOpacity(This,fOpacity)	\
    (This)->lpVtbl -> GetHighlightOpacity(This,fOpacity)

#define IRdRenderAttributesDisp_GetShowHiddenFaces(This,bMode)	\
    (This)->lpVtbl -> GetShowHiddenFaces(This,bMode)

#define IRdRenderAttributesDisp_GetShowHiddenLines(This,bMode)	\
    (This)->lpVtbl -> GetShowHiddenLines(This,bMode)

#define IRdRenderAttributesDisp_GetRenderTwoSided(This,bMode)	\
    (This)->lpVtbl -> GetRenderTwoSided(This,bMode)

#define IRdRenderAttributesDisp_GetPointSize(This,bIsForced,fPointSize)	\
    (This)->lpVtbl -> GetPointSize(This,bIsForced,fPointSize)

#define IRdRenderAttributesDisp_GetPointColor(This,bIsForced,fRed,fGreen,fBlue)	\
    (This)->lpVtbl -> GetPointColor(This,bIsForced,fRed,fGreen,fBlue)

#define IRdRenderAttributesDisp_GetWireColor(This,bIsForced,fRed,fGreen,fBlue)	\
    (This)->lpVtbl -> GetWireColor(This,bIsForced,fRed,fGreen,fBlue)

#define IRdRenderAttributesDisp_GetHighlightColor(This,bIsForced,fRed,fGreen,fBlue)	\
    (This)->lpVtbl -> GetHighlightColor(This,bIsForced,fRed,fGreen,fBlue)

#define IRdRenderAttributesDisp_GetInvisible(This,bMode)	\
    (This)->lpVtbl -> GetInvisible(This,bMode)

#define IRdRenderAttributesDisp_GetCastShadows(This,bMode)	\
    (This)->lpVtbl -> GetCastShadows(This,bMode)

#define IRdRenderAttributesDisp_GetReceiveShadows(This,bMode)	\
    (This)->lpVtbl -> GetReceiveShadows(This,bMode)

#define IRdRenderAttributesDisp_GetLayerIndex(This,dwIndex)	\
    (This)->lpVtbl -> GetLayerIndex(This,dwIndex)

#define IRdRenderAttributesDisp_SetTransparencySortingMethod(This,eMode)	\
    (This)->lpVtbl -> SetTransparencySortingMethod(This,eMode)

#define IRdRenderAttributesDisp_GetTransparencySortingMethod(This,peMode)	\
    (This)->lpVtbl -> GetTransparencySortingMethod(This,peMode)

#define IRdRenderAttributesDisp_SetOverlayColor(This,bEnable,fRed,fGreen,fBlue,fIntensity)	\
    (This)->lpVtbl -> SetOverlayColor(This,bEnable,fRed,fGreen,fBlue,fIntensity)

#define IRdRenderAttributesDisp_GetOverlayColor(This,bEnable,fRed,fGreen,fBlue,fIntensity)	\
    (This)->lpVtbl -> GetOverlayColor(This,bEnable,fRed,fGreen,fBlue,fIntensity)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_Clear_Proxy( 
    IRdRenderAttributesDisp * This);


void __RPC_STUB IRdRenderAttributesDisp_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_SetForceAttribs_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [in] */ BOOL bMode);


void __RPC_STUB IRdRenderAttributesDisp_SetForceAttribs_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_SetFaceOpacity_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [in] */ float fOpacity);


void __RPC_STUB IRdRenderAttributesDisp_SetFaceOpacity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_SetPointOpacity_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [in] */ float fOpacity);


void __RPC_STUB IRdRenderAttributesDisp_SetPointOpacity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_SetWireOpacity_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [in] */ float fOpacity);


void __RPC_STUB IRdRenderAttributesDisp_SetWireOpacity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_SetHighlightOpacity_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [in] */ float fOpacity);


void __RPC_STUB IRdRenderAttributesDisp_SetHighlightOpacity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_SetShowHiddenFaces_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [in] */ BOOL bMode);


void __RPC_STUB IRdRenderAttributesDisp_SetShowHiddenFaces_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_SetShowHiddenLines_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [in] */ BOOL bMode);


void __RPC_STUB IRdRenderAttributesDisp_SetShowHiddenLines_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_SetRenderTwoSided_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [in] */ BOOL bMode);


void __RPC_STUB IRdRenderAttributesDisp_SetRenderTwoSided_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_SetPointSize_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [in] */ BOOL bIsForced,
    /* [in] */ float fPointSize);


void __RPC_STUB IRdRenderAttributesDisp_SetPointSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_SetPointColor_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [in] */ BOOL bIsForced,
    /* [in] */ float fRed,
    /* [in] */ float fGreen,
    /* [in] */ float fBlue);


void __RPC_STUB IRdRenderAttributesDisp_SetPointColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_SetWireColor_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [in] */ BOOL bIsForced,
    /* [in] */ float fRed,
    /* [in] */ float fGreen,
    /* [in] */ float fBlue);


void __RPC_STUB IRdRenderAttributesDisp_SetWireColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_SetHighlightColor_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [in] */ BOOL bIsForced,
    /* [in] */ float fRed,
    /* [in] */ float fGreen,
    /* [in] */ float fBlue);


void __RPC_STUB IRdRenderAttributesDisp_SetHighlightColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_SetPointColorObj_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [in] */ BOOL bIsForced,
    /* [in] */ IDispatch *pColor);


void __RPC_STUB IRdRenderAttributesDisp_SetPointColorObj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_SetWireColorObj_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [in] */ BOOL bIsForced,
    /* [in] */ IDispatch *pColor);


void __RPC_STUB IRdRenderAttributesDisp_SetWireColorObj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_SetHighlightColorObj_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [in] */ BOOL bIsForced,
    /* [in] */ IDispatch *pColor);


void __RPC_STUB IRdRenderAttributesDisp_SetHighlightColorObj_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_SetInvisible_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [in] */ BOOL bMode);


void __RPC_STUB IRdRenderAttributesDisp_SetInvisible_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_SetCastShadows_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [in] */ BOOL bMode);


void __RPC_STUB IRdRenderAttributesDisp_SetCastShadows_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_SetReceiveShadows_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [in] */ BOOL bMode);


void __RPC_STUB IRdRenderAttributesDisp_SetReceiveShadows_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_SetLayerIndex_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [in] */ RtDWORD dwIndex);


void __RPC_STUB IRdRenderAttributesDisp_SetLayerIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_GetForceAttribs_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [retval][out] */ BOOL *bMode);


void __RPC_STUB IRdRenderAttributesDisp_GetForceAttribs_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_GetFaceOpacity_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [retval][out] */ float *fOpacity);


void __RPC_STUB IRdRenderAttributesDisp_GetFaceOpacity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_GetPointOpacity_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [retval][out] */ float *fOpacity);


void __RPC_STUB IRdRenderAttributesDisp_GetPointOpacity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_GetWireOpacity_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [retval][out] */ float *fOpacity);


void __RPC_STUB IRdRenderAttributesDisp_GetWireOpacity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_GetHighlightOpacity_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [retval][out] */ float *fOpacity);


void __RPC_STUB IRdRenderAttributesDisp_GetHighlightOpacity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_GetShowHiddenFaces_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [retval][out] */ BOOL *bMode);


void __RPC_STUB IRdRenderAttributesDisp_GetShowHiddenFaces_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_GetShowHiddenLines_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [retval][out] */ BOOL *bMode);


void __RPC_STUB IRdRenderAttributesDisp_GetShowHiddenLines_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_GetRenderTwoSided_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [retval][out] */ BOOL *bMode);


void __RPC_STUB IRdRenderAttributesDisp_GetRenderTwoSided_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_GetPointSize_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [out] */ BOOL *bIsForced,
    /* [out] */ float *fPointSize);


void __RPC_STUB IRdRenderAttributesDisp_GetPointSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_GetPointColor_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [out] */ BOOL *bIsForced,
    /* [out] */ float *fRed,
    /* [out] */ float *fGreen,
    /* [out] */ float *fBlue);


void __RPC_STUB IRdRenderAttributesDisp_GetPointColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_GetWireColor_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [out] */ BOOL *bIsForced,
    /* [out] */ float *fRed,
    /* [out] */ float *fGreen,
    /* [out] */ float *fBlue);


void __RPC_STUB IRdRenderAttributesDisp_GetWireColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_GetHighlightColor_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [out] */ BOOL *bIsForced,
    /* [out] */ float *fRed,
    /* [out] */ float *fGreen,
    /* [out] */ float *fBlue);


void __RPC_STUB IRdRenderAttributesDisp_GetHighlightColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_GetInvisible_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [retval][out] */ BOOL *bMode);


void __RPC_STUB IRdRenderAttributesDisp_GetInvisible_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_GetCastShadows_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [retval][out] */ BOOL *bMode);


void __RPC_STUB IRdRenderAttributesDisp_GetCastShadows_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_GetReceiveShadows_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [retval][out] */ BOOL *bMode);


void __RPC_STUB IRdRenderAttributesDisp_GetReceiveShadows_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_GetLayerIndex_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [retval][out] */ RtDWORD *dwIndex);


void __RPC_STUB IRdRenderAttributesDisp_GetLayerIndex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_SetTransparencySortingMethod_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [in] */ enum ReTransparencyMode eMode);


void __RPC_STUB IRdRenderAttributesDisp_SetTransparencySortingMethod_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_GetTransparencySortingMethod_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [retval][out] */ enum ReTransparencyMode *peMode);


void __RPC_STUB IRdRenderAttributesDisp_GetTransparencySortingMethod_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_SetOverlayColor_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [in] */ BOOL bEnable,
    /* [in] */ float fRed,
    /* [in] */ float fGreen,
    /* [in] */ float fBlue,
    /* [in] */ float fIntensity);


void __RPC_STUB IRdRenderAttributesDisp_SetOverlayColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdRenderAttributesDisp_GetOverlayColor_Proxy( 
    IRdRenderAttributesDisp * This,
    /* [out] */ BOOL *bEnable,
    /* [out] */ float *fRed,
    /* [out] */ float *fGreen,
    /* [out] */ float *fBlue,
    /* [out] */ float *fIntensity);


void __RPC_STUB IRdRenderAttributesDisp_GetOverlayColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdRenderAttributesDisp_INTERFACE_DEFINED__ */


#ifndef __IRcSelectByName_INTERFACE_DEFINED__
#define __IRcSelectByName_INTERFACE_DEFINED__

/* interface IRcSelectByName */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcSelectByName;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A28C73A9-6EE6-4B50-B809-D9148C56F0E6")
    IRcSelectByName : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcSelectByNameVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcSelectByName * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcSelectByName * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcSelectByName * This);
        
        END_INTERFACE
    } IRcSelectByNameVtbl;

    interface IRcSelectByName
    {
        CONST_VTBL struct IRcSelectByNameVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcSelectByName_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcSelectByName_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcSelectByName_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcSelectByName_INTERFACE_DEFINED__ */


#ifndef __IRcDeselectByName_INTERFACE_DEFINED__
#define __IRcDeselectByName_INTERFACE_DEFINED__

/* interface IRcDeselectByName */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcDeselectByName;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4418BF8F-E994-42ac-A39B-0CC45AB4D6A3")
    IRcDeselectByName : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcDeselectByNameVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcDeselectByName * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcDeselectByName * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcDeselectByName * This);
        
        END_INTERFACE
    } IRcDeselectByNameVtbl;

    interface IRcDeselectByName
    {
        CONST_VTBL struct IRcDeselectByNameVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcDeselectByName_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcDeselectByName_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcDeselectByName_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcDeselectByName_INTERFACE_DEFINED__ */


#ifndef __IRcNURBSCube_INTERFACE_DEFINED__
#define __IRcNURBSCube_INTERFACE_DEFINED__

/* interface IRcNURBSCube */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcNURBSCube;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("33142E2F-A3B8-44a3-8A33-E32BE697C70A")
    IRcNURBSCube : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateNURBSCube( 
            /* [in] */ RtDouble cx,
            /* [in] */ RtDouble cy,
            /* [in] */ RtDouble cz,
            /* [in] */ RtDouble sizex,
            /* [in] */ RtDouble sizey,
            /* [in] */ RtDouble sizez,
            /* [in] */ BSTR name,
            /* [out] */ IRsNode **pObj) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteNURBSCube( 
            /* [in] */ BSTR szFullName) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcNURBSCubeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcNURBSCube * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcNURBSCube * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcNURBSCube * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateNURBSCube )( 
            IRcNURBSCube * This,
            /* [in] */ RtDouble cx,
            /* [in] */ RtDouble cy,
            /* [in] */ RtDouble cz,
            /* [in] */ RtDouble sizex,
            /* [in] */ RtDouble sizey,
            /* [in] */ RtDouble sizez,
            /* [in] */ BSTR name,
            /* [out] */ IRsNode **pObj);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteNURBSCube )( 
            IRcNURBSCube * This,
            /* [in] */ BSTR szFullName);
        
        END_INTERFACE
    } IRcNURBSCubeVtbl;

    interface IRcNURBSCube
    {
        CONST_VTBL struct IRcNURBSCubeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcNURBSCube_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcNURBSCube_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcNURBSCube_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcNURBSCube_CreateNURBSCube(This,cx,cy,cz,sizex,sizey,sizez,name,pObj)	\
    (This)->lpVtbl -> CreateNURBSCube(This,cx,cy,cz,sizex,sizey,sizez,name,pObj)

#define IRcNURBSCube_DeleteNURBSCube(This,szFullName)	\
    (This)->lpVtbl -> DeleteNURBSCube(This,szFullName)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcNURBSCube_CreateNURBSCube_Proxy( 
    IRcNURBSCube * This,
    /* [in] */ RtDouble cx,
    /* [in] */ RtDouble cy,
    /* [in] */ RtDouble cz,
    /* [in] */ RtDouble sizex,
    /* [in] */ RtDouble sizey,
    /* [in] */ RtDouble sizez,
    /* [in] */ BSTR name,
    /* [out] */ IRsNode **pObj);


void __RPC_STUB IRcNURBSCube_CreateNURBSCube_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcNURBSCube_DeleteNURBSCube_Proxy( 
    IRcNURBSCube * This,
    /* [in] */ BSTR szFullName);


void __RPC_STUB IRcNURBSCube_DeleteNURBSCube_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcNURBSCube_INTERFACE_DEFINED__ */


#ifndef __IRcNURBSSphere_INTERFACE_DEFINED__
#define __IRcNURBSSphere_INTERFACE_DEFINED__

/* interface IRcNURBSSphere */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcNURBSSphere;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0D1849D7-7570-4f31-9F62-1091E148FE6D")
    IRcNURBSSphere : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateNURBSSphere( 
            /* [in] */ RtDouble radius,
            /* [in] */ BSTR name,
            /* [out] */ IRnEncapsulator **pObj) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteNURBSSphere( 
            /* [in] */ BSTR szFullName) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcNURBSSphereVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcNURBSSphere * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcNURBSSphere * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcNURBSSphere * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateNURBSSphere )( 
            IRcNURBSSphere * This,
            /* [in] */ RtDouble radius,
            /* [in] */ BSTR name,
            /* [out] */ IRnEncapsulator **pObj);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteNURBSSphere )( 
            IRcNURBSSphere * This,
            /* [in] */ BSTR szFullName);
        
        END_INTERFACE
    } IRcNURBSSphereVtbl;

    interface IRcNURBSSphere
    {
        CONST_VTBL struct IRcNURBSSphereVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcNURBSSphere_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcNURBSSphere_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcNURBSSphere_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcNURBSSphere_CreateNURBSSphere(This,radius,name,pObj)	\
    (This)->lpVtbl -> CreateNURBSSphere(This,radius,name,pObj)

#define IRcNURBSSphere_DeleteNURBSSphere(This,szFullName)	\
    (This)->lpVtbl -> DeleteNURBSSphere(This,szFullName)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcNURBSSphere_CreateNURBSSphere_Proxy( 
    IRcNURBSSphere * This,
    /* [in] */ RtDouble radius,
    /* [in] */ BSTR name,
    /* [out] */ IRnEncapsulator **pObj);


void __RPC_STUB IRcNURBSSphere_CreateNURBSSphere_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcNURBSSphere_DeleteNURBSSphere_Proxy( 
    IRcNURBSSphere * This,
    /* [in] */ BSTR szFullName);


void __RPC_STUB IRcNURBSSphere_DeleteNURBSSphere_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcNURBSSphere_INTERFACE_DEFINED__ */


#ifndef __IRcNURBSTorus_INTERFACE_DEFINED__
#define __IRcNURBSTorus_INTERFACE_DEFINED__

/* interface IRcNURBSTorus */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcNURBSTorus;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0B95FA40-CB42-4a67-8598-9E746934C21D")
    IRcNURBSTorus : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateNURBSTorus( 
            /* [in] */ RtDouble radius1,
            /* [in] */ RtDouble radius2,
            /* [in] */ BSTR name,
            /* [out] */ IRsNode **pObj) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteNURBSTorus( 
            /* [in] */ BSTR szFullName) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcNURBSTorusVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcNURBSTorus * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcNURBSTorus * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcNURBSTorus * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateNURBSTorus )( 
            IRcNURBSTorus * This,
            /* [in] */ RtDouble radius1,
            /* [in] */ RtDouble radius2,
            /* [in] */ BSTR name,
            /* [out] */ IRsNode **pObj);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteNURBSTorus )( 
            IRcNURBSTorus * This,
            /* [in] */ BSTR szFullName);
        
        END_INTERFACE
    } IRcNURBSTorusVtbl;

    interface IRcNURBSTorus
    {
        CONST_VTBL struct IRcNURBSTorusVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcNURBSTorus_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcNURBSTorus_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcNURBSTorus_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcNURBSTorus_CreateNURBSTorus(This,radius1,radius2,name,pObj)	\
    (This)->lpVtbl -> CreateNURBSTorus(This,radius1,radius2,name,pObj)

#define IRcNURBSTorus_DeleteNURBSTorus(This,szFullName)	\
    (This)->lpVtbl -> DeleteNURBSTorus(This,szFullName)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcNURBSTorus_CreateNURBSTorus_Proxy( 
    IRcNURBSTorus * This,
    /* [in] */ RtDouble radius1,
    /* [in] */ RtDouble radius2,
    /* [in] */ BSTR name,
    /* [out] */ IRsNode **pObj);


void __RPC_STUB IRcNURBSTorus_CreateNURBSTorus_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcNURBSTorus_DeleteNURBSTorus_Proxy( 
    IRcNURBSTorus * This,
    /* [in] */ BSTR szFullName);


void __RPC_STUB IRcNURBSTorus_DeleteNURBSTorus_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcNURBSTorus_INTERFACE_DEFINED__ */


#ifndef __IRcNURBSCone_INTERFACE_DEFINED__
#define __IRcNURBSCone_INTERFACE_DEFINED__

/* interface IRcNURBSCone */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcNURBSCone;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("75A9D645-364A-48eb-BAD1-0135696C3213")
    IRcNURBSCone : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateNURBSCone( 
            /* [in] */ RtDouble radius1,
            /* [in] */ RtDouble radius2,
            /* [in] */ RtDouble height,
            /* [in] */ BSTR name,
            /* [out] */ IRsNode **pObj) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE DeleteNURBSCone( 
            /* [in] */ BSTR szFullName) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcNURBSConeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcNURBSCone * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcNURBSCone * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcNURBSCone * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateNURBSCone )( 
            IRcNURBSCone * This,
            /* [in] */ RtDouble radius1,
            /* [in] */ RtDouble radius2,
            /* [in] */ RtDouble height,
            /* [in] */ BSTR name,
            /* [out] */ IRsNode **pObj);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *DeleteNURBSCone )( 
            IRcNURBSCone * This,
            /* [in] */ BSTR szFullName);
        
        END_INTERFACE
    } IRcNURBSConeVtbl;

    interface IRcNURBSCone
    {
        CONST_VTBL struct IRcNURBSConeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcNURBSCone_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcNURBSCone_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcNURBSCone_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcNURBSCone_CreateNURBSCone(This,radius1,radius2,height,name,pObj)	\
    (This)->lpVtbl -> CreateNURBSCone(This,radius1,radius2,height,name,pObj)

#define IRcNURBSCone_DeleteNURBSCone(This,szFullName)	\
    (This)->lpVtbl -> DeleteNURBSCone(This,szFullName)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcNURBSCone_CreateNURBSCone_Proxy( 
    IRcNURBSCone * This,
    /* [in] */ RtDouble radius1,
    /* [in] */ RtDouble radius2,
    /* [in] */ RtDouble height,
    /* [in] */ BSTR name,
    /* [out] */ IRsNode **pObj);


void __RPC_STUB IRcNURBSCone_CreateNURBSCone_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRcNURBSCone_DeleteNURBSCone_Proxy( 
    IRcNURBSCone * This,
    /* [in] */ BSTR szFullName);


void __RPC_STUB IRcNURBSCone_DeleteNURBSCone_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcNURBSCone_INTERFACE_DEFINED__ */


#ifndef __IRcMatManagerAdjust_INTERFACE_DEFINED__
#define __IRcMatManagerAdjust_INTERFACE_DEFINED__

/* interface IRcMatManagerAdjust */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcMatManagerAdjust;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("164B8E4F-3950-4823-8C84-C87765E81264")
    IRcMatManagerAdjust : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcMatManagerAdjustVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcMatManagerAdjust * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcMatManagerAdjust * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcMatManagerAdjust * This);
        
        END_INTERFACE
    } IRcMatManagerAdjustVtbl;

    interface IRcMatManagerAdjust
    {
        CONST_VTBL struct IRcMatManagerAdjustVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcMatManagerAdjust_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcMatManagerAdjust_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcMatManagerAdjust_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcMatManagerAdjust_INTERFACE_DEFINED__ */


#ifndef __IRcCheckMatLists_INTERFACE_DEFINED__
#define __IRcCheckMatLists_INTERFACE_DEFINED__

/* interface IRcCheckMatLists */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcCheckMatLists;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4CD5A9A0-EAB7-4aaf-A75E-95433D2E9A44")
    IRcCheckMatLists : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcCheckMatListsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcCheckMatLists * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcCheckMatLists * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcCheckMatLists * This);
        
        END_INTERFACE
    } IRcCheckMatListsVtbl;

    interface IRcCheckMatLists
    {
        CONST_VTBL struct IRcCheckMatListsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcCheckMatLists_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcCheckMatLists_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcCheckMatLists_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcCheckMatLists_INTERFACE_DEFINED__ */


#ifndef __IRiSpaceCommand_INTERFACE_DEFINED__
#define __IRiSpaceCommand_INTERFACE_DEFINED__

/* interface IRiSpaceCommand */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IRiSpaceCommand;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E7EEB222-C309-4F53-9937-6B46894D031B")
    IRiSpaceCommand : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE NewScene( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Select( 
            /* [in] */ BSTR name) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Unselect( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DisplayAll( void) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Sphere( 
            /* [in] */ RtDouble dRadius,
            /* [in] */ RtUlong latitude,
            /* [in] */ RtUlong longitude,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Torus( 
            /* [in] */ RtDouble dRadius,
            /* [in] */ RtUlong latitude,
            /* [in] */ RtUlong longitude,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Cube( 
            /* [in] */ VARIANT cx,
            /* [in] */ VARIANT cy,
            /* [in] */ VARIANT cz,
            /* [in] */ VARIANT rcx,
            /* [in] */ VARIANT rcy,
            /* [in] */ VARIANT rcz,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Polygon3D( 
            /* [in] */ VARIANT size,
            /* [in] */ VARIANT res,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_CurrentScene( 
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ApplyDeform( 
            /* [in] */ VARIANT ObjName,
            /* [in] */ BSTR deformType,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ConnectOCTreeToSpace( 
            /* [in] */ BSTR bstrSpaceName) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NURBSCube( 
            /* [in] */ VARIANT cx,
            /* [in] */ VARIANT cy,
            /* [in] */ VARIANT cz,
            /* [in] */ VARIANT sx,
            /* [in] */ VARIANT sy,
            /* [in] */ VARIANT sz,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NURBSSphere( 
            /* [in] */ VARIANT radius,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NURBSTorus( 
            /* [in] */ VARIANT radius1,
            /* [in] */ VARIANT radius2,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NURBSCone( 
            /* [in] */ VARIANT radius1,
            /* [in] */ VARIANT radius2,
            /* [in] */ VARIANT height,
            /* [retval][out] */ BSTR *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AdjustMatManager( 
            /* [in] */ BSTR bstrObjName,
            /* [in] */ RtDWORD dwNumCons) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveScene( 
            /* [in] */ BSTR bszSceneFileName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadScene( 
            /* [in] */ BSTR bszSceneFileName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RemEulerTrans( 
            /* [in] */ BSTR bstrName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ConvertToMatList( 
            /* [in] */ BSTR bstrEncapsName,
            /* [in] */ BSTR bstrActiveClass) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMeshVolume( 
            /* [in] */ BSTR bstrName,
            /* [out] */ VARIANT *pvCentre,
            /* [retval][out] */ float *fVolume) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AutoRunActivities( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE EnableCollision( 
            /* [in] */ BSTR bstrObjName,
            /* [in] */ BOOL bEnable) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_NodeMatrixElement( 
            /* [in] */ BSTR szNodeName,
            /* [in] */ BSTR szElemName,
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_NodeMatrixElement( 
            /* [in] */ BSTR szNodeName,
            /* [in] */ BSTR szElemName,
            /* [in] */ VARIANT newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CheckMatLists( 
            /* [in] */ BSTR bstrEncapsName,
            /* [defaultvalue][in] */ VARIANT_BOOL vFix = 0) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SceneHasChanged( 
            /* [in] */ VARIANT_BOOL bSceneHasChanged) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetVolume( 
            /* [in] */ BSTR bstrName,
            /* [retval][out] */ float *fVolume) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetCenter( 
            /* [in] */ BSTR bstrName,
            /* [in] */ RtBool bWorld,
            /* [retval][out] */ VARIANT *pvCentre) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBoundingBox( 
            /* [in] */ BSTR bstrName,
            /* [retval][out] */ VARIANT *pvBox) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateMeshFnSet( 
            /* [in] */ VARIANT vtMesh,
            /* [retval][out] */ VARIANT *ppMeshSet) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRiSpaceCommandVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRiSpaceCommand * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRiSpaceCommand * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRiSpaceCommand * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRiSpaceCommand * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRiSpaceCommand * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRiSpaceCommand * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRiSpaceCommand * 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 *NewScene )( 
            IRiSpaceCommand * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Select )( 
            IRiSpaceCommand * This,
            /* [in] */ BSTR name);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Unselect )( 
            IRiSpaceCommand * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DisplayAll )( 
            IRiSpaceCommand * This);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Sphere )( 
            IRiSpaceCommand * This,
            /* [in] */ RtDouble dRadius,
            /* [in] */ RtUlong latitude,
            /* [in] */ RtUlong longitude,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Torus )( 
            IRiSpaceCommand * This,
            /* [in] */ RtDouble dRadius,
            /* [in] */ RtUlong latitude,
            /* [in] */ RtUlong longitude,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Cube )( 
            IRiSpaceCommand * This,
            /* [in] */ VARIANT cx,
            /* [in] */ VARIANT cy,
            /* [in] */ VARIANT cz,
            /* [in] */ VARIANT rcx,
            /* [in] */ VARIANT rcy,
            /* [in] */ VARIANT rcz,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Polygon3D )( 
            IRiSpaceCommand * This,
            /* [in] */ VARIANT size,
            /* [in] */ VARIANT res,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_CurrentScene )( 
            IRiSpaceCommand * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ApplyDeform )( 
            IRiSpaceCommand * This,
            /* [in] */ VARIANT ObjName,
            /* [in] */ BSTR deformType,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ConnectOCTreeToSpace )( 
            IRiSpaceCommand * This,
            /* [in] */ BSTR bstrSpaceName);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NURBSCube )( 
            IRiSpaceCommand * This,
            /* [in] */ VARIANT cx,
            /* [in] */ VARIANT cy,
            /* [in] */ VARIANT cz,
            /* [in] */ VARIANT sx,
            /* [in] */ VARIANT sy,
            /* [in] */ VARIANT sz,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NURBSSphere )( 
            IRiSpaceCommand * This,
            /* [in] */ VARIANT radius,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NURBSTorus )( 
            IRiSpaceCommand * This,
            /* [in] */ VARIANT radius1,
            /* [in] */ VARIANT radius2,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NURBSCone )( 
            IRiSpaceCommand * This,
            /* [in] */ VARIANT radius1,
            /* [in] */ VARIANT radius2,
            /* [in] */ VARIANT height,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AdjustMatManager )( 
            IRiSpaceCommand * This,
            /* [in] */ BSTR bstrObjName,
            /* [in] */ RtDWORD dwNumCons);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveScene )( 
            IRiSpaceCommand * This,
            /* [in] */ BSTR bszSceneFileName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadScene )( 
            IRiSpaceCommand * This,
            /* [in] */ BSTR bszSceneFileName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RemEulerTrans )( 
            IRiSpaceCommand * This,
            /* [in] */ BSTR bstrName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ConvertToMatList )( 
            IRiSpaceCommand * This,
            /* [in] */ BSTR bstrEncapsName,
            /* [in] */ BSTR bstrActiveClass);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMeshVolume )( 
            IRiSpaceCommand * This,
            /* [in] */ BSTR bstrName,
            /* [out] */ VARIANT *pvCentre,
            /* [retval][out] */ float *fVolume);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AutoRunActivities )( 
            IRiSpaceCommand * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *EnableCollision )( 
            IRiSpaceCommand * This,
            /* [in] */ BSTR bstrObjName,
            /* [in] */ BOOL bEnable);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_NodeMatrixElement )( 
            IRiSpaceCommand * This,
            /* [in] */ BSTR szNodeName,
            /* [in] */ BSTR szElemName,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_NodeMatrixElement )( 
            IRiSpaceCommand * This,
            /* [in] */ BSTR szNodeName,
            /* [in] */ BSTR szElemName,
            /* [in] */ VARIANT newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CheckMatLists )( 
            IRiSpaceCommand * This,
            /* [in] */ BSTR bstrEncapsName,
            /* [defaultvalue][in] */ VARIANT_BOOL vFix);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SceneHasChanged )( 
            IRiSpaceCommand * This,
            /* [in] */ VARIANT_BOOL bSceneHasChanged);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetVolume )( 
            IRiSpaceCommand * This,
            /* [in] */ BSTR bstrName,
            /* [retval][out] */ float *fVolume);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetCenter )( 
            IRiSpaceCommand * This,
            /* [in] */ BSTR bstrName,
            /* [in] */ RtBool bWorld,
            /* [retval][out] */ VARIANT *pvCentre);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoundingBox )( 
            IRiSpaceCommand * This,
            /* [in] */ BSTR bstrName,
            /* [retval][out] */ VARIANT *pvBox);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateMeshFnSet )( 
            IRiSpaceCommand * This,
            /* [in] */ VARIANT vtMesh,
            /* [retval][out] */ VARIANT *ppMeshSet);
        
        END_INTERFACE
    } IRiSpaceCommandVtbl;

    interface IRiSpaceCommand
    {
        CONST_VTBL struct IRiSpaceCommandVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRiSpaceCommand_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRiSpaceCommand_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRiSpaceCommand_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRiSpaceCommand_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRiSpaceCommand_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRiSpaceCommand_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRiSpaceCommand_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRiSpaceCommand_NewScene(This)	\
    (This)->lpVtbl -> NewScene(This)

#define IRiSpaceCommand_Select(This,name)	\
    (This)->lpVtbl -> Select(This,name)

#define IRiSpaceCommand_Unselect(This)	\
    (This)->lpVtbl -> Unselect(This)

#define IRiSpaceCommand_DisplayAll(This)	\
    (This)->lpVtbl -> DisplayAll(This)

#define IRiSpaceCommand_get_Sphere(This,dRadius,latitude,longitude,pVal)	\
    (This)->lpVtbl -> get_Sphere(This,dRadius,latitude,longitude,pVal)

#define IRiSpaceCommand_get_Torus(This,dRadius,latitude,longitude,pVal)	\
    (This)->lpVtbl -> get_Torus(This,dRadius,latitude,longitude,pVal)

#define IRiSpaceCommand_get_Cube(This,cx,cy,cz,rcx,rcy,rcz,pVal)	\
    (This)->lpVtbl -> get_Cube(This,cx,cy,cz,rcx,rcy,rcz,pVal)

#define IRiSpaceCommand_get_Polygon3D(This,size,res,pVal)	\
    (This)->lpVtbl -> get_Polygon3D(This,size,res,pVal)

#define IRiSpaceCommand_get_CurrentScene(This,pVal)	\
    (This)->lpVtbl -> get_CurrentScene(This,pVal)

#define IRiSpaceCommand_get_ApplyDeform(This,ObjName,deformType,pVal)	\
    (This)->lpVtbl -> get_ApplyDeform(This,ObjName,deformType,pVal)

#define IRiSpaceCommand_ConnectOCTreeToSpace(This,bstrSpaceName)	\
    (This)->lpVtbl -> ConnectOCTreeToSpace(This,bstrSpaceName)

#define IRiSpaceCommand_get_NURBSCube(This,cx,cy,cz,sx,sy,sz,pVal)	\
    (This)->lpVtbl -> get_NURBSCube(This,cx,cy,cz,sx,sy,sz,pVal)

#define IRiSpaceCommand_get_NURBSSphere(This,radius,pVal)	\
    (This)->lpVtbl -> get_NURBSSphere(This,radius,pVal)

#define IRiSpaceCommand_get_NURBSTorus(This,radius1,radius2,pVal)	\
    (This)->lpVtbl -> get_NURBSTorus(This,radius1,radius2,pVal)

#define IRiSpaceCommand_get_NURBSCone(This,radius1,radius2,height,pVal)	\
    (This)->lpVtbl -> get_NURBSCone(This,radius1,radius2,height,pVal)

#define IRiSpaceCommand_AdjustMatManager(This,bstrObjName,dwNumCons)	\
    (This)->lpVtbl -> AdjustMatManager(This,bstrObjName,dwNumCons)

#define IRiSpaceCommand_SaveScene(This,bszSceneFileName)	\
    (This)->lpVtbl -> SaveScene(This,bszSceneFileName)

#define IRiSpaceCommand_LoadScene(This,bszSceneFileName)	\
    (This)->lpVtbl -> LoadScene(This,bszSceneFileName)

#define IRiSpaceCommand_RemEulerTrans(This,bstrName)	\
    (This)->lpVtbl -> RemEulerTrans(This,bstrName)

#define IRiSpaceCommand_ConvertToMatList(This,bstrEncapsName,bstrActiveClass)	\
    (This)->lpVtbl -> ConvertToMatList(This,bstrEncapsName,bstrActiveClass)

#define IRiSpaceCommand_GetMeshVolume(This,bstrName,pvCentre,fVolume)	\
    (This)->lpVtbl -> GetMeshVolume(This,bstrName,pvCentre,fVolume)

#define IRiSpaceCommand_AutoRunActivities(This)	\
    (This)->lpVtbl -> AutoRunActivities(This)

#define IRiSpaceCommand_EnableCollision(This,bstrObjName,bEnable)	\
    (This)->lpVtbl -> EnableCollision(This,bstrObjName,bEnable)

#define IRiSpaceCommand_get_NodeMatrixElement(This,szNodeName,szElemName,pVal)	\
    (This)->lpVtbl -> get_NodeMatrixElement(This,szNodeName,szElemName,pVal)

#define IRiSpaceCommand_put_NodeMatrixElement(This,szNodeName,szElemName,newVal)	\
    (This)->lpVtbl -> put_NodeMatrixElement(This,szNodeName,szElemName,newVal)

#define IRiSpaceCommand_CheckMatLists(This,bstrEncapsName,vFix)	\
    (This)->lpVtbl -> CheckMatLists(This,bstrEncapsName,vFix)

#define IRiSpaceCommand_SceneHasChanged(This,bSceneHasChanged)	\
    (This)->lpVtbl -> SceneHasChanged(This,bSceneHasChanged)

#define IRiSpaceCommand_GetVolume(This,bstrName,fVolume)	\
    (This)->lpVtbl -> GetVolume(This,bstrName,fVolume)

#define IRiSpaceCommand_GetCenter(This,bstrName,bWorld,pvCentre)	\
    (This)->lpVtbl -> GetCenter(This,bstrName,bWorld,pvCentre)

#define IRiSpaceCommand_GetBoundingBox(This,bstrName,pvBox)	\
    (This)->lpVtbl -> GetBoundingBox(This,bstrName,pvBox)

#define IRiSpaceCommand_CreateMeshFnSet(This,vtMesh,ppMeshSet)	\
    (This)->lpVtbl -> CreateMeshFnSet(This,vtMesh,ppMeshSet)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_NewScene_Proxy( 
    IRiSpaceCommand * This);


void __RPC_STUB IRiSpaceCommand_NewScene_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_Select_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ BSTR name);


void __RPC_STUB IRiSpaceCommand_Select_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_Unselect_Proxy( 
    IRiSpaceCommand * This);


void __RPC_STUB IRiSpaceCommand_Unselect_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_DisplayAll_Proxy( 
    IRiSpaceCommand * This);


void __RPC_STUB IRiSpaceCommand_DisplayAll_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_get_Sphere_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ RtDouble dRadius,
    /* [in] */ RtUlong latitude,
    /* [in] */ RtUlong longitude,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB IRiSpaceCommand_get_Sphere_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_get_Torus_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ RtDouble dRadius,
    /* [in] */ RtUlong latitude,
    /* [in] */ RtUlong longitude,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB IRiSpaceCommand_get_Torus_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_get_Cube_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ VARIANT cx,
    /* [in] */ VARIANT cy,
    /* [in] */ VARIANT cz,
    /* [in] */ VARIANT rcx,
    /* [in] */ VARIANT rcy,
    /* [in] */ VARIANT rcz,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB IRiSpaceCommand_get_Cube_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_get_Polygon3D_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ VARIANT size,
    /* [in] */ VARIANT res,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB IRiSpaceCommand_get_Polygon3D_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_get_CurrentScene_Proxy( 
    IRiSpaceCommand * This,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB IRiSpaceCommand_get_CurrentScene_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_get_ApplyDeform_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ VARIANT ObjName,
    /* [in] */ BSTR deformType,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB IRiSpaceCommand_get_ApplyDeform_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_ConnectOCTreeToSpace_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ BSTR bstrSpaceName);


void __RPC_STUB IRiSpaceCommand_ConnectOCTreeToSpace_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_get_NURBSCube_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ VARIANT cx,
    /* [in] */ VARIANT cy,
    /* [in] */ VARIANT cz,
    /* [in] */ VARIANT sx,
    /* [in] */ VARIANT sy,
    /* [in] */ VARIANT sz,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB IRiSpaceCommand_get_NURBSCube_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_get_NURBSSphere_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ VARIANT radius,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB IRiSpaceCommand_get_NURBSSphere_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_get_NURBSTorus_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ VARIANT radius1,
    /* [in] */ VARIANT radius2,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB IRiSpaceCommand_get_NURBSTorus_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_get_NURBSCone_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ VARIANT radius1,
    /* [in] */ VARIANT radius2,
    /* [in] */ VARIANT height,
    /* [retval][out] */ BSTR *pVal);


void __RPC_STUB IRiSpaceCommand_get_NURBSCone_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_AdjustMatManager_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ BSTR bstrObjName,
    /* [in] */ RtDWORD dwNumCons);


void __RPC_STUB IRiSpaceCommand_AdjustMatManager_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_SaveScene_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ BSTR bszSceneFileName);


void __RPC_STUB IRiSpaceCommand_SaveScene_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_LoadScene_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ BSTR bszSceneFileName);


void __RPC_STUB IRiSpaceCommand_LoadScene_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_RemEulerTrans_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ BSTR bstrName);


void __RPC_STUB IRiSpaceCommand_RemEulerTrans_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_ConvertToMatList_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ BSTR bstrEncapsName,
    /* [in] */ BSTR bstrActiveClass);


void __RPC_STUB IRiSpaceCommand_ConvertToMatList_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_GetMeshVolume_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ BSTR bstrName,
    /* [out] */ VARIANT *pvCentre,
    /* [retval][out] */ float *fVolume);


void __RPC_STUB IRiSpaceCommand_GetMeshVolume_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_AutoRunActivities_Proxy( 
    IRiSpaceCommand * This);


void __RPC_STUB IRiSpaceCommand_AutoRunActivities_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_EnableCollision_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ BSTR bstrObjName,
    /* [in] */ BOOL bEnable);


void __RPC_STUB IRiSpaceCommand_EnableCollision_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_get_NodeMatrixElement_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ BSTR szNodeName,
    /* [in] */ BSTR szElemName,
    /* [retval][out] */ VARIANT *pVal);


void __RPC_STUB IRiSpaceCommand_get_NodeMatrixElement_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_put_NodeMatrixElement_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ BSTR szNodeName,
    /* [in] */ BSTR szElemName,
    /* [in] */ VARIANT newVal);


void __RPC_STUB IRiSpaceCommand_put_NodeMatrixElement_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_CheckMatLists_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ BSTR bstrEncapsName,
    /* [defaultvalue][in] */ VARIANT_BOOL vFix);


void __RPC_STUB IRiSpaceCommand_CheckMatLists_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_SceneHasChanged_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ VARIANT_BOOL bSceneHasChanged);


void __RPC_STUB IRiSpaceCommand_SceneHasChanged_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_GetVolume_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ BSTR bstrName,
    /* [retval][out] */ float *fVolume);


void __RPC_STUB IRiSpaceCommand_GetVolume_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_GetCenter_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ BSTR bstrName,
    /* [in] */ RtBool bWorld,
    /* [retval][out] */ VARIANT *pvCentre);


void __RPC_STUB IRiSpaceCommand_GetCenter_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_GetBoundingBox_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ BSTR bstrName,
    /* [retval][out] */ VARIANT *pvBox);


void __RPC_STUB IRiSpaceCommand_GetBoundingBox_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiSpaceCommand_CreateMeshFnSet_Proxy( 
    IRiSpaceCommand * This,
    /* [in] */ VARIANT vtMesh,
    /* [retval][out] */ VARIANT *ppMeshSet);


void __RPC_STUB IRiSpaceCommand_CreateMeshFnSet_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRiSpaceCommand_INTERFACE_DEFINED__ */


#ifndef __IRnExpandInMatrix_INTERFACE_DEFINED__
#define __IRnExpandInMatrix_INTERFACE_DEFINED__

/* interface IRnExpandInMatrix */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnExpandInMatrix;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B3A7CCDD-AE9A-47B0-8743-DD76FC94D2B3")
    IRnExpandInMatrix : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnExpandInMatrixVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnExpandInMatrix * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnExpandInMatrix * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnExpandInMatrix * This);
        
        END_INTERFACE
    } IRnExpandInMatrixVtbl;

    interface IRnExpandInMatrix
    {
        CONST_VTBL struct IRnExpandInMatrixVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnExpandInMatrix_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnExpandInMatrix_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnExpandInMatrix_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnExpandInMatrix_INTERFACE_DEFINED__ */


#ifndef __IRnArrayObjInfo_INTERFACE_DEFINED__
#define __IRnArrayObjInfo_INTERFACE_DEFINED__

/* interface IRnArrayObjInfo */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnArrayObjInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D79B2994-C8BF-4b89-83AB-CE60BBB99C58")
    IRnArrayObjInfo : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnArrayObjInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnArrayObjInfo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnArrayObjInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnArrayObjInfo * This);
        
        END_INTERFACE
    } IRnArrayObjInfoVtbl;

    interface IRnArrayObjInfo
    {
        CONST_VTBL struct IRnArrayObjInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnArrayObjInfo_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnArrayObjInfo_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnArrayObjInfo_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnArrayObjInfo_INTERFACE_DEFINED__ */


#ifndef __IRnFacetizeTriangles_INTERFACE_DEFINED__
#define __IRnFacetizeTriangles_INTERFACE_DEFINED__

/* interface IRnFacetizeTriangles */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnFacetizeTriangles;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3D22C6C0-675F-40f1-B936-D78203FE1CFA")
    IRnFacetizeTriangles : public IRsObject
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnFacetizeTrianglesVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnFacetizeTriangles * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnFacetizeTriangles * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnFacetizeTriangles * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRnFacetizeTriangles * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRnFacetizeTriangles * This,
            /* [retval][out] */ BSTR *pVal);
        
        END_INTERFACE
    } IRnFacetizeTrianglesVtbl;

    interface IRnFacetizeTriangles
    {
        CONST_VTBL struct IRnFacetizeTrianglesVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnFacetizeTriangles_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnFacetizeTriangles_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnFacetizeTriangles_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnFacetizeTriangles_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRnFacetizeTriangles_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnFacetizeTriangles_INTERFACE_DEFINED__ */


#ifndef __IRnLattice_INTERFACE_DEFINED__
#define __IRnLattice_INTERFACE_DEFINED__

/* interface IRnLattice */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnLattice;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("C088500F-127C-4db8-A4F7-3C15AE54027E")
    IRnLattice : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMesh( 
            /* [in] */ IRdMesh *pMesh) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnLatticeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnLattice * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnLattice * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnLattice * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMesh )( 
            IRnLattice * This,
            /* [in] */ IRdMesh *pMesh);
        
        END_INTERFACE
    } IRnLatticeVtbl;

    interface IRnLattice
    {
        CONST_VTBL struct IRnLatticeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnLattice_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnLattice_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnLattice_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnLattice_SetMesh(This,pMesh)	\
    (This)->lpVtbl -> SetMesh(This,pMesh)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnLattice_SetMesh_Proxy( 
    IRnLattice * This,
    /* [in] */ IRdMesh *pMesh);


void __RPC_STUB IRnLattice_SetMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRnLattice_INTERFACE_DEFINED__ */


#ifndef __IRnLayersInfo_INTERFACE_DEFINED__
#define __IRnLayersInfo_INTERFACE_DEFINED__

/* interface IRnLayersInfo */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnLayersInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D2666F0A-BF44-43a7-8784-CB445393B3AD")
    IRnLayersInfo : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnLayersInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnLayersInfo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnLayersInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnLayersInfo * This);
        
        END_INTERFACE
    } IRnLayersInfoVtbl;

    interface IRnLayersInfo
    {
        CONST_VTBL struct IRnLayersInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnLayersInfo_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnLayersInfo_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnLayersInfo_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnLayersInfo_INTERFACE_DEFINED__ */


#ifndef __IRnRenderAttributes_INTERFACE_DEFINED__
#define __IRnRenderAttributes_INTERFACE_DEFINED__

/* interface IRnRenderAttributes */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnRenderAttributes;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A2FB6D5F-791F-4fe5-A24A-6468054AEB8F")
    IRnRenderAttributes : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnRenderAttributesVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnRenderAttributes * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnRenderAttributes * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnRenderAttributes * This);
        
        END_INTERFACE
    } IRnRenderAttributesVtbl;

    interface IRnRenderAttributes
    {
        CONST_VTBL struct IRnRenderAttributesVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnRenderAttributes_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnRenderAttributes_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnRenderAttributes_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnRenderAttributes_INTERFACE_DEFINED__ */


#ifndef __IRnRenderAttributesLayer_INTERFACE_DEFINED__
#define __IRnRenderAttributesLayer_INTERFACE_DEFINED__

/* interface IRnRenderAttributesLayer */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnRenderAttributesLayer;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A38C50DE-1787-4a67-823E-33C6C800136C")
    IRnRenderAttributesLayer : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnRenderAttributesLayerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnRenderAttributesLayer * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnRenderAttributesLayer * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnRenderAttributesLayer * This);
        
        END_INTERFACE
    } IRnRenderAttributesLayerVtbl;

    interface IRnRenderAttributesLayer
    {
        CONST_VTBL struct IRnRenderAttributesLayerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnRenderAttributesLayer_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnRenderAttributesLayer_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnRenderAttributesLayer_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnRenderAttributesLayer_INTERFACE_DEFINED__ */


#ifndef __IRnRenderAttributesObject_INTERFACE_DEFINED__
#define __IRnRenderAttributesObject_INTERFACE_DEFINED__

/* interface IRnRenderAttributesObject */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnRenderAttributesObject;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A171FFDA-5582-460d-AC19-E233E2E5BE66")
    IRnRenderAttributesObject : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnRenderAttributesObjectVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnRenderAttributesObject * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnRenderAttributesObject * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnRenderAttributesObject * This);
        
        END_INTERFACE
    } IRnRenderAttributesObjectVtbl;

    interface IRnRenderAttributesObject
    {
        CONST_VTBL struct IRnRenderAttributesObjectVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnRenderAttributesObject_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnRenderAttributesObject_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnRenderAttributesObject_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnRenderAttributesObject_INTERFACE_DEFINED__ */


#ifndef __IRnMaterial_INTERFACE_DEFINED__
#define __IRnMaterial_INTERFACE_DEFINED__

/* interface IRnMaterial */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnMaterial;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1ADF4B0E-BC5F-420A-BC35-D788CA906279")
    IRnMaterial : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnMaterialVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnMaterial * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnMaterial * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnMaterial * This);
        
        END_INTERFACE
    } IRnMaterialVtbl;

    interface IRnMaterial
    {
        CONST_VTBL struct IRnMaterialVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnMaterial_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnMaterial_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnMaterial_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnMaterial_INTERFACE_DEFINED__ */


#ifndef __IRsFileTypeRsScn_INTERFACE_DEFINED__
#define __IRsFileTypeRsScn_INTERFACE_DEFINED__

/* interface IRsFileTypeRsScn */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsFileTypeRsScn;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6AFEA20F-8562-413b-9E65-6D7EC38B5E83")
    IRsFileTypeRsScn : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsFileTypeRsScnVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsFileTypeRsScn * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsFileTypeRsScn * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsFileTypeRsScn * This);
        
        END_INTERFACE
    } IRsFileTypeRsScnVtbl;

    interface IRsFileTypeRsScn
    {
        CONST_VTBL struct IRsFileTypeRsScnVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsFileTypeRsScn_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsFileTypeRsScn_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsFileTypeRsScn_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsFileTypeRsScn_INTERFACE_DEFINED__ */


#ifndef __IRsFileTypeHair_INTERFACE_DEFINED__
#define __IRsFileTypeHair_INTERFACE_DEFINED__

/* interface IRsFileTypeHair */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsFileTypeHair;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8F35C4B1-F5F7-4d5a-B2DC-75920DC82320")
    IRsFileTypeHair : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsFileTypeHairVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsFileTypeHair * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsFileTypeHair * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsFileTypeHair * This);
        
        END_INTERFACE
    } IRsFileTypeHairVtbl;

    interface IRsFileTypeHair
    {
        CONST_VTBL struct IRsFileTypeHairVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsFileTypeHair_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsFileTypeHair_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsFileTypeHair_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsFileTypeHair_INTERFACE_DEFINED__ */


#ifndef __IRsSpace3DNodeFactory_INTERFACE_DEFINED__
#define __IRsSpace3DNodeFactory_INTERFACE_DEFINED__

/* interface IRsSpace3DNodeFactory */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsSpace3DNodeFactory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("41B27817-07D1-4C98-A3BB-BBE6F014D06B")
    IRsSpace3DNodeFactory : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsSpace3DNodeFactoryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsSpace3DNodeFactory * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsSpace3DNodeFactory * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsSpace3DNodeFactory * This);
        
        END_INTERFACE
    } IRsSpace3DNodeFactoryVtbl;

    interface IRsSpace3DNodeFactory
    {
        CONST_VTBL struct IRsSpace3DNodeFactoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsSpace3DNodeFactory_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsSpace3DNodeFactory_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsSpace3DNodeFactory_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsSpace3DNodeFactory_INTERFACE_DEFINED__ */


#ifndef __IRsSpace3DCmdFactory_INTERFACE_DEFINED__
#define __IRsSpace3DCmdFactory_INTERFACE_DEFINED__

/* interface IRsSpace3DCmdFactory */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsSpace3DCmdFactory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B9C8B78C-2977-445F-A578-D8D31181E416")
    IRsSpace3DCmdFactory : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsSpace3DCmdFactoryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsSpace3DCmdFactory * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsSpace3DCmdFactory * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsSpace3DCmdFactory * This);
        
        END_INTERFACE
    } IRsSpace3DCmdFactoryVtbl;

    interface IRsSpace3DCmdFactory
    {
        CONST_VTBL struct IRsSpace3DCmdFactoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsSpace3DCmdFactory_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsSpace3DCmdFactory_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsSpace3DCmdFactory_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsSpace3DCmdFactory_INTERFACE_DEFINED__ */


#ifndef __IRsSpace3DDataObjFactory_INTERFACE_DEFINED__
#define __IRsSpace3DDataObjFactory_INTERFACE_DEFINED__

/* interface IRsSpace3DDataObjFactory */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsSpace3DDataObjFactory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3C7CB907-B311-4224-81C7-5FA978EA7F3C")
    IRsSpace3DDataObjFactory : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsSpace3DDataObjFactoryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsSpace3DDataObjFactory * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsSpace3DDataObjFactory * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsSpace3DDataObjFactory * This);
        
        END_INTERFACE
    } IRsSpace3DDataObjFactoryVtbl;

    interface IRsSpace3DDataObjFactory
    {
        CONST_VTBL struct IRsSpace3DDataObjFactoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsSpace3DDataObjFactory_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsSpace3DDataObjFactory_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsSpace3DDataObjFactory_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsSpace3DDataObjFactory_INTERFACE_DEFINED__ */


#ifndef __IRsLightDetector_INTERFACE_DEFINED__
#define __IRsLightDetector_INTERFACE_DEFINED__

/* interface IRsLightDetector */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsLightDetector;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("86823BCF-09DF-489a-97B4-1DAEA0A59B1F")
    IRsLightDetector : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsLightDetectorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsLightDetector * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsLightDetector * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsLightDetector * This);
        
        END_INTERFACE
    } IRsLightDetectorVtbl;

    interface IRsLightDetector
    {
        CONST_VTBL struct IRsLightDetectorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsLightDetector_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsLightDetector_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsLightDetector_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsLightDetector_INTERFACE_DEFINED__ */


#ifndef __IRsMeshDetector_INTERFACE_DEFINED__
#define __IRsMeshDetector_INTERFACE_DEFINED__

/* interface IRsMeshDetector */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsMeshDetector;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FEC6577A-9D7E-4B14-9ACD-4A504D57E977")
    IRsMeshDetector : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsMeshDetectorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsMeshDetector * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsMeshDetector * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsMeshDetector * This);
        
        END_INTERFACE
    } IRsMeshDetectorVtbl;

    interface IRsMeshDetector
    {
        CONST_VTBL struct IRsMeshDetectorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsMeshDetector_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsMeshDetector_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsMeshDetector_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsMeshDetector_INTERFACE_DEFINED__ */


#ifndef __IRsCameraDetector_INTERFACE_DEFINED__
#define __IRsCameraDetector_INTERFACE_DEFINED__

/* interface IRsCameraDetector */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsCameraDetector;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4DFC89D0-2450-4c76-8D12-E90C809B5EDC")
    IRsCameraDetector : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsCameraDetectorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsCameraDetector * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsCameraDetector * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsCameraDetector * This);
        
        END_INTERFACE
    } IRsCameraDetectorVtbl;

    interface IRsCameraDetector
    {
        CONST_VTBL struct IRsCameraDetectorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsCameraDetector_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsCameraDetector_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsCameraDetector_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsCameraDetector_INTERFACE_DEFINED__ */


#ifndef __IRsSkeletonDetector_INTERFACE_DEFINED__
#define __IRsSkeletonDetector_INTERFACE_DEFINED__

/* interface IRsSkeletonDetector */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsSkeletonDetector;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("C085FA9B-3F8A-4c73-973C-659A3F2E4C89")
    IRsSkeletonDetector : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsSkeletonDetectorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsSkeletonDetector * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsSkeletonDetector * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsSkeletonDetector * This);
        
        END_INTERFACE
    } IRsSkeletonDetectorVtbl;

    interface IRsSkeletonDetector
    {
        CONST_VTBL struct IRsSkeletonDetectorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsSkeletonDetector_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsSkeletonDetector_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsSkeletonDetector_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsSkeletonDetector_INTERFACE_DEFINED__ */


#ifndef __IRsHairDetector_INTERFACE_DEFINED__
#define __IRsHairDetector_INTERFACE_DEFINED__

/* interface IRsHairDetector */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsHairDetector;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4EDCED6D-D26E-4a70-87E6-D9BB8638E251")
    IRsHairDetector : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsHairDetectorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsHairDetector * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsHairDetector * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsHairDetector * This);
        
        END_INTERFACE
    } IRsHairDetectorVtbl;

    interface IRsHairDetector
    {
        CONST_VTBL struct IRsHairDetectorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsHairDetector_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsHairDetector_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsHairDetector_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsHairDetector_INTERFACE_DEFINED__ */


#ifndef __IRsEncapsulatorDetector_INTERFACE_DEFINED__
#define __IRsEncapsulatorDetector_INTERFACE_DEFINED__

/* interface IRsEncapsulatorDetector */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsEncapsulatorDetector;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BCCB6B3A-A84C-41d7-892F-9A46CB8F4665")
    IRsEncapsulatorDetector : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsEncapsulatorDetectorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsEncapsulatorDetector * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsEncapsulatorDetector * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsEncapsulatorDetector * This);
        
        END_INTERFACE
    } IRsEncapsulatorDetectorVtbl;

    interface IRsEncapsulatorDetector
    {
        CONST_VTBL struct IRsEncapsulatorDetectorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsEncapsulatorDetector_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsEncapsulatorDetector_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsEncapsulatorDetector_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsEncapsulatorDetector_INTERFACE_DEFINED__ */


#ifndef __IRsWindDetector_INTERFACE_DEFINED__
#define __IRsWindDetector_INTERFACE_DEFINED__

/* interface IRsWindDetector */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsWindDetector;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B15921B0-744F-4ef0-BA00-DB474D3EDD2D")
    IRsWindDetector : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsWindDetectorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsWindDetector * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsWindDetector * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsWindDetector * This);
        
        END_INTERFACE
    } IRsWindDetectorVtbl;

    interface IRsWindDetector
    {
        CONST_VTBL struct IRsWindDetectorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsWindDetector_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsWindDetector_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsWindDetector_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsWindDetector_INTERFACE_DEFINED__ */


#ifndef __IRsDefaultTransformManager_INTERFACE_DEFINED__
#define __IRsDefaultTransformManager_INTERFACE_DEFINED__

/* interface IRsDefaultTransformManager */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsDefaultTransformManager;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("55F1029D-0053-4207-8164-8E60838BC39F")
    IRsDefaultTransformManager : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsDefaultTransformManagerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsDefaultTransformManager * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsDefaultTransformManager * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsDefaultTransformManager * This);
        
        END_INTERFACE
    } IRsDefaultTransformManagerVtbl;

    interface IRsDefaultTransformManager
    {
        CONST_VTBL struct IRsDefaultTransformManagerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsDefaultTransformManager_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsDefaultTransformManager_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsDefaultTransformManager_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsDefaultTransformManager_INTERFACE_DEFINED__ */


#ifndef __IRsCameraTransformManager_INTERFACE_DEFINED__
#define __IRsCameraTransformManager_INTERFACE_DEFINED__

/* interface IRsCameraTransformManager */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsCameraTransformManager;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8438843D-4F8A-41fe-A00F-DA1978E804DF")
    IRsCameraTransformManager : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsCameraTransformManagerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsCameraTransformManager * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsCameraTransformManager * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsCameraTransformManager * This);
        
        END_INTERFACE
    } IRsCameraTransformManagerVtbl;

    interface IRsCameraTransformManager
    {
        CONST_VTBL struct IRsCameraTransformManagerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsCameraTransformManager_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsCameraTransformManager_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsCameraTransformManager_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsCameraTransformManager_INTERFACE_DEFINED__ */


#ifndef __IRsSpotlightTransformManager_INTERFACE_DEFINED__
#define __IRsSpotlightTransformManager_INTERFACE_DEFINED__

/* interface IRsSpotlightTransformManager */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsSpotlightTransformManager;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("CBA074FE-381B-4b78-A283-019DCF2C49E2")
    IRsSpotlightTransformManager : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsSpotlightTransformManagerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsSpotlightTransformManager * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsSpotlightTransformManager * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsSpotlightTransformManager * This);
        
        END_INTERFACE
    } IRsSpotlightTransformManagerVtbl;

    interface IRsSpotlightTransformManager
    {
        CONST_VTBL struct IRsSpotlightTransformManagerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsSpotlightTransformManager_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsSpotlightTransformManager_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsSpotlightTransformManager_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsSpotlightTransformManager_INTERFACE_DEFINED__ */


#ifndef __IRsIkTransformManager_INTERFACE_DEFINED__
#define __IRsIkTransformManager_INTERFACE_DEFINED__

/* interface IRsIkTransformManager */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsIkTransformManager;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9067C46A-FCCA-4a51-BB23-B694C7DC8787")
    IRsIkTransformManager : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsIkTransformManagerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsIkTransformManager * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsIkTransformManager * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsIkTransformManager * This);
        
        END_INTERFACE
    } IRsIkTransformManagerVtbl;

    interface IRsIkTransformManager
    {
        CONST_VTBL struct IRsIkTransformManagerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsIkTransformManager_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsIkTransformManager_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsIkTransformManager_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsIkTransformManager_INTERFACE_DEFINED__ */


#ifndef __IRsDefaultBBoxCache_INTERFACE_DEFINED__
#define __IRsDefaultBBoxCache_INTERFACE_DEFINED__

/* interface IRsDefaultBBoxCache */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsDefaultBBoxCache;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8CBEFD35-3B20-464a-B98C-4605D9647007")
    IRsDefaultBBoxCache : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetRootNode( 
            /* [in] */ IRsNode *pRootNode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Validate( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Query( 
            /* [in] */ RtMatrixf *mTrans,
            /* [in] */ RtBoundingBox *bbox) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsDefaultBBoxCacheVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsDefaultBBoxCache * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsDefaultBBoxCache * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsDefaultBBoxCache * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetRootNode )( 
            IRsDefaultBBoxCache * This,
            /* [in] */ IRsNode *pRootNode);
        
        HRESULT ( STDMETHODCALLTYPE *Validate )( 
            IRsDefaultBBoxCache * This);
        
        HRESULT ( STDMETHODCALLTYPE *Query )( 
            IRsDefaultBBoxCache * This,
            /* [in] */ RtMatrixf *mTrans,
            /* [in] */ RtBoundingBox *bbox);
        
        END_INTERFACE
    } IRsDefaultBBoxCacheVtbl;

    interface IRsDefaultBBoxCache
    {
        CONST_VTBL struct IRsDefaultBBoxCacheVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsDefaultBBoxCache_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsDefaultBBoxCache_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsDefaultBBoxCache_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsDefaultBBoxCache_SetRootNode(This,pRootNode)	\
    (This)->lpVtbl -> SetRootNode(This,pRootNode)

#define IRsDefaultBBoxCache_Validate(This)	\
    (This)->lpVtbl -> Validate(This)

#define IRsDefaultBBoxCache_Query(This,mTrans,bbox)	\
    (This)->lpVtbl -> Query(This,mTrans,bbox)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsDefaultBBoxCache_SetRootNode_Proxy( 
    IRsDefaultBBoxCache * This,
    /* [in] */ IRsNode *pRootNode);


void __RPC_STUB IRsDefaultBBoxCache_SetRootNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsDefaultBBoxCache_Validate_Proxy( 
    IRsDefaultBBoxCache * This);


void __RPC_STUB IRsDefaultBBoxCache_Validate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsDefaultBBoxCache_Query_Proxy( 
    IRsDefaultBBoxCache * This,
    /* [in] */ RtMatrixf *mTrans,
    /* [in] */ RtBoundingBox *bbox);


void __RPC_STUB IRsDefaultBBoxCache_Query_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsDefaultBBoxCache_INTERFACE_DEFINED__ */


#ifndef __IRsDefaultCoordSysCache_INTERFACE_DEFINED__
#define __IRsDefaultCoordSysCache_INTERFACE_DEFINED__

/* interface IRsDefaultCoordSysCache */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsDefaultCoordSysCache;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A4C4602D-1D89-4dc9-BD24-72FF20971168")
    IRsDefaultCoordSysCache : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Validate( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Query( 
            /* [in] */ RtMatrixf *mTrans) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetPivotPosition( 
            /* [in] */ RtPoint *pPivotPosition) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetRootNode( 
            /* [in] */ IRsNode *pRootNode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsDefaultCoordSysCacheVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsDefaultCoordSysCache * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsDefaultCoordSysCache * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsDefaultCoordSysCache * This);
        
        HRESULT ( STDMETHODCALLTYPE *Validate )( 
            IRsDefaultCoordSysCache * This);
        
        HRESULT ( STDMETHODCALLTYPE *Query )( 
            IRsDefaultCoordSysCache * This,
            /* [in] */ RtMatrixf *mTrans);
        
        HRESULT ( STDMETHODCALLTYPE *GetPivotPosition )( 
            IRsDefaultCoordSysCache * This,
            /* [in] */ RtPoint *pPivotPosition);
        
        HRESULT ( STDMETHODCALLTYPE *SetRootNode )( 
            IRsDefaultCoordSysCache * This,
            /* [in] */ IRsNode *pRootNode);
        
        END_INTERFACE
    } IRsDefaultCoordSysCacheVtbl;

    interface IRsDefaultCoordSysCache
    {
        CONST_VTBL struct IRsDefaultCoordSysCacheVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsDefaultCoordSysCache_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsDefaultCoordSysCache_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsDefaultCoordSysCache_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsDefaultCoordSysCache_Validate(This)	\
    (This)->lpVtbl -> Validate(This)

#define IRsDefaultCoordSysCache_Query(This,mTrans)	\
    (This)->lpVtbl -> Query(This,mTrans)

#define IRsDefaultCoordSysCache_GetPivotPosition(This,pPivotPosition)	\
    (This)->lpVtbl -> GetPivotPosition(This,pPivotPosition)

#define IRsDefaultCoordSysCache_SetRootNode(This,pRootNode)	\
    (This)->lpVtbl -> SetRootNode(This,pRootNode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsDefaultCoordSysCache_Validate_Proxy( 
    IRsDefaultCoordSysCache * This);


void __RPC_STUB IRsDefaultCoordSysCache_Validate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsDefaultCoordSysCache_Query_Proxy( 
    IRsDefaultCoordSysCache * This,
    /* [in] */ RtMatrixf *mTrans);


void __RPC_STUB IRsDefaultCoordSysCache_Query_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsDefaultCoordSysCache_GetPivotPosition_Proxy( 
    IRsDefaultCoordSysCache * This,
    /* [in] */ RtPoint *pPivotPosition);


void __RPC_STUB IRsDefaultCoordSysCache_GetPivotPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsDefaultCoordSysCache_SetRootNode_Proxy( 
    IRsDefaultCoordSysCache * This,
    /* [in] */ IRsNode *pRootNode);


void __RPC_STUB IRsDefaultCoordSysCache_SetRootNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsDefaultCoordSysCache_INTERFACE_DEFINED__ */


#ifndef __IRsDefaultCoordinatesEvaluator_INTERFACE_DEFINED__
#define __IRsDefaultCoordinatesEvaluator_INTERFACE_DEFINED__

/* interface IRsDefaultCoordinatesEvaluator */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsDefaultCoordinatesEvaluator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("143050C7-C475-4c0e-BE0A-FE3F24FC0F86")
    IRsDefaultCoordinatesEvaluator : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsDefaultCoordinatesEvaluatorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsDefaultCoordinatesEvaluator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsDefaultCoordinatesEvaluator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsDefaultCoordinatesEvaluator * This);
        
        END_INTERFACE
    } IRsDefaultCoordinatesEvaluatorVtbl;

    interface IRsDefaultCoordinatesEvaluator
    {
        CONST_VTBL struct IRsDefaultCoordinatesEvaluatorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsDefaultCoordinatesEvaluator_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsDefaultCoordinatesEvaluator_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsDefaultCoordinatesEvaluator_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsDefaultCoordinatesEvaluator_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1454 */
/* [local] */ 

typedef struct tagRtUVTessPoint
    {
    RtFloat u;
    RtFloat v;
    int wind;
    int border_curve;
    RtBool moved;
    } 	RtUVTessPoint;



extern RPC_IF_HANDLE __MIDL_itf__Space3D_1454_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1454_v0_0_s_ifspec;

#ifndef __IRsUVTesselation_INTERFACE_DEFINED__
#define __IRsUVTesselation_INTERFACE_DEFINED__

/* interface IRsUVTesselation */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsUVTesselation;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8B347B08-5E65-4e73-B65A-C279EDA54F9B")
    IRsUVTesselation : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Clear( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetNumPoints( 
            /* [in] */ RtUlong numPoints) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetNumTriangles( 
            /* [in] */ RtUlong numTriangles) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNumPoints( 
            /* [out] */ RtUlong *pNumPoints) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNumTriangles( 
            /* [out] */ RtUlong *pNumTriangles) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockPoints( 
            /* [out] */ RtUVTessPoint **ppPoints) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockTriangles( 
            /* [out] */ RtTripleIndex **ppTriangles) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnlockPoints( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnlockTriangles( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetTessByPatchTrimCurves( 
            /* [in] */ RtUlong usamples,
            /* [in] */ RtUlong vsamples,
            /* [in] */ IRdNURBSPatch *pPatch) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetEquidistantTessTrimmed( 
            /* [in] */ RtUlong usamples,
            /* [in] */ RtUlong vsamples,
            /* [in] */ IRdNURBSPatch *pPatch) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsUVTesselationVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsUVTesselation * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsUVTesselation * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsUVTesselation * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Clear )( 
            IRsUVTesselation * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetNumPoints )( 
            IRsUVTesselation * This,
            /* [in] */ RtUlong numPoints);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetNumTriangles )( 
            IRsUVTesselation * This,
            /* [in] */ RtUlong numTriangles);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNumPoints )( 
            IRsUVTesselation * This,
            /* [out] */ RtUlong *pNumPoints);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNumTriangles )( 
            IRsUVTesselation * This,
            /* [out] */ RtUlong *pNumTriangles);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockPoints )( 
            IRsUVTesselation * This,
            /* [out] */ RtUVTessPoint **ppPoints);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockTriangles )( 
            IRsUVTesselation * This,
            /* [out] */ RtTripleIndex **ppTriangles);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnlockPoints )( 
            IRsUVTesselation * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnlockTriangles )( 
            IRsUVTesselation * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetTessByPatchTrimCurves )( 
            IRsUVTesselation * This,
            /* [in] */ RtUlong usamples,
            /* [in] */ RtUlong vsamples,
            /* [in] */ IRdNURBSPatch *pPatch);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetEquidistantTessTrimmed )( 
            IRsUVTesselation * This,
            /* [in] */ RtUlong usamples,
            /* [in] */ RtUlong vsamples,
            /* [in] */ IRdNURBSPatch *pPatch);
        
        END_INTERFACE
    } IRsUVTesselationVtbl;

    interface IRsUVTesselation
    {
        CONST_VTBL struct IRsUVTesselationVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsUVTesselation_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsUVTesselation_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsUVTesselation_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsUVTesselation_Clear(This)	\
    (This)->lpVtbl -> Clear(This)

#define IRsUVTesselation_SetNumPoints(This,numPoints)	\
    (This)->lpVtbl -> SetNumPoints(This,numPoints)

#define IRsUVTesselation_SetNumTriangles(This,numTriangles)	\
    (This)->lpVtbl -> SetNumTriangles(This,numTriangles)

#define IRsUVTesselation_GetNumPoints(This,pNumPoints)	\
    (This)->lpVtbl -> GetNumPoints(This,pNumPoints)

#define IRsUVTesselation_GetNumTriangles(This,pNumTriangles)	\
    (This)->lpVtbl -> GetNumTriangles(This,pNumTriangles)

#define IRsUVTesselation_LockPoints(This,ppPoints)	\
    (This)->lpVtbl -> LockPoints(This,ppPoints)

#define IRsUVTesselation_LockTriangles(This,ppTriangles)	\
    (This)->lpVtbl -> LockTriangles(This,ppTriangles)

#define IRsUVTesselation_UnlockPoints(This)	\
    (This)->lpVtbl -> UnlockPoints(This)

#define IRsUVTesselation_UnlockTriangles(This)	\
    (This)->lpVtbl -> UnlockTriangles(This)

#define IRsUVTesselation_SetTessByPatchTrimCurves(This,usamples,vsamples,pPatch)	\
    (This)->lpVtbl -> SetTessByPatchTrimCurves(This,usamples,vsamples,pPatch)

#define IRsUVTesselation_SetEquidistantTessTrimmed(This,usamples,vsamples,pPatch)	\
    (This)->lpVtbl -> SetEquidistantTessTrimmed(This,usamples,vsamples,pPatch)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsUVTesselation_Clear_Proxy( 
    IRsUVTesselation * This);


void __RPC_STUB IRsUVTesselation_Clear_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsUVTesselation_SetNumPoints_Proxy( 
    IRsUVTesselation * This,
    /* [in] */ RtUlong numPoints);


void __RPC_STUB IRsUVTesselation_SetNumPoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsUVTesselation_SetNumTriangles_Proxy( 
    IRsUVTesselation * This,
    /* [in] */ RtUlong numTriangles);


void __RPC_STUB IRsUVTesselation_SetNumTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsUVTesselation_GetNumPoints_Proxy( 
    IRsUVTesselation * This,
    /* [out] */ RtUlong *pNumPoints);


void __RPC_STUB IRsUVTesselation_GetNumPoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsUVTesselation_GetNumTriangles_Proxy( 
    IRsUVTesselation * This,
    /* [out] */ RtUlong *pNumTriangles);


void __RPC_STUB IRsUVTesselation_GetNumTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsUVTesselation_LockPoints_Proxy( 
    IRsUVTesselation * This,
    /* [out] */ RtUVTessPoint **ppPoints);


void __RPC_STUB IRsUVTesselation_LockPoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsUVTesselation_LockTriangles_Proxy( 
    IRsUVTesselation * This,
    /* [out] */ RtTripleIndex **ppTriangles);


void __RPC_STUB IRsUVTesselation_LockTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsUVTesselation_UnlockPoints_Proxy( 
    IRsUVTesselation * This);


void __RPC_STUB IRsUVTesselation_UnlockPoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsUVTesselation_UnlockTriangles_Proxy( 
    IRsUVTesselation * This);


void __RPC_STUB IRsUVTesselation_UnlockTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsUVTesselation_SetTessByPatchTrimCurves_Proxy( 
    IRsUVTesselation * This,
    /* [in] */ RtUlong usamples,
    /* [in] */ RtUlong vsamples,
    /* [in] */ IRdNURBSPatch *pPatch);


void __RPC_STUB IRsUVTesselation_SetTessByPatchTrimCurves_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsUVTesselation_SetEquidistantTessTrimmed_Proxy( 
    IRsUVTesselation * This,
    /* [in] */ RtUlong usamples,
    /* [in] */ RtUlong vsamples,
    /* [in] */ IRdNURBSPatch *pPatch);


void __RPC_STUB IRsUVTesselation_SetEquidistantTessTrimmed_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsUVTesselation_INTERFACE_DEFINED__ */


#ifndef __IRsWindowToolSet_INTERFACE_DEFINED__
#define __IRsWindowToolSet_INTERFACE_DEFINED__

/* interface IRsWindowToolSet */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IRsWindowToolSet;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("AD44C86D-6F39-4B2A-968A-F5254D2ED4F2")
    IRsWindowToolSet : public IDispatch
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsWindowToolSetVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsWindowToolSet * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsWindowToolSet * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsWindowToolSet * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRsWindowToolSet * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRsWindowToolSet * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRsWindowToolSet * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRsWindowToolSet * 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);
        
        END_INTERFACE
    } IRsWindowToolSetVtbl;

    interface IRsWindowToolSet
    {
        CONST_VTBL struct IRsWindowToolSetVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsWindowToolSet_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsWindowToolSet_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsWindowToolSet_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsWindowToolSet_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRsWindowToolSet_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRsWindowToolSet_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRsWindowToolSet_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsWindowToolSet_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1456 */
/* [local] */ 

struct RtVertexSelectionWeight
    {
    RtFloat fWeight;
    RtUlong uOrgElementIndex;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1456_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1456_v0_0_s_ifspec;

#ifndef __IRdVertexSelectionStream_INTERFACE_DEFINED__
#define __IRdVertexSelectionStream_INTERFACE_DEFINED__

/* interface IRdVertexSelectionStream */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IRdVertexSelectionStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2A586B90-3080-41cf-8CE0-276D49C3CF0A")
    IRdVertexSelectionStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumVertexSelectionWeights( 
            /* [retval][out] */ RtDWORD *dwNumVertexSelectionWeights) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumVertexSelectionWeights( 
            /* [in] */ RtDWORD dwNumVertexSelectionWeights) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_weight( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_weight( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_orgelementindex( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_orgelementindex( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdVertexSelectionStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdVertexSelectionStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdVertexSelectionStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdVertexSelectionStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdVertexSelectionStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdVertexSelectionStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdVertexSelectionStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdVertexSelectionStream * 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 *GetNumVertexSelectionWeights )( 
            IRdVertexSelectionStream * This,
            /* [retval][out] */ RtDWORD *dwNumVertexSelectionWeights);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumVertexSelectionWeights )( 
            IRdVertexSelectionStream * This,
            /* [in] */ RtDWORD dwNumVertexSelectionWeights);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_weight )( 
            IRdVertexSelectionStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_weight )( 
            IRdVertexSelectionStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_orgelementindex )( 
            IRdVertexSelectionStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_orgelementindex )( 
            IRdVertexSelectionStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        END_INTERFACE
    } IRdVertexSelectionStreamVtbl;

    interface IRdVertexSelectionStream
    {
        CONST_VTBL struct IRdVertexSelectionStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdVertexSelectionStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdVertexSelectionStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdVertexSelectionStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdVertexSelectionStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdVertexSelectionStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdVertexSelectionStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdVertexSelectionStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdVertexSelectionStream_GetNumVertexSelectionWeights(This,dwNumVertexSelectionWeights)	\
    (This)->lpVtbl -> GetNumVertexSelectionWeights(This,dwNumVertexSelectionWeights)

#define IRdVertexSelectionStream_SetNumVertexSelectionWeights(This,dwNumVertexSelectionWeights)	\
    (This)->lpVtbl -> SetNumVertexSelectionWeights(This,dwNumVertexSelectionWeights)

#define IRdVertexSelectionStream_get_weight(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_weight(This,dwIndex,pVal)

#define IRdVertexSelectionStream_put_weight(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_weight(This,dwIndex,newVal)

#define IRdVertexSelectionStream_get_orgelementindex(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_orgelementindex(This,dwIndex,pVal)

#define IRdVertexSelectionStream_put_orgelementindex(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_orgelementindex(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexSelectionStream_GetNumVertexSelectionWeights_Proxy( 
    IRdVertexSelectionStream * This,
    /* [retval][out] */ RtDWORD *dwNumVertexSelectionWeights);


void __RPC_STUB IRdVertexSelectionStream_GetNumVertexSelectionWeights_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexSelectionStream_SetNumVertexSelectionWeights_Proxy( 
    IRdVertexSelectionStream * This,
    /* [in] */ RtDWORD dwNumVertexSelectionWeights);


void __RPC_STUB IRdVertexSelectionStream_SetNumVertexSelectionWeights_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexSelectionStream_get_weight_Proxy( 
    IRdVertexSelectionStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdVertexSelectionStream_get_weight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexSelectionStream_put_weight_Proxy( 
    IRdVertexSelectionStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdVertexSelectionStream_put_weight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexSelectionStream_get_orgelementindex_Proxy( 
    IRdVertexSelectionStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


void __RPC_STUB IRdVertexSelectionStream_get_orgelementindex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexSelectionStream_put_orgelementindex_Proxy( 
    IRdVertexSelectionStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


void __RPC_STUB IRdVertexSelectionStream_put_orgelementindex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdVertexSelectionStream_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1457 */
/* [local] */ 

struct RtEdgeSelectionWeight
    {
    RtBYTE uV1_Selected;
    RtBYTE uV2_Selected;
    RtBYTE uV3_Selected;
    RtUlong uV1_OrgElementIndex;
    RtUlong uV2_OrgElementIndex;
    RtUlong uV3_OrgElementIndex;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1457_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1457_v0_0_s_ifspec;

#ifndef __IRdEdgeSelectionStream_INTERFACE_DEFINED__
#define __IRdEdgeSelectionStream_INTERFACE_DEFINED__

/* interface IRdEdgeSelectionStream */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IRdEdgeSelectionStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9E216227-DC26-42ef-AF09-F8231514EA5F")
    IRdEdgeSelectionStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumEdgeSelectionWeights( 
            /* [retval][out] */ RtDWORD *dwNumEdgeSelectionWeights) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumEdgeSelectionWeights( 
            /* [in] */ RtDWORD dwNumEdgeSelectionWeights) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_v1_selected( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtBYTE *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_v1_selected( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtBYTE newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_v1_orgelementindex( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_v1_orgelementindex( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_v2_selected( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtBYTE *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_v2_selected( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtBYTE newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_v2_orgelementindex( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_v2_orgelementindex( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_v3_selected( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtBYTE *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_v3_selected( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtBYTE newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_v3_orgelementindex( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_v3_orgelementindex( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdEdgeSelectionStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdEdgeSelectionStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdEdgeSelectionStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdEdgeSelectionStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdEdgeSelectionStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdEdgeSelectionStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdEdgeSelectionStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdEdgeSelectionStream * 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 *GetNumEdgeSelectionWeights )( 
            IRdEdgeSelectionStream * This,
            /* [retval][out] */ RtDWORD *dwNumEdgeSelectionWeights);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumEdgeSelectionWeights )( 
            IRdEdgeSelectionStream * This,
            /* [in] */ RtDWORD dwNumEdgeSelectionWeights);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_v1_selected )( 
            IRdEdgeSelectionStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtBYTE *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_v1_selected )( 
            IRdEdgeSelectionStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtBYTE newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_v1_orgelementindex )( 
            IRdEdgeSelectionStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_v1_orgelementindex )( 
            IRdEdgeSelectionStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_v2_selected )( 
            IRdEdgeSelectionStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtBYTE *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_v2_selected )( 
            IRdEdgeSelectionStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtBYTE newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_v2_orgelementindex )( 
            IRdEdgeSelectionStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_v2_orgelementindex )( 
            IRdEdgeSelectionStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_v3_selected )( 
            IRdEdgeSelectionStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtBYTE *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_v3_selected )( 
            IRdEdgeSelectionStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtBYTE newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_v3_orgelementindex )( 
            IRdEdgeSelectionStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_v3_orgelementindex )( 
            IRdEdgeSelectionStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        END_INTERFACE
    } IRdEdgeSelectionStreamVtbl;

    interface IRdEdgeSelectionStream
    {
        CONST_VTBL struct IRdEdgeSelectionStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdEdgeSelectionStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdEdgeSelectionStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdEdgeSelectionStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdEdgeSelectionStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdEdgeSelectionStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdEdgeSelectionStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdEdgeSelectionStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdEdgeSelectionStream_GetNumEdgeSelectionWeights(This,dwNumEdgeSelectionWeights)	\
    (This)->lpVtbl -> GetNumEdgeSelectionWeights(This,dwNumEdgeSelectionWeights)

#define IRdEdgeSelectionStream_SetNumEdgeSelectionWeights(This,dwNumEdgeSelectionWeights)	\
    (This)->lpVtbl -> SetNumEdgeSelectionWeights(This,dwNumEdgeSelectionWeights)

#define IRdEdgeSelectionStream_get_v1_selected(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_v1_selected(This,dwIndex,pVal)

#define IRdEdgeSelectionStream_put_v1_selected(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_v1_selected(This,dwIndex,newVal)

#define IRdEdgeSelectionStream_get_v1_orgelementindex(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_v1_orgelementindex(This,dwIndex,pVal)

#define IRdEdgeSelectionStream_put_v1_orgelementindex(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_v1_orgelementindex(This,dwIndex,newVal)

#define IRdEdgeSelectionStream_get_v2_selected(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_v2_selected(This,dwIndex,pVal)

#define IRdEdgeSelectionStream_put_v2_selected(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_v2_selected(This,dwIndex,newVal)

#define IRdEdgeSelectionStream_get_v2_orgelementindex(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_v2_orgelementindex(This,dwIndex,pVal)

#define IRdEdgeSelectionStream_put_v2_orgelementindex(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_v2_orgelementindex(This,dwIndex,newVal)

#define IRdEdgeSelectionStream_get_v3_selected(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_v3_selected(This,dwIndex,pVal)

#define IRdEdgeSelectionStream_put_v3_selected(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_v3_selected(This,dwIndex,newVal)

#define IRdEdgeSelectionStream_get_v3_orgelementindex(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_v3_orgelementindex(This,dwIndex,pVal)

#define IRdEdgeSelectionStream_put_v3_orgelementindex(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_v3_orgelementindex(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdEdgeSelectionStream_GetNumEdgeSelectionWeights_Proxy( 
    IRdEdgeSelectionStream * This,
    /* [retval][out] */ RtDWORD *dwNumEdgeSelectionWeights);


void __RPC_STUB IRdEdgeSelectionStream_GetNumEdgeSelectionWeights_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdEdgeSelectionStream_SetNumEdgeSelectionWeights_Proxy( 
    IRdEdgeSelectionStream * This,
    /* [in] */ RtDWORD dwNumEdgeSelectionWeights);


void __RPC_STUB IRdEdgeSelectionStream_SetNumEdgeSelectionWeights_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdEdgeSelectionStream_get_v1_selected_Proxy( 
    IRdEdgeSelectionStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtBYTE *pVal);


void __RPC_STUB IRdEdgeSelectionStream_get_v1_selected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdEdgeSelectionStream_put_v1_selected_Proxy( 
    IRdEdgeSelectionStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtBYTE newVal);


void __RPC_STUB IRdEdgeSelectionStream_put_v1_selected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdEdgeSelectionStream_get_v1_orgelementindex_Proxy( 
    IRdEdgeSelectionStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


void __RPC_STUB IRdEdgeSelectionStream_get_v1_orgelementindex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdEdgeSelectionStream_put_v1_orgelementindex_Proxy( 
    IRdEdgeSelectionStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


void __RPC_STUB IRdEdgeSelectionStream_put_v1_orgelementindex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdEdgeSelectionStream_get_v2_selected_Proxy( 
    IRdEdgeSelectionStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtBYTE *pVal);


void __RPC_STUB IRdEdgeSelectionStream_get_v2_selected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdEdgeSelectionStream_put_v2_selected_Proxy( 
    IRdEdgeSelectionStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtBYTE newVal);


void __RPC_STUB IRdEdgeSelectionStream_put_v2_selected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdEdgeSelectionStream_get_v2_orgelementindex_Proxy( 
    IRdEdgeSelectionStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


void __RPC_STUB IRdEdgeSelectionStream_get_v2_orgelementindex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdEdgeSelectionStream_put_v2_orgelementindex_Proxy( 
    IRdEdgeSelectionStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


void __RPC_STUB IRdEdgeSelectionStream_put_v2_orgelementindex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdEdgeSelectionStream_get_v3_selected_Proxy( 
    IRdEdgeSelectionStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtBYTE *pVal);


void __RPC_STUB IRdEdgeSelectionStream_get_v3_selected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdEdgeSelectionStream_put_v3_selected_Proxy( 
    IRdEdgeSelectionStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtBYTE newVal);


void __RPC_STUB IRdEdgeSelectionStream_put_v3_selected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdEdgeSelectionStream_get_v3_orgelementindex_Proxy( 
    IRdEdgeSelectionStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


void __RPC_STUB IRdEdgeSelectionStream_get_v3_orgelementindex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdEdgeSelectionStream_put_v3_orgelementindex_Proxy( 
    IRdEdgeSelectionStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


void __RPC_STUB IRdEdgeSelectionStream_put_v3_orgelementindex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdEdgeSelectionStream_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1458 */
/* [local] */ 

struct RtEdgeVisualization
    {
    RtUlong uV1_Color;
    RtUlong uV2_Color;
    RtUlong uV3_Color;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1458_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1458_v0_0_s_ifspec;

#ifndef __IRdEdgesVisualizationStream_INTERFACE_DEFINED__
#define __IRdEdgesVisualizationStream_INTERFACE_DEFINED__

/* interface IRdEdgesVisualizationStream */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IRdEdgesVisualizationStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("28EEBC9F-0E7C-4CCE-8024-4DF1D83615EC")
    IRdEdgesVisualizationStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumEdges( 
            /* [retval][out] */ RtDWORD *dwNumEdges) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumEdges( 
            /* [in] */ RtDWORD dwNumEdges) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_v1_color( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_v1_color( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_v2_color( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_v2_color( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_v3_color( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_v3_color( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_v1Color( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ IDispatch **pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_v1Color( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ IDispatch *newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_v2Color( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ IDispatch **pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_v2Color( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ IDispatch *newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_v3Color( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ IDispatch **pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_v3Color( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ IDispatch *newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdEdgesVisualizationStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdEdgesVisualizationStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdEdgesVisualizationStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdEdgesVisualizationStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdEdgesVisualizationStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdEdgesVisualizationStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdEdgesVisualizationStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdEdgesVisualizationStream * 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 *GetNumEdges )( 
            IRdEdgesVisualizationStream * This,
            /* [retval][out] */ RtDWORD *dwNumEdges);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumEdges )( 
            IRdEdgesVisualizationStream * This,
            /* [in] */ RtDWORD dwNumEdges);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_v1_color )( 
            IRdEdgesVisualizationStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_v1_color )( 
            IRdEdgesVisualizationStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_v2_color )( 
            IRdEdgesVisualizationStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_v2_color )( 
            IRdEdgesVisualizationStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_v3_color )( 
            IRdEdgesVisualizationStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_v3_color )( 
            IRdEdgesVisualizationStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_v1Color )( 
            IRdEdgesVisualizationStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ IDispatch **pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_v1Color )( 
            IRdEdgesVisualizationStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ IDispatch *newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_v2Color )( 
            IRdEdgesVisualizationStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ IDispatch **pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_v2Color )( 
            IRdEdgesVisualizationStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ IDispatch *newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_v3Color )( 
            IRdEdgesVisualizationStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ IDispatch **pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_v3Color )( 
            IRdEdgesVisualizationStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ IDispatch *newVal);
        
        END_INTERFACE
    } IRdEdgesVisualizationStreamVtbl;

    interface IRdEdgesVisualizationStream
    {
        CONST_VTBL struct IRdEdgesVisualizationStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdEdgesVisualizationStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdEdgesVisualizationStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdEdgesVisualizationStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdEdgesVisualizationStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdEdgesVisualizationStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdEdgesVisualizationStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdEdgesVisualizationStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdEdgesVisualizationStream_GetNumEdges(This,dwNumEdges)	\
    (This)->lpVtbl -> GetNumEdges(This,dwNumEdges)

#define IRdEdgesVisualizationStream_SetNumEdges(This,dwNumEdges)	\
    (This)->lpVtbl -> SetNumEdges(This,dwNumEdges)

#define IRdEdgesVisualizationStream_get_v1_color(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_v1_color(This,dwIndex,pVal)

#define IRdEdgesVisualizationStream_put_v1_color(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_v1_color(This,dwIndex,newVal)

#define IRdEdgesVisualizationStream_get_v2_color(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_v2_color(This,dwIndex,pVal)

#define IRdEdgesVisualizationStream_put_v2_color(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_v2_color(This,dwIndex,newVal)

#define IRdEdgesVisualizationStream_get_v3_color(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_v3_color(This,dwIndex,pVal)

#define IRdEdgesVisualizationStream_put_v3_color(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_v3_color(This,dwIndex,newVal)

#define IRdEdgesVisualizationStream_get_v1Color(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_v1Color(This,dwIndex,pVal)

#define IRdEdgesVisualizationStream_put_v1Color(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_v1Color(This,dwIndex,newVal)

#define IRdEdgesVisualizationStream_get_v2Color(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_v2Color(This,dwIndex,pVal)

#define IRdEdgesVisualizationStream_put_v2Color(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_v2Color(This,dwIndex,newVal)

#define IRdEdgesVisualizationStream_get_v3Color(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_v3Color(This,dwIndex,pVal)

#define IRdEdgesVisualizationStream_put_v3Color(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_v3Color(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdEdgesVisualizationStream_GetNumEdges_Proxy( 
    IRdEdgesVisualizationStream * This,
    /* [retval][out] */ RtDWORD *dwNumEdges);


void __RPC_STUB IRdEdgesVisualizationStream_GetNumEdges_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdEdgesVisualizationStream_SetNumEdges_Proxy( 
    IRdEdgesVisualizationStream * This,
    /* [in] */ RtDWORD dwNumEdges);


void __RPC_STUB IRdEdgesVisualizationStream_SetNumEdges_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdEdgesVisualizationStream_get_v1_color_Proxy( 
    IRdEdgesVisualizationStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


void __RPC_STUB IRdEdgesVisualizationStream_get_v1_color_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdEdgesVisualizationStream_put_v1_color_Proxy( 
    IRdEdgesVisualizationStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


void __RPC_STUB IRdEdgesVisualizationStream_put_v1_color_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdEdgesVisualizationStream_get_v2_color_Proxy( 
    IRdEdgesVisualizationStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


void __RPC_STUB IRdEdgesVisualizationStream_get_v2_color_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdEdgesVisualizationStream_put_v2_color_Proxy( 
    IRdEdgesVisualizationStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


void __RPC_STUB IRdEdgesVisualizationStream_put_v2_color_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdEdgesVisualizationStream_get_v3_color_Proxy( 
    IRdEdgesVisualizationStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


void __RPC_STUB IRdEdgesVisualizationStream_get_v3_color_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdEdgesVisualizationStream_put_v3_color_Proxy( 
    IRdEdgesVisualizationStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


void __RPC_STUB IRdEdgesVisualizationStream_put_v3_color_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdEdgesVisualizationStream_get_v1Color_Proxy( 
    IRdEdgesVisualizationStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ IDispatch **pVal);


void __RPC_STUB IRdEdgesVisualizationStream_get_v1Color_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdEdgesVisualizationStream_put_v1Color_Proxy( 
    IRdEdgesVisualizationStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ IDispatch *newVal);


void __RPC_STUB IRdEdgesVisualizationStream_put_v1Color_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdEdgesVisualizationStream_get_v2Color_Proxy( 
    IRdEdgesVisualizationStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ IDispatch **pVal);


void __RPC_STUB IRdEdgesVisualizationStream_get_v2Color_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdEdgesVisualizationStream_put_v2Color_Proxy( 
    IRdEdgesVisualizationStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ IDispatch *newVal);


void __RPC_STUB IRdEdgesVisualizationStream_put_v2Color_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdEdgesVisualizationStream_get_v3Color_Proxy( 
    IRdEdgesVisualizationStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ IDispatch **pVal);


void __RPC_STUB IRdEdgesVisualizationStream_get_v3Color_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdEdgesVisualizationStream_put_v3Color_Proxy( 
    IRdEdgesVisualizationStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ IDispatch *newVal);


void __RPC_STUB IRdEdgesVisualizationStream_put_v3Color_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdEdgesVisualizationStream_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1459 */
/* [local] */ 

struct RtTriangleSelectionWeight
    {
    RtBYTE uSelected;
    RtUlong uOrgElementIndex;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1459_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1459_v0_0_s_ifspec;

#ifndef __IRdTriangleSelectionStream_INTERFACE_DEFINED__
#define __IRdTriangleSelectionStream_INTERFACE_DEFINED__

/* interface IRdTriangleSelectionStream */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IRdTriangleSelectionStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("769E0A4E-0F29-4dd2-8A5B-693F3520FB5C")
    IRdTriangleSelectionStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumTriangleSelectionWeights( 
            /* [retval][out] */ RtDWORD *dwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumTriangleSelectionWeights( 
            /* [in] */ RtDWORD dwNumTriangleSelectionWeights) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_selected( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtBYTE *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_selected( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtBYTE newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_orgelementindex( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_orgelementindex( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdTriangleSelectionStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdTriangleSelectionStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdTriangleSelectionStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdTriangleSelectionStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdTriangleSelectionStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdTriangleSelectionStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdTriangleSelectionStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdTriangleSelectionStream * 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 *GetNumTriangleSelectionWeights )( 
            IRdTriangleSelectionStream * This,
            /* [retval][out] */ RtDWORD *dwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumTriangleSelectionWeights )( 
            IRdTriangleSelectionStream * This,
            /* [in] */ RtDWORD dwNumTriangleSelectionWeights);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_selected )( 
            IRdTriangleSelectionStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtBYTE *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_selected )( 
            IRdTriangleSelectionStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtBYTE newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_orgelementindex )( 
            IRdTriangleSelectionStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_orgelementindex )( 
            IRdTriangleSelectionStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        END_INTERFACE
    } IRdTriangleSelectionStreamVtbl;

    interface IRdTriangleSelectionStream
    {
        CONST_VTBL struct IRdTriangleSelectionStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdTriangleSelectionStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdTriangleSelectionStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdTriangleSelectionStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdTriangleSelectionStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdTriangleSelectionStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdTriangleSelectionStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdTriangleSelectionStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdTriangleSelectionStream_GetNumTriangleSelectionWeights(This,dwNumVertices)	\
    (This)->lpVtbl -> GetNumTriangleSelectionWeights(This,dwNumVertices)

#define IRdTriangleSelectionStream_SetNumTriangleSelectionWeights(This,dwNumTriangleSelectionWeights)	\
    (This)->lpVtbl -> SetNumTriangleSelectionWeights(This,dwNumTriangleSelectionWeights)

#define IRdTriangleSelectionStream_get_selected(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_selected(This,dwIndex,pVal)

#define IRdTriangleSelectionStream_put_selected(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_selected(This,dwIndex,newVal)

#define IRdTriangleSelectionStream_get_orgelementindex(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_orgelementindex(This,dwIndex,pVal)

#define IRdTriangleSelectionStream_put_orgelementindex(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_orgelementindex(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleSelectionStream_GetNumTriangleSelectionWeights_Proxy( 
    IRdTriangleSelectionStream * This,
    /* [retval][out] */ RtDWORD *dwNumVertices);


void __RPC_STUB IRdTriangleSelectionStream_GetNumTriangleSelectionWeights_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleSelectionStream_SetNumTriangleSelectionWeights_Proxy( 
    IRdTriangleSelectionStream * This,
    /* [in] */ RtDWORD dwNumTriangleSelectionWeights);


void __RPC_STUB IRdTriangleSelectionStream_SetNumTriangleSelectionWeights_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTriangleSelectionStream_get_selected_Proxy( 
    IRdTriangleSelectionStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtBYTE *pVal);


void __RPC_STUB IRdTriangleSelectionStream_get_selected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTriangleSelectionStream_put_selected_Proxy( 
    IRdTriangleSelectionStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtBYTE newVal);


void __RPC_STUB IRdTriangleSelectionStream_put_selected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTriangleSelectionStream_get_orgelementindex_Proxy( 
    IRdTriangleSelectionStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


void __RPC_STUB IRdTriangleSelectionStream_get_orgelementindex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTriangleSelectionStream_put_orgelementindex_Proxy( 
    IRdTriangleSelectionStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


void __RPC_STUB IRdTriangleSelectionStream_put_orgelementindex_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdTriangleSelectionStream_INTERFACE_DEFINED__ */


#ifndef __IRsProceduralStreamEvaluator_INTERFACE_DEFINED__
#define __IRsProceduralStreamEvaluator_INTERFACE_DEFINED__

/* interface IRsProceduralStreamEvaluator */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsProceduralStreamEvaluator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4EBDE9BF-CFB1-460b-A671-AA465BF9D6BA")
    IRsProceduralStreamEvaluator : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE CalculateProceduralStream( 
            /* [in] */ IRsGenStream *pProceduralStream) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsProceduralStreamEvaluatorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsProceduralStreamEvaluator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsProceduralStreamEvaluator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsProceduralStreamEvaluator * This);
        
        HRESULT ( STDMETHODCALLTYPE *CalculateProceduralStream )( 
            IRsProceduralStreamEvaluator * This,
            /* [in] */ IRsGenStream *pProceduralStream);
        
        END_INTERFACE
    } IRsProceduralStreamEvaluatorVtbl;

    interface IRsProceduralStreamEvaluator
    {
        CONST_VTBL struct IRsProceduralStreamEvaluatorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsProceduralStreamEvaluator_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsProceduralStreamEvaluator_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsProceduralStreamEvaluator_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsProceduralStreamEvaluator_CalculateProceduralStream(This,pProceduralStream)	\
    (This)->lpVtbl -> CalculateProceduralStream(This,pProceduralStream)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsProceduralStreamEvaluator_CalculateProceduralStream_Proxy( 
    IRsProceduralStreamEvaluator * This,
    /* [in] */ IRsGenStream *pProceduralStream);


void __RPC_STUB IRsProceduralStreamEvaluator_CalculateProceduralStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsProceduralStreamEvaluator_INTERFACE_DEFINED__ */


#ifndef __IRdGeometryIdentificationStream_INTERFACE_DEFINED__
#define __IRdGeometryIdentificationStream_INTERFACE_DEFINED__

/* interface IRdGeometryIdentificationStream */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IRdGeometryIdentificationStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2C73C54D-78B6-42b7-A07F-4CAF21E05EF8")
    IRdGeometryIdentificationStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumCoords( 
            /* [retval][out] */ RtDWORD *dwNumCoords) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumCoords( 
            /* [in] */ RtDWORD dwNumCoords) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_u( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_u( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_v( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_v( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdGeometryIdentificationStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdGeometryIdentificationStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdGeometryIdentificationStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdGeometryIdentificationStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdGeometryIdentificationStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdGeometryIdentificationStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdGeometryIdentificationStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdGeometryIdentificationStream * 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 *GetNumCoords )( 
            IRdGeometryIdentificationStream * This,
            /* [retval][out] */ RtDWORD *dwNumCoords);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumCoords )( 
            IRdGeometryIdentificationStream * This,
            /* [in] */ RtDWORD dwNumCoords);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_u )( 
            IRdGeometryIdentificationStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_u )( 
            IRdGeometryIdentificationStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_v )( 
            IRdGeometryIdentificationStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_v )( 
            IRdGeometryIdentificationStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        END_INTERFACE
    } IRdGeometryIdentificationStreamVtbl;

    interface IRdGeometryIdentificationStream
    {
        CONST_VTBL struct IRdGeometryIdentificationStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdGeometryIdentificationStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdGeometryIdentificationStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdGeometryIdentificationStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdGeometryIdentificationStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdGeometryIdentificationStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdGeometryIdentificationStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdGeometryIdentificationStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdGeometryIdentificationStream_GetNumCoords(This,dwNumCoords)	\
    (This)->lpVtbl -> GetNumCoords(This,dwNumCoords)

#define IRdGeometryIdentificationStream_SetNumCoords(This,dwNumCoords)	\
    (This)->lpVtbl -> SetNumCoords(This,dwNumCoords)

#define IRdGeometryIdentificationStream_get_u(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_u(This,dwIndex,pVal)

#define IRdGeometryIdentificationStream_put_u(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_u(This,dwIndex,newVal)

#define IRdGeometryIdentificationStream_get_v(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_v(This,dwIndex,pVal)

#define IRdGeometryIdentificationStream_put_v(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_v(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdGeometryIdentificationStream_GetNumCoords_Proxy( 
    IRdGeometryIdentificationStream * This,
    /* [retval][out] */ RtDWORD *dwNumCoords);


void __RPC_STUB IRdGeometryIdentificationStream_GetNumCoords_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdGeometryIdentificationStream_SetNumCoords_Proxy( 
    IRdGeometryIdentificationStream * This,
    /* [in] */ RtDWORD dwNumCoords);


void __RPC_STUB IRdGeometryIdentificationStream_SetNumCoords_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdGeometryIdentificationStream_get_u_Proxy( 
    IRdGeometryIdentificationStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdGeometryIdentificationStream_get_u_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdGeometryIdentificationStream_put_u_Proxy( 
    IRdGeometryIdentificationStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdGeometryIdentificationStream_put_u_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdGeometryIdentificationStream_get_v_Proxy( 
    IRdGeometryIdentificationStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdGeometryIdentificationStream_get_v_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdGeometryIdentificationStream_put_v_Proxy( 
    IRdGeometryIdentificationStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdGeometryIdentificationStream_put_v_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdGeometryIdentificationStream_INTERFACE_DEFINED__ */


#ifndef __IRdGeometryIdentificationTriangleStream_INTERFACE_DEFINED__
#define __IRdGeometryIdentificationTriangleStream_INTERFACE_DEFINED__

/* interface IRdGeometryIdentificationTriangleStream */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IRdGeometryIdentificationTriangleStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8D386AD9-85B3-4b11-9772-55AAF2AC31B1")
    IRdGeometryIdentificationTriangleStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumTriangles( 
            /* [retval][out] */ RtDWORD *dwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumTriangles( 
            /* [in] */ RtDWORD dwNumTriangles) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_i( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_i( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_j( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_j( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_k( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_k( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdGeometryIdentificationTriangleStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdGeometryIdentificationTriangleStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdGeometryIdentificationTriangleStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdGeometryIdentificationTriangleStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdGeometryIdentificationTriangleStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdGeometryIdentificationTriangleStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdGeometryIdentificationTriangleStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdGeometryIdentificationTriangleStream * 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 *GetNumTriangles )( 
            IRdGeometryIdentificationTriangleStream * This,
            /* [retval][out] */ RtDWORD *dwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumTriangles )( 
            IRdGeometryIdentificationTriangleStream * This,
            /* [in] */ RtDWORD dwNumTriangles);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_i )( 
            IRdGeometryIdentificationTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_i )( 
            IRdGeometryIdentificationTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_j )( 
            IRdGeometryIdentificationTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_j )( 
            IRdGeometryIdentificationTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_k )( 
            IRdGeometryIdentificationTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_k )( 
            IRdGeometryIdentificationTriangleStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        END_INTERFACE
    } IRdGeometryIdentificationTriangleStreamVtbl;

    interface IRdGeometryIdentificationTriangleStream
    {
        CONST_VTBL struct IRdGeometryIdentificationTriangleStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdGeometryIdentificationTriangleStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdGeometryIdentificationTriangleStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdGeometryIdentificationTriangleStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdGeometryIdentificationTriangleStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdGeometryIdentificationTriangleStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdGeometryIdentificationTriangleStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdGeometryIdentificationTriangleStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdGeometryIdentificationTriangleStream_GetNumTriangles(This,dwNumVertices)	\
    (This)->lpVtbl -> GetNumTriangles(This,dwNumVertices)

#define IRdGeometryIdentificationTriangleStream_SetNumTriangles(This,dwNumTriangles)	\
    (This)->lpVtbl -> SetNumTriangles(This,dwNumTriangles)

#define IRdGeometryIdentificationTriangleStream_get_i(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_i(This,dwIndex,pVal)

#define IRdGeometryIdentificationTriangleStream_put_i(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_i(This,dwIndex,newVal)

#define IRdGeometryIdentificationTriangleStream_get_j(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_j(This,dwIndex,pVal)

#define IRdGeometryIdentificationTriangleStream_put_j(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_j(This,dwIndex,newVal)

#define IRdGeometryIdentificationTriangleStream_get_k(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_k(This,dwIndex,pVal)

#define IRdGeometryIdentificationTriangleStream_put_k(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_k(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdGeometryIdentificationTriangleStream_GetNumTriangles_Proxy( 
    IRdGeometryIdentificationTriangleStream * This,
    /* [retval][out] */ RtDWORD *dwNumVertices);


void __RPC_STUB IRdGeometryIdentificationTriangleStream_GetNumTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdGeometryIdentificationTriangleStream_SetNumTriangles_Proxy( 
    IRdGeometryIdentificationTriangleStream * This,
    /* [in] */ RtDWORD dwNumTriangles);


void __RPC_STUB IRdGeometryIdentificationTriangleStream_SetNumTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdGeometryIdentificationTriangleStream_get_i_Proxy( 
    IRdGeometryIdentificationTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


void __RPC_STUB IRdGeometryIdentificationTriangleStream_get_i_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdGeometryIdentificationTriangleStream_put_i_Proxy( 
    IRdGeometryIdentificationTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


void __RPC_STUB IRdGeometryIdentificationTriangleStream_put_i_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdGeometryIdentificationTriangleStream_get_j_Proxy( 
    IRdGeometryIdentificationTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


void __RPC_STUB IRdGeometryIdentificationTriangleStream_get_j_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdGeometryIdentificationTriangleStream_put_j_Proxy( 
    IRdGeometryIdentificationTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


void __RPC_STUB IRdGeometryIdentificationTriangleStream_put_j_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdGeometryIdentificationTriangleStream_get_k_Proxy( 
    IRdGeometryIdentificationTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


void __RPC_STUB IRdGeometryIdentificationTriangleStream_get_k_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdGeometryIdentificationTriangleStream_put_k_Proxy( 
    IRdGeometryIdentificationTriangleStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


void __RPC_STUB IRdGeometryIdentificationTriangleStream_put_k_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdGeometryIdentificationTriangleStream_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1463 */
/* [local] */ 

struct RtTriangleLocator
    {
    RtFloat u1;
    RtFloat u2;
    RtFloat u3;
    RtFloat v1;
    RtFloat v2;
    RtFloat v3;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1463_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1463_v0_0_s_ifspec;

#ifndef __IRdTriangleLocatorStream_INTERFACE_DEFINED__
#define __IRdTriangleLocatorStream_INTERFACE_DEFINED__

/* interface IRdTriangleLocatorStream */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdTriangleLocatorStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A03E946B-CE2C-471c-B644-235FAB9F00D5")
    IRdTriangleLocatorStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumTriangleLocators( 
            /* [retval][out] */ RtDWORD *dwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumTriangleLocators( 
            /* [in] */ RtDWORD dwNumTriangleLocators) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_u1( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_u1( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_u2( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_u2( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_u3( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_u3( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_v1( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_v1( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_v2( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_v2( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_v3( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_v3( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdTriangleLocatorStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdTriangleLocatorStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdTriangleLocatorStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdTriangleLocatorStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdTriangleLocatorStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdTriangleLocatorStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdTriangleLocatorStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdTriangleLocatorStream * 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 *GetNumTriangleLocators )( 
            IRdTriangleLocatorStream * This,
            /* [retval][out] */ RtDWORD *dwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumTriangleLocators )( 
            IRdTriangleLocatorStream * This,
            /* [in] */ RtDWORD dwNumTriangleLocators);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_u1 )( 
            IRdTriangleLocatorStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_u1 )( 
            IRdTriangleLocatorStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_u2 )( 
            IRdTriangleLocatorStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_u2 )( 
            IRdTriangleLocatorStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_u3 )( 
            IRdTriangleLocatorStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_u3 )( 
            IRdTriangleLocatorStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_v1 )( 
            IRdTriangleLocatorStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_v1 )( 
            IRdTriangleLocatorStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_v2 )( 
            IRdTriangleLocatorStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_v2 )( 
            IRdTriangleLocatorStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_v3 )( 
            IRdTriangleLocatorStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_v3 )( 
            IRdTriangleLocatorStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        END_INTERFACE
    } IRdTriangleLocatorStreamVtbl;

    interface IRdTriangleLocatorStream
    {
        CONST_VTBL struct IRdTriangleLocatorStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdTriangleLocatorStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdTriangleLocatorStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdTriangleLocatorStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdTriangleLocatorStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdTriangleLocatorStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdTriangleLocatorStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdTriangleLocatorStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdTriangleLocatorStream_GetNumTriangleLocators(This,dwNumVertices)	\
    (This)->lpVtbl -> GetNumTriangleLocators(This,dwNumVertices)

#define IRdTriangleLocatorStream_SetNumTriangleLocators(This,dwNumTriangleLocators)	\
    (This)->lpVtbl -> SetNumTriangleLocators(This,dwNumTriangleLocators)

#define IRdTriangleLocatorStream_get_u1(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_u1(This,dwIndex,pVal)

#define IRdTriangleLocatorStream_put_u1(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_u1(This,dwIndex,newVal)

#define IRdTriangleLocatorStream_get_u2(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_u2(This,dwIndex,pVal)

#define IRdTriangleLocatorStream_put_u2(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_u2(This,dwIndex,newVal)

#define IRdTriangleLocatorStream_get_u3(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_u3(This,dwIndex,pVal)

#define IRdTriangleLocatorStream_put_u3(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_u3(This,dwIndex,newVal)

#define IRdTriangleLocatorStream_get_v1(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_v1(This,dwIndex,pVal)

#define IRdTriangleLocatorStream_put_v1(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_v1(This,dwIndex,newVal)

#define IRdTriangleLocatorStream_get_v2(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_v2(This,dwIndex,pVal)

#define IRdTriangleLocatorStream_put_v2(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_v2(This,dwIndex,newVal)

#define IRdTriangleLocatorStream_get_v3(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_v3(This,dwIndex,pVal)

#define IRdTriangleLocatorStream_put_v3(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_v3(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleLocatorStream_GetNumTriangleLocators_Proxy( 
    IRdTriangleLocatorStream * This,
    /* [retval][out] */ RtDWORD *dwNumVertices);


void __RPC_STUB IRdTriangleLocatorStream_GetNumTriangleLocators_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleLocatorStream_SetNumTriangleLocators_Proxy( 
    IRdTriangleLocatorStream * This,
    /* [in] */ RtDWORD dwNumTriangleLocators);


void __RPC_STUB IRdTriangleLocatorStream_SetNumTriangleLocators_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTriangleLocatorStream_get_u1_Proxy( 
    IRdTriangleLocatorStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdTriangleLocatorStream_get_u1_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTriangleLocatorStream_put_u1_Proxy( 
    IRdTriangleLocatorStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdTriangleLocatorStream_put_u1_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTriangleLocatorStream_get_u2_Proxy( 
    IRdTriangleLocatorStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdTriangleLocatorStream_get_u2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTriangleLocatorStream_put_u2_Proxy( 
    IRdTriangleLocatorStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdTriangleLocatorStream_put_u2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTriangleLocatorStream_get_u3_Proxy( 
    IRdTriangleLocatorStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdTriangleLocatorStream_get_u3_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTriangleLocatorStream_put_u3_Proxy( 
    IRdTriangleLocatorStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdTriangleLocatorStream_put_u3_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTriangleLocatorStream_get_v1_Proxy( 
    IRdTriangleLocatorStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdTriangleLocatorStream_get_v1_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTriangleLocatorStream_put_v1_Proxy( 
    IRdTriangleLocatorStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdTriangleLocatorStream_put_v1_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTriangleLocatorStream_get_v2_Proxy( 
    IRdTriangleLocatorStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdTriangleLocatorStream_get_v2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTriangleLocatorStream_put_v2_Proxy( 
    IRdTriangleLocatorStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdTriangleLocatorStream_put_v2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTriangleLocatorStream_get_v3_Proxy( 
    IRdTriangleLocatorStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdTriangleLocatorStream_get_v3_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTriangleLocatorStream_put_v3_Proxy( 
    IRdTriangleLocatorStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdTriangleLocatorStream_put_v3_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdTriangleLocatorStream_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1464 */
/* [local] */ 

struct RtTriangleVisualization
    {
    RtUlong uColor;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1464_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1464_v0_0_s_ifspec;

#ifndef __IRdTrianglesVisStream_INTERFACE_DEFINED__
#define __IRdTrianglesVisStream_INTERFACE_DEFINED__

/* interface IRdTrianglesVisStream */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdTrianglesVisStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D114E75A-408C-4442-8E47-5F74C8E977B4")
    IRdTrianglesVisStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumTriangles( 
            /* [retval][out] */ RtDWORD *dwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumTriangles( 
            /* [in] */ RtDWORD dwNumTriangles) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_color( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_color( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_tColor( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ IDispatch **pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_tColor( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ IDispatch *newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdTrianglesVisStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdTrianglesVisStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdTrianglesVisStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdTrianglesVisStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdTrianglesVisStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdTrianglesVisStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdTrianglesVisStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdTrianglesVisStream * 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 *GetNumTriangles )( 
            IRdTrianglesVisStream * This,
            /* [retval][out] */ RtDWORD *dwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumTriangles )( 
            IRdTrianglesVisStream * This,
            /* [in] */ RtDWORD dwNumTriangles);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_color )( 
            IRdTrianglesVisStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_color )( 
            IRdTrianglesVisStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_tColor )( 
            IRdTrianglesVisStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ IDispatch **pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_tColor )( 
            IRdTrianglesVisStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ IDispatch *newVal);
        
        END_INTERFACE
    } IRdTrianglesVisStreamVtbl;

    interface IRdTrianglesVisStream
    {
        CONST_VTBL struct IRdTrianglesVisStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdTrianglesVisStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdTrianglesVisStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdTrianglesVisStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdTrianglesVisStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdTrianglesVisStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdTrianglesVisStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdTrianglesVisStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdTrianglesVisStream_GetNumTriangles(This,dwNumVertices)	\
    (This)->lpVtbl -> GetNumTriangles(This,dwNumVertices)

#define IRdTrianglesVisStream_SetNumTriangles(This,dwNumTriangles)	\
    (This)->lpVtbl -> SetNumTriangles(This,dwNumTriangles)

#define IRdTrianglesVisStream_get_color(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_color(This,dwIndex,pVal)

#define IRdTrianglesVisStream_put_color(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_color(This,dwIndex,newVal)

#define IRdTrianglesVisStream_get_tColor(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_tColor(This,dwIndex,pVal)

#define IRdTrianglesVisStream_put_tColor(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_tColor(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTrianglesVisStream_GetNumTriangles_Proxy( 
    IRdTrianglesVisStream * This,
    /* [retval][out] */ RtDWORD *dwNumVertices);


void __RPC_STUB IRdTrianglesVisStream_GetNumTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTrianglesVisStream_SetNumTriangles_Proxy( 
    IRdTrianglesVisStream * This,
    /* [in] */ RtDWORD dwNumTriangles);


void __RPC_STUB IRdTrianglesVisStream_SetNumTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTrianglesVisStream_get_color_Proxy( 
    IRdTrianglesVisStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


void __RPC_STUB IRdTrianglesVisStream_get_color_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTrianglesVisStream_put_color_Proxy( 
    IRdTrianglesVisStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


void __RPC_STUB IRdTrianglesVisStream_put_color_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdTrianglesVisStream_get_tColor_Proxy( 
    IRdTrianglesVisStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ IDispatch **pVal);


void __RPC_STUB IRdTrianglesVisStream_get_tColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdTrianglesVisStream_put_tColor_Proxy( 
    IRdTrianglesVisStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ IDispatch *newVal);


void __RPC_STUB IRdTrianglesVisStream_put_tColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdTrianglesVisStream_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1465 */
/* [local] */ 

struct RtTriangleTimestampStream
    {
    RtDWORD dwNumActiveTriangles;
    RtDWORD dwTrianglesPerBlock;
    RtDWORD dwBaseTimestamp;
    RtDWORD dwTimestamps[ 8192 ];
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1465_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1465_v0_0_s_ifspec;

#ifndef __IRdTriangleTimestampStream_INTERFACE_DEFINED__
#define __IRdTriangleTimestampStream_INTERFACE_DEFINED__

/* interface IRdTriangleTimestampStream */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IRdTriangleTimestampStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("945C9CCB-008B-4977-90DA-CA4F306BD85F")
    IRdTriangleTimestampStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LockBlockTimestamps( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UnLockBlockTimestamps( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBlockTimestamp( 
            /* [in] */ RtDWORD dwStartTriangle,
            /* [in] */ RtDWORD dwTriangleCount,
            /* [retval][out] */ RtDWORD *pdwTimestamp) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSingleBlockTimestamp( 
            /* [in] */ RtDWORD dwBlockIndex,
            /* [retval][out] */ RtDWORD *pdwTimestamp) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMaxTimestamp( 
            /* [retval][out] */ RtDWORD *pdwTimestamp) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBlockSize( 
            /* [retval][out] */ RtDWORD *pdwBlockSize) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBlockCount( 
            /* [retval][out] */ RtDWORD *pdwBlockCount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetStreamElements( 
            /* [retval][out] */ RtDWORD *pdwSize) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetStreamElements( 
            /* [in] */ RtDWORD dwSize) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdTriangleTimestampStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdTriangleTimestampStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdTriangleTimestampStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdTriangleTimestampStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdTriangleTimestampStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdTriangleTimestampStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdTriangleTimestampStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdTriangleTimestampStream * 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 *LockBlockTimestamps )( 
            IRdTriangleTimestampStream * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UnLockBlockTimestamps )( 
            IRdTriangleTimestampStream * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBlockTimestamp )( 
            IRdTriangleTimestampStream * This,
            /* [in] */ RtDWORD dwStartTriangle,
            /* [in] */ RtDWORD dwTriangleCount,
            /* [retval][out] */ RtDWORD *pdwTimestamp);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSingleBlockTimestamp )( 
            IRdTriangleTimestampStream * This,
            /* [in] */ RtDWORD dwBlockIndex,
            /* [retval][out] */ RtDWORD *pdwTimestamp);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetMaxTimestamp )( 
            IRdTriangleTimestampStream * This,
            /* [retval][out] */ RtDWORD *pdwTimestamp);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBlockSize )( 
            IRdTriangleTimestampStream * This,
            /* [retval][out] */ RtDWORD *pdwBlockSize);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBlockCount )( 
            IRdTriangleTimestampStream * This,
            /* [retval][out] */ RtDWORD *pdwBlockCount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetStreamElements )( 
            IRdTriangleTimestampStream * This,
            /* [retval][out] */ RtDWORD *pdwSize);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetStreamElements )( 
            IRdTriangleTimestampStream * This,
            /* [in] */ RtDWORD dwSize);
        
        END_INTERFACE
    } IRdTriangleTimestampStreamVtbl;

    interface IRdTriangleTimestampStream
    {
        CONST_VTBL struct IRdTriangleTimestampStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdTriangleTimestampStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdTriangleTimestampStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdTriangleTimestampStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdTriangleTimestampStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdTriangleTimestampStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdTriangleTimestampStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdTriangleTimestampStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdTriangleTimestampStream_LockBlockTimestamps(This)	\
    (This)->lpVtbl -> LockBlockTimestamps(This)

#define IRdTriangleTimestampStream_UnLockBlockTimestamps(This)	\
    (This)->lpVtbl -> UnLockBlockTimestamps(This)

#define IRdTriangleTimestampStream_GetBlockTimestamp(This,dwStartTriangle,dwTriangleCount,pdwTimestamp)	\
    (This)->lpVtbl -> GetBlockTimestamp(This,dwStartTriangle,dwTriangleCount,pdwTimestamp)

#define IRdTriangleTimestampStream_GetSingleBlockTimestamp(This,dwBlockIndex,pdwTimestamp)	\
    (This)->lpVtbl -> GetSingleBlockTimestamp(This,dwBlockIndex,pdwTimestamp)

#define IRdTriangleTimestampStream_GetMaxTimestamp(This,pdwTimestamp)	\
    (This)->lpVtbl -> GetMaxTimestamp(This,pdwTimestamp)

#define IRdTriangleTimestampStream_GetBlockSize(This,pdwBlockSize)	\
    (This)->lpVtbl -> GetBlockSize(This,pdwBlockSize)

#define IRdTriangleTimestampStream_GetBlockCount(This,pdwBlockCount)	\
    (This)->lpVtbl -> GetBlockCount(This,pdwBlockCount)

#define IRdTriangleTimestampStream_GetStreamElements(This,pdwSize)	\
    (This)->lpVtbl -> GetStreamElements(This,pdwSize)

#define IRdTriangleTimestampStream_SetStreamElements(This,dwSize)	\
    (This)->lpVtbl -> SetStreamElements(This,dwSize)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleTimestampStream_LockBlockTimestamps_Proxy( 
    IRdTriangleTimestampStream * This);


void __RPC_STUB IRdTriangleTimestampStream_LockBlockTimestamps_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleTimestampStream_UnLockBlockTimestamps_Proxy( 
    IRdTriangleTimestampStream * This);


void __RPC_STUB IRdTriangleTimestampStream_UnLockBlockTimestamps_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleTimestampStream_GetBlockTimestamp_Proxy( 
    IRdTriangleTimestampStream * This,
    /* [in] */ RtDWORD dwStartTriangle,
    /* [in] */ RtDWORD dwTriangleCount,
    /* [retval][out] */ RtDWORD *pdwTimestamp);


void __RPC_STUB IRdTriangleTimestampStream_GetBlockTimestamp_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleTimestampStream_GetSingleBlockTimestamp_Proxy( 
    IRdTriangleTimestampStream * This,
    /* [in] */ RtDWORD dwBlockIndex,
    /* [retval][out] */ RtDWORD *pdwTimestamp);


void __RPC_STUB IRdTriangleTimestampStream_GetSingleBlockTimestamp_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleTimestampStream_GetMaxTimestamp_Proxy( 
    IRdTriangleTimestampStream * This,
    /* [retval][out] */ RtDWORD *pdwTimestamp);


void __RPC_STUB IRdTriangleTimestampStream_GetMaxTimestamp_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleTimestampStream_GetBlockSize_Proxy( 
    IRdTriangleTimestampStream * This,
    /* [retval][out] */ RtDWORD *pdwBlockSize);


void __RPC_STUB IRdTriangleTimestampStream_GetBlockSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleTimestampStream_GetBlockCount_Proxy( 
    IRdTriangleTimestampStream * This,
    /* [retval][out] */ RtDWORD *pdwBlockCount);


void __RPC_STUB IRdTriangleTimestampStream_GetBlockCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleTimestampStream_GetStreamElements_Proxy( 
    IRdTriangleTimestampStream * This,
    /* [retval][out] */ RtDWORD *pdwSize);


void __RPC_STUB IRdTriangleTimestampStream_GetStreamElements_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdTriangleTimestampStream_SetStreamElements_Proxy( 
    IRdTriangleTimestampStream * This,
    /* [in] */ RtDWORD dwSize);


void __RPC_STUB IRdTriangleTimestampStream_SetStreamElements_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdTriangleTimestampStream_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1466 */
/* [local] */ 

struct RtVertexVisualization
    {
    RtUlong uColor;
    RtFloat fPointSize;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1466_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1466_v0_0_s_ifspec;

#ifndef __IRdVertexVisualizationStream_INTERFACE_DEFINED__
#define __IRdVertexVisualizationStream_INTERFACE_DEFINED__

/* interface IRdVertexVisualizationStream */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IRdVertexVisualizationStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2417EC10-EA83-4745-8198-89615AC5AE64")
    IRdVertexVisualizationStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_color( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_color( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_pointsize( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_pointsize( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumVertices( 
            /* [retval][out] */ RtDWORD *dwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumVertices( 
            /* [in] */ RtDWORD dwNumVertices) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_vColor( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ IDispatch **pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_vColor( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ IDispatch *newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdVertexVisualizationStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdVertexVisualizationStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdVertexVisualizationStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdVertexVisualizationStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdVertexVisualizationStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdVertexVisualizationStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdVertexVisualizationStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdVertexVisualizationStream * 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_color )( 
            IRdVertexVisualizationStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_color )( 
            IRdVertexVisualizationStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_pointsize )( 
            IRdVertexVisualizationStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_pointsize )( 
            IRdVertexVisualizationStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetNumVertices )( 
            IRdVertexVisualizationStream * This,
            /* [retval][out] */ RtDWORD *dwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumVertices )( 
            IRdVertexVisualizationStream * This,
            /* [in] */ RtDWORD dwNumVertices);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_vColor )( 
            IRdVertexVisualizationStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ IDispatch **pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_vColor )( 
            IRdVertexVisualizationStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ IDispatch *newVal);
        
        END_INTERFACE
    } IRdVertexVisualizationStreamVtbl;

    interface IRdVertexVisualizationStream
    {
        CONST_VTBL struct IRdVertexVisualizationStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdVertexVisualizationStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdVertexVisualizationStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdVertexVisualizationStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdVertexVisualizationStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdVertexVisualizationStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdVertexVisualizationStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdVertexVisualizationStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdVertexVisualizationStream_get_color(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_color(This,dwIndex,pVal)

#define IRdVertexVisualizationStream_put_color(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_color(This,dwIndex,newVal)

#define IRdVertexVisualizationStream_get_pointsize(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_pointsize(This,dwIndex,pVal)

#define IRdVertexVisualizationStream_put_pointsize(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_pointsize(This,dwIndex,newVal)

#define IRdVertexVisualizationStream_GetNumVertices(This,dwNumVertices)	\
    (This)->lpVtbl -> GetNumVertices(This,dwNumVertices)

#define IRdVertexVisualizationStream_SetNumVertices(This,dwNumVertices)	\
    (This)->lpVtbl -> SetNumVertices(This,dwNumVertices)

#define IRdVertexVisualizationStream_get_vColor(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_vColor(This,dwIndex,pVal)

#define IRdVertexVisualizationStream_put_vColor(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_vColor(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexVisualizationStream_get_color_Proxy( 
    IRdVertexVisualizationStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


void __RPC_STUB IRdVertexVisualizationStream_get_color_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexVisualizationStream_put_color_Proxy( 
    IRdVertexVisualizationStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


void __RPC_STUB IRdVertexVisualizationStream_put_color_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexVisualizationStream_get_pointsize_Proxy( 
    IRdVertexVisualizationStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdVertexVisualizationStream_get_pointsize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexVisualizationStream_put_pointsize_Proxy( 
    IRdVertexVisualizationStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdVertexVisualizationStream_put_pointsize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexVisualizationStream_GetNumVertices_Proxy( 
    IRdVertexVisualizationStream * This,
    /* [retval][out] */ RtDWORD *dwNumVertices);


void __RPC_STUB IRdVertexVisualizationStream_GetNumVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexVisualizationStream_SetNumVertices_Proxy( 
    IRdVertexVisualizationStream * This,
    /* [in] */ RtDWORD dwNumVertices);


void __RPC_STUB IRdVertexVisualizationStream_SetNumVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexVisualizationStream_get_vColor_Proxy( 
    IRdVertexVisualizationStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ IDispatch **pVal);


void __RPC_STUB IRdVertexVisualizationStream_get_vColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexVisualizationStream_put_vColor_Proxy( 
    IRdVertexVisualizationStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ IDispatch *newVal);


void __RPC_STUB IRdVertexVisualizationStream_put_vColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdVertexVisualizationStream_INTERFACE_DEFINED__ */


#ifndef __IRdHairDensityStream_INTERFACE_DEFINED__
#define __IRdHairDensityStream_INTERFACE_DEFINED__

/* interface IRdHairDensityStream */
/* [unique][helpstring][dual][uuid][local][object] */ 


EXTERN_C const IID IID_IRdHairDensityStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E40A7CDD-F038-4d05-B4E2-7F49E57ECF13")
    IRdHairDensityStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumVertices( 
            /* [retval][out] */ RtDWORD *pdwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumVertices( 
            /* [in] */ RtDWORD dwNumVertices) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_density( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_density( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdHairDensityStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdHairDensityStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdHairDensityStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdHairDensityStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdHairDensityStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdHairDensityStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdHairDensityStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdHairDensityStream * 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 *GetNumVertices )( 
            IRdHairDensityStream * This,
            /* [retval][out] */ RtDWORD *pdwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumVertices )( 
            IRdHairDensityStream * This,
            /* [in] */ RtDWORD dwNumVertices);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_density )( 
            IRdHairDensityStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_density )( 
            IRdHairDensityStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        END_INTERFACE
    } IRdHairDensityStreamVtbl;

    interface IRdHairDensityStream
    {
        CONST_VTBL struct IRdHairDensityStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdHairDensityStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdHairDensityStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdHairDensityStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdHairDensityStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdHairDensityStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdHairDensityStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdHairDensityStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdHairDensityStream_GetNumVertices(This,pdwNumVertices)	\
    (This)->lpVtbl -> GetNumVertices(This,pdwNumVertices)

#define IRdHairDensityStream_SetNumVertices(This,dwNumVertices)	\
    (This)->lpVtbl -> SetNumVertices(This,dwNumVertices)

#define IRdHairDensityStream_get_density(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_density(This,dwIndex,pVal)

#define IRdHairDensityStream_put_density(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_density(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdHairDensityStream_GetNumVertices_Proxy( 
    IRdHairDensityStream * This,
    /* [retval][out] */ RtDWORD *pdwNumVertices);


void __RPC_STUB IRdHairDensityStream_GetNumVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdHairDensityStream_SetNumVertices_Proxy( 
    IRdHairDensityStream * This,
    /* [in] */ RtDWORD dwNumVertices);


void __RPC_STUB IRdHairDensityStream_SetNumVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdHairDensityStream_get_density_Proxy( 
    IRdHairDensityStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdHairDensityStream_get_density_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdHairDensityStream_put_density_Proxy( 
    IRdHairDensityStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdHairDensityStream_put_density_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdHairDensityStream_INTERFACE_DEFINED__ */


#ifndef __IRdHairLengthStream_INTERFACE_DEFINED__
#define __IRdHairLengthStream_INTERFACE_DEFINED__

/* interface IRdHairLengthStream */
/* [unique][helpstring][dual][uuid][local][object] */ 


EXTERN_C const IID IID_IRdHairLengthStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9E814B5F-43D8-415b-808A-2C7B1C7B10EB")
    IRdHairLengthStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumVertices( 
            /* [retval][out] */ RtDWORD *pdwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumVertices( 
            /* [in] */ RtDWORD dwNumVertices) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_length( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_length( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdHairLengthStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdHairLengthStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdHairLengthStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdHairLengthStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdHairLengthStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdHairLengthStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdHairLengthStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdHairLengthStream * 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 *GetNumVertices )( 
            IRdHairLengthStream * This,
            /* [retval][out] */ RtDWORD *pdwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumVertices )( 
            IRdHairLengthStream * This,
            /* [in] */ RtDWORD dwNumVertices);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( 
            IRdHairLengthStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_length )( 
            IRdHairLengthStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        END_INTERFACE
    } IRdHairLengthStreamVtbl;

    interface IRdHairLengthStream
    {
        CONST_VTBL struct IRdHairLengthStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdHairLengthStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdHairLengthStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdHairLengthStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdHairLengthStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdHairLengthStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdHairLengthStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdHairLengthStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdHairLengthStream_GetNumVertices(This,pdwNumVertices)	\
    (This)->lpVtbl -> GetNumVertices(This,pdwNumVertices)

#define IRdHairLengthStream_SetNumVertices(This,dwNumVertices)	\
    (This)->lpVtbl -> SetNumVertices(This,dwNumVertices)

#define IRdHairLengthStream_get_length(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_length(This,dwIndex,pVal)

#define IRdHairLengthStream_put_length(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_length(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdHairLengthStream_GetNumVertices_Proxy( 
    IRdHairLengthStream * This,
    /* [retval][out] */ RtDWORD *pdwNumVertices);


void __RPC_STUB IRdHairLengthStream_GetNumVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdHairLengthStream_SetNumVertices_Proxy( 
    IRdHairLengthStream * This,
    /* [in] */ RtDWORD dwNumVertices);


void __RPC_STUB IRdHairLengthStream_SetNumVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdHairLengthStream_get_length_Proxy( 
    IRdHairLengthStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdHairLengthStream_get_length_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdHairLengthStream_put_length_Proxy( 
    IRdHairLengthStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdHairLengthStream_put_length_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdHairLengthStream_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1469 */
/* [local] */ 

struct RtVertexSubdivInfo
    {
    RtFloat fWeight;
    RtLong lSubdivs;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1469_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1469_v0_0_s_ifspec;

#ifndef __IRdSSVertexStream_INTERFACE_DEFINED__
#define __IRdSSVertexStream_INTERFACE_DEFINED__

/* interface IRdSSVertexStream */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdSSVertexStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("59C376F5-AFBF-49D3-8534-049EF54F24FA")
    IRdSSVertexStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumVertices( 
            /* [retval][out] */ RtDWORD *dwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumVertices( 
            /* [in] */ RtDWORD dwNumVertices) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_weight( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_weight( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_subdiv( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtLong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_subdiv( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtLong newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdSSVertexStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdSSVertexStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdSSVertexStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdSSVertexStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdSSVertexStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdSSVertexStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdSSVertexStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdSSVertexStream * 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 *GetNumVertices )( 
            IRdSSVertexStream * This,
            /* [retval][out] */ RtDWORD *dwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumVertices )( 
            IRdSSVertexStream * This,
            /* [in] */ RtDWORD dwNumVertices);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_weight )( 
            IRdSSVertexStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_weight )( 
            IRdSSVertexStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_subdiv )( 
            IRdSSVertexStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtLong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_subdiv )( 
            IRdSSVertexStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtLong newVal);
        
        END_INTERFACE
    } IRdSSVertexStreamVtbl;

    interface IRdSSVertexStream
    {
        CONST_VTBL struct IRdSSVertexStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdSSVertexStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdSSVertexStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdSSVertexStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdSSVertexStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdSSVertexStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdSSVertexStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdSSVertexStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdSSVertexStream_GetNumVertices(This,dwNumVertices)	\
    (This)->lpVtbl -> GetNumVertices(This,dwNumVertices)

#define IRdSSVertexStream_SetNumVertices(This,dwNumVertices)	\
    (This)->lpVtbl -> SetNumVertices(This,dwNumVertices)

#define IRdSSVertexStream_get_weight(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_weight(This,dwIndex,pVal)

#define IRdSSVertexStream_put_weight(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_weight(This,dwIndex,newVal)

#define IRdSSVertexStream_get_subdiv(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_subdiv(This,dwIndex,pVal)

#define IRdSSVertexStream_put_subdiv(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_subdiv(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSSVertexStream_GetNumVertices_Proxy( 
    IRdSSVertexStream * This,
    /* [retval][out] */ RtDWORD *dwNumVertices);


void __RPC_STUB IRdSSVertexStream_GetNumVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSSVertexStream_SetNumVertices_Proxy( 
    IRdSSVertexStream * This,
    /* [in] */ RtDWORD dwNumVertices);


void __RPC_STUB IRdSSVertexStream_SetNumVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdSSVertexStream_get_weight_Proxy( 
    IRdSSVertexStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdSSVertexStream_get_weight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdSSVertexStream_put_weight_Proxy( 
    IRdSSVertexStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdSSVertexStream_put_weight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdSSVertexStream_get_subdiv_Proxy( 
    IRdSSVertexStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtLong *pVal);


void __RPC_STUB IRdSSVertexStream_get_subdiv_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdSSVertexStream_put_subdiv_Proxy( 
    IRdSSVertexStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtLong newVal);


void __RPC_STUB IRdSSVertexStream_put_subdiv_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdSSVertexStream_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1470 */
/* [local] */ 

struct RtVertexHair
    {
    RtVector3f growthdir;
    RtVector3f gravity;
    RtFloat density;
    RtFloat length;
    RtFloat softness;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1470_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1470_v0_0_s_ifspec;

#ifndef __IRdVertexHairStream_INTERFACE_DEFINED__
#define __IRdVertexHairStream_INTERFACE_DEFINED__

/* interface IRdVertexHairStream */
/* [unique][helpstring][dual][uuid][local][object] */ 


EXTERN_C const IID IID_IRdVertexHairStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F0F023AC-7ADA-4218-890A-E5D45E530075")
    IRdVertexHairStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumVertices( 
            /* [retval][out] */ RtDWORD *pdwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumVertices( 
            /* [in] */ RtDWORD dwNumVertices) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_density( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_density( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_length( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_length( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_softness( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_softness( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_direction( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtVector3f *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_direction( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtVector3f newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_gravity( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtVector3f *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_gravity( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtVector3f newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdVertexHairStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdVertexHairStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdVertexHairStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdVertexHairStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdVertexHairStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdVertexHairStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdVertexHairStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdVertexHairStream * 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 *GetNumVertices )( 
            IRdVertexHairStream * This,
            /* [retval][out] */ RtDWORD *pdwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumVertices )( 
            IRdVertexHairStream * This,
            /* [in] */ RtDWORD dwNumVertices);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_density )( 
            IRdVertexHairStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_density )( 
            IRdVertexHairStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( 
            IRdVertexHairStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_length )( 
            IRdVertexHairStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_softness )( 
            IRdVertexHairStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_softness )( 
            IRdVertexHairStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_direction )( 
            IRdVertexHairStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtVector3f *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_direction )( 
            IRdVertexHairStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtVector3f newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_gravity )( 
            IRdVertexHairStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtVector3f *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_gravity )( 
            IRdVertexHairStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtVector3f newVal);
        
        END_INTERFACE
    } IRdVertexHairStreamVtbl;

    interface IRdVertexHairStream
    {
        CONST_VTBL struct IRdVertexHairStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdVertexHairStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdVertexHairStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdVertexHairStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdVertexHairStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdVertexHairStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdVertexHairStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdVertexHairStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdVertexHairStream_GetNumVertices(This,pdwNumVertices)	\
    (This)->lpVtbl -> GetNumVertices(This,pdwNumVertices)

#define IRdVertexHairStream_SetNumVertices(This,dwNumVertices)	\
    (This)->lpVtbl -> SetNumVertices(This,dwNumVertices)

#define IRdVertexHairStream_get_density(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_density(This,dwIndex,pVal)

#define IRdVertexHairStream_put_density(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_density(This,dwIndex,newVal)

#define IRdVertexHairStream_get_length(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_length(This,dwIndex,pVal)

#define IRdVertexHairStream_put_length(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_length(This,dwIndex,newVal)

#define IRdVertexHairStream_get_softness(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_softness(This,dwIndex,pVal)

#define IRdVertexHairStream_put_softness(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_softness(This,dwIndex,newVal)

#define IRdVertexHairStream_get_direction(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_direction(This,dwIndex,pVal)

#define IRdVertexHairStream_put_direction(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_direction(This,dwIndex,newVal)

#define IRdVertexHairStream_get_gravity(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_gravity(This,dwIndex,pVal)

#define IRdVertexHairStream_put_gravity(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_gravity(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexHairStream_GetNumVertices_Proxy( 
    IRdVertexHairStream * This,
    /* [retval][out] */ RtDWORD *pdwNumVertices);


void __RPC_STUB IRdVertexHairStream_GetNumVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexHairStream_SetNumVertices_Proxy( 
    IRdVertexHairStream * This,
    /* [in] */ RtDWORD dwNumVertices);


void __RPC_STUB IRdVertexHairStream_SetNumVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexHairStream_get_density_Proxy( 
    IRdVertexHairStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdVertexHairStream_get_density_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexHairStream_put_density_Proxy( 
    IRdVertexHairStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdVertexHairStream_put_density_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexHairStream_get_length_Proxy( 
    IRdVertexHairStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdVertexHairStream_get_length_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexHairStream_put_length_Proxy( 
    IRdVertexHairStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdVertexHairStream_put_length_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexHairStream_get_softness_Proxy( 
    IRdVertexHairStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdVertexHairStream_get_softness_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexHairStream_put_softness_Proxy( 
    IRdVertexHairStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdVertexHairStream_put_softness_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexHairStream_get_direction_Proxy( 
    IRdVertexHairStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtVector3f *pVal);


void __RPC_STUB IRdVertexHairStream_get_direction_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexHairStream_put_direction_Proxy( 
    IRdVertexHairStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtVector3f newVal);


void __RPC_STUB IRdVertexHairStream_put_direction_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexHairStream_get_gravity_Proxy( 
    IRdVertexHairStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtVector3f *pVal);


void __RPC_STUB IRdVertexHairStream_get_gravity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexHairStream_put_gravity_Proxy( 
    IRdVertexHairStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtVector3f newVal);


void __RPC_STUB IRdVertexHairStream_put_gravity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdVertexHairStream_INTERFACE_DEFINED__ */


#ifndef __IRdObjNamesIndexStream_INTERFACE_DEFINED__
#define __IRdObjNamesIndexStream_INTERFACE_DEFINED__

/* interface IRdObjNamesIndexStream */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdObjNamesIndexStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3D1347F5-480A-4af5-B59A-9876152BA0B1")
    IRdObjNamesIndexStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumIndices( 
            /* [retval][out] */ RtDWORD *dwNumMaterialIndices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumIndices( 
            /* [in] */ RtDWORD dwNumMaterialIndices) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_index( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtDWORD *index) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_index( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD index) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdObjNamesIndexStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdObjNamesIndexStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdObjNamesIndexStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdObjNamesIndexStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdObjNamesIndexStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdObjNamesIndexStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdObjNamesIndexStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdObjNamesIndexStream * 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 *GetNumIndices )( 
            IRdObjNamesIndexStream * This,
            /* [retval][out] */ RtDWORD *dwNumMaterialIndices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumIndices )( 
            IRdObjNamesIndexStream * This,
            /* [in] */ RtDWORD dwNumMaterialIndices);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_index )( 
            IRdObjNamesIndexStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtDWORD *index);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_index )( 
            IRdObjNamesIndexStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD index);
        
        END_INTERFACE
    } IRdObjNamesIndexStreamVtbl;

    interface IRdObjNamesIndexStream
    {
        CONST_VTBL struct IRdObjNamesIndexStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdObjNamesIndexStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdObjNamesIndexStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdObjNamesIndexStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdObjNamesIndexStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdObjNamesIndexStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdObjNamesIndexStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdObjNamesIndexStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdObjNamesIndexStream_GetNumIndices(This,dwNumMaterialIndices)	\
    (This)->lpVtbl -> GetNumIndices(This,dwNumMaterialIndices)

#define IRdObjNamesIndexStream_SetNumIndices(This,dwNumMaterialIndices)	\
    (This)->lpVtbl -> SetNumIndices(This,dwNumMaterialIndices)

#define IRdObjNamesIndexStream_get_index(This,dwIndex,index)	\
    (This)->lpVtbl -> get_index(This,dwIndex,index)

#define IRdObjNamesIndexStream_put_index(This,dwIndex,index)	\
    (This)->lpVtbl -> put_index(This,dwIndex,index)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdObjNamesIndexStream_GetNumIndices_Proxy( 
    IRdObjNamesIndexStream * This,
    /* [retval][out] */ RtDWORD *dwNumMaterialIndices);


void __RPC_STUB IRdObjNamesIndexStream_GetNumIndices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdObjNamesIndexStream_SetNumIndices_Proxy( 
    IRdObjNamesIndexStream * This,
    /* [in] */ RtDWORD dwNumMaterialIndices);


void __RPC_STUB IRdObjNamesIndexStream_SetNumIndices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdObjNamesIndexStream_get_index_Proxy( 
    IRdObjNamesIndexStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtDWORD *index);


void __RPC_STUB IRdObjNamesIndexStream_get_index_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdObjNamesIndexStream_put_index_Proxy( 
    IRdObjNamesIndexStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtDWORD index);


void __RPC_STUB IRdObjNamesIndexStream_put_index_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdObjNamesIndexStream_INTERFACE_DEFINED__ */


#ifndef __IRdSurfaceIdIndexStream_INTERFACE_DEFINED__
#define __IRdSurfaceIdIndexStream_INTERFACE_DEFINED__

/* interface IRdSurfaceIdIndexStream */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdSurfaceIdIndexStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9EA6533F-D8CE-48dc-9243-52F79FBDB274")
    IRdSurfaceIdIndexStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumIndices( 
            /* [retval][out] */ RtDWORD *dwNumTripleIndices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumIndices( 
            /* [in] */ RtDWORD dwNumMaterialIndices) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_index( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtDWORD *index) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_index( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD index) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdSurfaceIdIndexStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdSurfaceIdIndexStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdSurfaceIdIndexStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdSurfaceIdIndexStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdSurfaceIdIndexStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdSurfaceIdIndexStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdSurfaceIdIndexStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdSurfaceIdIndexStream * 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 *GetNumIndices )( 
            IRdSurfaceIdIndexStream * This,
            /* [retval][out] */ RtDWORD *dwNumTripleIndices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumIndices )( 
            IRdSurfaceIdIndexStream * This,
            /* [in] */ RtDWORD dwNumMaterialIndices);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_index )( 
            IRdSurfaceIdIndexStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtDWORD *index);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_index )( 
            IRdSurfaceIdIndexStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD index);
        
        END_INTERFACE
    } IRdSurfaceIdIndexStreamVtbl;

    interface IRdSurfaceIdIndexStream
    {
        CONST_VTBL struct IRdSurfaceIdIndexStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdSurfaceIdIndexStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdSurfaceIdIndexStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdSurfaceIdIndexStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdSurfaceIdIndexStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdSurfaceIdIndexStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdSurfaceIdIndexStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdSurfaceIdIndexStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdSurfaceIdIndexStream_GetNumIndices(This,dwNumTripleIndices)	\
    (This)->lpVtbl -> GetNumIndices(This,dwNumTripleIndices)

#define IRdSurfaceIdIndexStream_SetNumIndices(This,dwNumMaterialIndices)	\
    (This)->lpVtbl -> SetNumIndices(This,dwNumMaterialIndices)

#define IRdSurfaceIdIndexStream_get_index(This,dwIndex,index)	\
    (This)->lpVtbl -> get_index(This,dwIndex,index)

#define IRdSurfaceIdIndexStream_put_index(This,dwIndex,index)	\
    (This)->lpVtbl -> put_index(This,dwIndex,index)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSurfaceIdIndexStream_GetNumIndices_Proxy( 
    IRdSurfaceIdIndexStream * This,
    /* [retval][out] */ RtDWORD *dwNumTripleIndices);


void __RPC_STUB IRdSurfaceIdIndexStream_GetNumIndices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSurfaceIdIndexStream_SetNumIndices_Proxy( 
    IRdSurfaceIdIndexStream * This,
    /* [in] */ RtDWORD dwNumMaterialIndices);


void __RPC_STUB IRdSurfaceIdIndexStream_SetNumIndices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdSurfaceIdIndexStream_get_index_Proxy( 
    IRdSurfaceIdIndexStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtDWORD *index);


void __RPC_STUB IRdSurfaceIdIndexStream_get_index_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdSurfaceIdIndexStream_put_index_Proxy( 
    IRdSurfaceIdIndexStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtDWORD index);


void __RPC_STUB IRdSurfaceIdIndexStream_put_index_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdSurfaceIdIndexStream_INTERFACE_DEFINED__ */


#ifndef __IRdNormalsSkinStream_INTERFACE_DEFINED__
#define __IRdNormalsSkinStream_INTERFACE_DEFINED__

/* interface IRdNormalsSkinStream */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IRdNormalsSkinStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FDEE67D5-DC88-4ae1-BE94-13F5E201372B")
    IRdNormalsSkinStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumNormals( 
            /* [retval][out] */ RtDWORD *dwNumNormals) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumNormals( 
            /* [in] */ RtDWORD dwNumNormals) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_x( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_x( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_y( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_y( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_z( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_z( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdNormalsSkinStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdNormalsSkinStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdNormalsSkinStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdNormalsSkinStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdNormalsSkinStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdNormalsSkinStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdNormalsSkinStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdNormalsSkinStream * 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 *GetNumNormals )( 
            IRdNormalsSkinStream * This,
            /* [retval][out] */ RtDWORD *dwNumNormals);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumNormals )( 
            IRdNormalsSkinStream * This,
            /* [in] */ RtDWORD dwNumNormals);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_x )( 
            IRdNormalsSkinStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_x )( 
            IRdNormalsSkinStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_y )( 
            IRdNormalsSkinStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_y )( 
            IRdNormalsSkinStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_z )( 
            IRdNormalsSkinStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_z )( 
            IRdNormalsSkinStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        END_INTERFACE
    } IRdNormalsSkinStreamVtbl;

    interface IRdNormalsSkinStream
    {
        CONST_VTBL struct IRdNormalsSkinStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdNormalsSkinStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdNormalsSkinStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdNormalsSkinStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdNormalsSkinStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdNormalsSkinStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdNormalsSkinStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdNormalsSkinStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdNormalsSkinStream_GetNumNormals(This,dwNumNormals)	\
    (This)->lpVtbl -> GetNumNormals(This,dwNumNormals)

#define IRdNormalsSkinStream_SetNumNormals(This,dwNumNormals)	\
    (This)->lpVtbl -> SetNumNormals(This,dwNumNormals)

#define IRdNormalsSkinStream_get_x(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_x(This,dwIndex,pVal)

#define IRdNormalsSkinStream_put_x(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_x(This,dwIndex,newVal)

#define IRdNormalsSkinStream_get_y(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_y(This,dwIndex,pVal)

#define IRdNormalsSkinStream_put_y(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_y(This,dwIndex,newVal)

#define IRdNormalsSkinStream_get_z(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_z(This,dwIndex,pVal)

#define IRdNormalsSkinStream_put_z(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_z(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdNormalsSkinStream_GetNumNormals_Proxy( 
    IRdNormalsSkinStream * This,
    /* [retval][out] */ RtDWORD *dwNumNormals);


void __RPC_STUB IRdNormalsSkinStream_GetNumNormals_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdNormalsSkinStream_SetNumNormals_Proxy( 
    IRdNormalsSkinStream * This,
    /* [in] */ RtDWORD dwNumNormals);


void __RPC_STUB IRdNormalsSkinStream_SetNumNormals_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdNormalsSkinStream_get_x_Proxy( 
    IRdNormalsSkinStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdNormalsSkinStream_get_x_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdNormalsSkinStream_put_x_Proxy( 
    IRdNormalsSkinStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdNormalsSkinStream_put_x_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdNormalsSkinStream_get_y_Proxy( 
    IRdNormalsSkinStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdNormalsSkinStream_get_y_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdNormalsSkinStream_put_y_Proxy( 
    IRdNormalsSkinStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdNormalsSkinStream_put_y_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdNormalsSkinStream_get_z_Proxy( 
    IRdNormalsSkinStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdNormalsSkinStream_get_z_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdNormalsSkinStream_put_z_Proxy( 
    IRdNormalsSkinStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdNormalsSkinStream_put_z_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdNormalsSkinStream_INTERFACE_DEFINED__ */


#ifndef __IRdObjNamesCustStream_INTERFACE_DEFINED__
#define __IRdObjNamesCustStream_INTERFACE_DEFINED__

/* interface IRdObjNamesCustStream */
/* [unique][helpstring][dual][uuid][local][object] */ 


EXTERN_C const IID IID_IRdObjNamesCustStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5229ACBF-6A4F-4d08-AAC4-98F21761121F")
    IRdObjNamesCustStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBufferSize( 
            /* [retval][out] */ RtDWORD *dwNumIndices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetBufferSize( 
            /* [in] */ RtDWORD dwNumIndices) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Name( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ BSTR *szName) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdObjNamesCustStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdObjNamesCustStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdObjNamesCustStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdObjNamesCustStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdObjNamesCustStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdObjNamesCustStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdObjNamesCustStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdObjNamesCustStream * 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 *GetBufferSize )( 
            IRdObjNamesCustStream * This,
            /* [retval][out] */ RtDWORD *dwNumIndices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetBufferSize )( 
            IRdObjNamesCustStream * This,
            /* [in] */ RtDWORD dwNumIndices);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Name )( 
            IRdObjNamesCustStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ BSTR *szName);
        
        END_INTERFACE
    } IRdObjNamesCustStreamVtbl;

    interface IRdObjNamesCustStream
    {
        CONST_VTBL struct IRdObjNamesCustStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdObjNamesCustStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdObjNamesCustStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdObjNamesCustStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdObjNamesCustStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdObjNamesCustStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdObjNamesCustStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdObjNamesCustStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdObjNamesCustStream_GetBufferSize(This,dwNumIndices)	\
    (This)->lpVtbl -> GetBufferSize(This,dwNumIndices)

#define IRdObjNamesCustStream_SetBufferSize(This,dwNumIndices)	\
    (This)->lpVtbl -> SetBufferSize(This,dwNumIndices)

#define IRdObjNamesCustStream_get_Name(This,dwIndex,szName)	\
    (This)->lpVtbl -> get_Name(This,dwIndex,szName)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdObjNamesCustStream_GetBufferSize_Proxy( 
    IRdObjNamesCustStream * This,
    /* [retval][out] */ RtDWORD *dwNumIndices);


void __RPC_STUB IRdObjNamesCustStream_GetBufferSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdObjNamesCustStream_SetBufferSize_Proxy( 
    IRdObjNamesCustStream * This,
    /* [in] */ RtDWORD dwNumIndices);


void __RPC_STUB IRdObjNamesCustStream_SetBufferSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdObjNamesCustStream_get_Name_Proxy( 
    IRdObjNamesCustStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ BSTR *szName);


void __RPC_STUB IRdObjNamesCustStream_get_Name_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdObjNamesCustStream_INTERFACE_DEFINED__ */


#ifndef __IRdSkinMatrixStream_INTERFACE_DEFINED__
#define __IRdSkinMatrixStream_INTERFACE_DEFINED__

/* interface IRdSkinMatrixStream */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdSkinMatrixStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DD22B999-977E-44cb-97D5-3D656F16A5F9")
    IRdSkinMatrixStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumMatrices( 
            /* [out] */ RtDWORD *pCount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumMatrices( 
            /* [in] */ RtDWORD dwNumMatrices) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_m( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD i,
            /* [in] */ RtDWORD j,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_m( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD i,
            /* [in] */ RtDWORD j,
            /* [in] */ RtFloat newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdSkinMatrixStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdSkinMatrixStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdSkinMatrixStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdSkinMatrixStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdSkinMatrixStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdSkinMatrixStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdSkinMatrixStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdSkinMatrixStream * 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 *GetNumMatrices )( 
            IRdSkinMatrixStream * This,
            /* [out] */ RtDWORD *pCount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumMatrices )( 
            IRdSkinMatrixStream * This,
            /* [in] */ RtDWORD dwNumMatrices);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_m )( 
            IRdSkinMatrixStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD i,
            /* [in] */ RtDWORD j,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_m )( 
            IRdSkinMatrixStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD i,
            /* [in] */ RtDWORD j,
            /* [in] */ RtFloat newVal);
        
        END_INTERFACE
    } IRdSkinMatrixStreamVtbl;

    interface IRdSkinMatrixStream
    {
        CONST_VTBL struct IRdSkinMatrixStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdSkinMatrixStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdSkinMatrixStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdSkinMatrixStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdSkinMatrixStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdSkinMatrixStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdSkinMatrixStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdSkinMatrixStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdSkinMatrixStream_GetNumMatrices(This,pCount)	\
    (This)->lpVtbl -> GetNumMatrices(This,pCount)

#define IRdSkinMatrixStream_SetNumMatrices(This,dwNumMatrices)	\
    (This)->lpVtbl -> SetNumMatrices(This,dwNumMatrices)

#define IRdSkinMatrixStream_get_m(This,dwIndex,i,j,pVal)	\
    (This)->lpVtbl -> get_m(This,dwIndex,i,j,pVal)

#define IRdSkinMatrixStream_put_m(This,dwIndex,i,j,newVal)	\
    (This)->lpVtbl -> put_m(This,dwIndex,i,j,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSkinMatrixStream_GetNumMatrices_Proxy( 
    IRdSkinMatrixStream * This,
    /* [out] */ RtDWORD *pCount);


void __RPC_STUB IRdSkinMatrixStream_GetNumMatrices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSkinMatrixStream_SetNumMatrices_Proxy( 
    IRdSkinMatrixStream * This,
    /* [in] */ RtDWORD dwNumMatrices);


void __RPC_STUB IRdSkinMatrixStream_SetNumMatrices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdSkinMatrixStream_get_m_Proxy( 
    IRdSkinMatrixStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtDWORD i,
    /* [in] */ RtDWORD j,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdSkinMatrixStream_get_m_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdSkinMatrixStream_put_m_Proxy( 
    IRdSkinMatrixStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtDWORD i,
    /* [in] */ RtDWORD j,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdSkinMatrixStream_put_m_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdSkinMatrixStream_INTERFACE_DEFINED__ */


#ifndef __IRdCompatibilityNormalsStream_INTERFACE_DEFINED__
#define __IRdCompatibilityNormalsStream_INTERFACE_DEFINED__

/* interface IRdCompatibilityNormalsStream */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IRdCompatibilityNormalsStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("99ECCB67-18E9-476f-A2C5-A4412D3EC50E")
    IRdCompatibilityNormalsStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumVertexNormals( 
            /* [retval][out] */ RtDWORD *dwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumVertexNormals( 
            /* [in] */ RtDWORD dwNumVertexNormals) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_x( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_x( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_y( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_y( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_z( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_z( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdCompatibilityNormalsStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdCompatibilityNormalsStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdCompatibilityNormalsStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdCompatibilityNormalsStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdCompatibilityNormalsStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdCompatibilityNormalsStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdCompatibilityNormalsStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdCompatibilityNormalsStream * 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 *GetNumVertexNormals )( 
            IRdCompatibilityNormalsStream * This,
            /* [retval][out] */ RtDWORD *dwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumVertexNormals )( 
            IRdCompatibilityNormalsStream * This,
            /* [in] */ RtDWORD dwNumVertexNormals);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_x )( 
            IRdCompatibilityNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_x )( 
            IRdCompatibilityNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_y )( 
            IRdCompatibilityNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_y )( 
            IRdCompatibilityNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_z )( 
            IRdCompatibilityNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_z )( 
            IRdCompatibilityNormalsStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        END_INTERFACE
    } IRdCompatibilityNormalsStreamVtbl;

    interface IRdCompatibilityNormalsStream
    {
        CONST_VTBL struct IRdCompatibilityNormalsStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdCompatibilityNormalsStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdCompatibilityNormalsStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdCompatibilityNormalsStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdCompatibilityNormalsStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdCompatibilityNormalsStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdCompatibilityNormalsStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdCompatibilityNormalsStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdCompatibilityNormalsStream_GetNumVertexNormals(This,dwNumVertices)	\
    (This)->lpVtbl -> GetNumVertexNormals(This,dwNumVertices)

#define IRdCompatibilityNormalsStream_SetNumVertexNormals(This,dwNumVertexNormals)	\
    (This)->lpVtbl -> SetNumVertexNormals(This,dwNumVertexNormals)

#define IRdCompatibilityNormalsStream_get_x(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_x(This,dwIndex,pVal)

#define IRdCompatibilityNormalsStream_put_x(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_x(This,dwIndex,newVal)

#define IRdCompatibilityNormalsStream_get_y(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_y(This,dwIndex,pVal)

#define IRdCompatibilityNormalsStream_put_y(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_y(This,dwIndex,newVal)

#define IRdCompatibilityNormalsStream_get_z(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_z(This,dwIndex,pVal)

#define IRdCompatibilityNormalsStream_put_z(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_z(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdCompatibilityNormalsStream_GetNumVertexNormals_Proxy( 
    IRdCompatibilityNormalsStream * This,
    /* [retval][out] */ RtDWORD *dwNumVertices);


void __RPC_STUB IRdCompatibilityNormalsStream_GetNumVertexNormals_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdCompatibilityNormalsStream_SetNumVertexNormals_Proxy( 
    IRdCompatibilityNormalsStream * This,
    /* [in] */ RtDWORD dwNumVertexNormals);


void __RPC_STUB IRdCompatibilityNormalsStream_SetNumVertexNormals_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdCompatibilityNormalsStream_get_x_Proxy( 
    IRdCompatibilityNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdCompatibilityNormalsStream_get_x_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdCompatibilityNormalsStream_put_x_Proxy( 
    IRdCompatibilityNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdCompatibilityNormalsStream_put_x_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdCompatibilityNormalsStream_get_y_Proxy( 
    IRdCompatibilityNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdCompatibilityNormalsStream_get_y_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdCompatibilityNormalsStream_put_y_Proxy( 
    IRdCompatibilityNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdCompatibilityNormalsStream_put_y_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdCompatibilityNormalsStream_get_z_Proxy( 
    IRdCompatibilityNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdCompatibilityNormalsStream_get_z_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdCompatibilityNormalsStream_put_z_Proxy( 
    IRdCompatibilityNormalsStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdCompatibilityNormalsStream_put_z_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdCompatibilityNormalsStream_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1477 */
/* [local] */ 

struct RtEdgeSelectionDeprecated
    {
    RtFloat fV1_Weight;
    RtFloat fV2_Weight;
    RtFloat fV3_Weight;
    RtUlong uV1_OrgElementIndex;
    RtUlong uV2_OrgElementIndex;
    RtUlong uV3_OrgElementIndex;
    RtBYTE uV1_OrgElementType;
    RtBYTE uV2_OrgElementType;
    RtBYTE uV3_OrgElementType;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1477_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1477_v0_0_s_ifspec;

#ifndef __IRdEdgeSelectionDeprecated_INTERFACE_DEFINED__
#define __IRdEdgeSelectionDeprecated_INTERFACE_DEFINED__

/* interface IRdEdgeSelectionDeprecated */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IRdEdgeSelectionDeprecated;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("37CB685A-A295-4924-A506-4FDA8A671F23")
    IRdEdgeSelectionDeprecated : public IDispatch
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRdEdgeSelectionDeprecatedVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdEdgeSelectionDeprecated * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdEdgeSelectionDeprecated * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdEdgeSelectionDeprecated * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdEdgeSelectionDeprecated * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdEdgeSelectionDeprecated * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdEdgeSelectionDeprecated * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdEdgeSelectionDeprecated * 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);
        
        END_INTERFACE
    } IRdEdgeSelectionDeprecatedVtbl;

    interface IRdEdgeSelectionDeprecated
    {
        CONST_VTBL struct IRdEdgeSelectionDeprecatedVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdEdgeSelectionDeprecated_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdEdgeSelectionDeprecated_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdEdgeSelectionDeprecated_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdEdgeSelectionDeprecated_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdEdgeSelectionDeprecated_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdEdgeSelectionDeprecated_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdEdgeSelectionDeprecated_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRdEdgeSelectionDeprecated_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1478 */
/* [local] */ 

struct RtTriangleSelectionDeprecatedWeight
    {
    RtFloat fWeight;
    RtBYTE uOrgElementType;
    RtUlong uOrgElementIndex;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1478_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1478_v0_0_s_ifspec;

#ifndef __IRdTriangleSelectionDeprecated_INTERFACE_DEFINED__
#define __IRdTriangleSelectionDeprecated_INTERFACE_DEFINED__

/* interface IRdTriangleSelectionDeprecated */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IRdTriangleSelectionDeprecated;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("97087C8B-A930-42E6-B7C1-4A6557D6C229")
    IRdTriangleSelectionDeprecated : public IDispatch
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRdTriangleSelectionDeprecatedVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdTriangleSelectionDeprecated * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdTriangleSelectionDeprecated * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdTriangleSelectionDeprecated * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdTriangleSelectionDeprecated * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdTriangleSelectionDeprecated * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdTriangleSelectionDeprecated * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdTriangleSelectionDeprecated * 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);
        
        END_INTERFACE
    } IRdTriangleSelectionDeprecatedVtbl;

    interface IRdTriangleSelectionDeprecated
    {
        CONST_VTBL struct IRdTriangleSelectionDeprecatedVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdTriangleSelectionDeprecated_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdTriangleSelectionDeprecated_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdTriangleSelectionDeprecated_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdTriangleSelectionDeprecated_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdTriangleSelectionDeprecated_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdTriangleSelectionDeprecated_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdTriangleSelectionDeprecated_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRdTriangleSelectionDeprecated_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1479 */
/* [local] */ 

struct RtVertexDeprecatedSelectionWeight
    {
    RtFloat fWeight;
    RtBYTE uOrgElementType;
    RtUlong uOrgElementIndex;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1479_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1479_v0_0_s_ifspec;

#ifndef __IRdVertexSelectionDeprecated_INTERFACE_DEFINED__
#define __IRdVertexSelectionDeprecated_INTERFACE_DEFINED__

/* interface IRdVertexSelectionDeprecated */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IRdVertexSelectionDeprecated;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E95DFE23-2800-40BC-BBFA-2E32424F303A")
    IRdVertexSelectionDeprecated : public IDispatch
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRdVertexSelectionDeprecatedVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdVertexSelectionDeprecated * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdVertexSelectionDeprecated * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdVertexSelectionDeprecated * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdVertexSelectionDeprecated * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdVertexSelectionDeprecated * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdVertexSelectionDeprecated * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdVertexSelectionDeprecated * 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);
        
        END_INTERFACE
    } IRdVertexSelectionDeprecatedVtbl;

    interface IRdVertexSelectionDeprecated
    {
        CONST_VTBL struct IRdVertexSelectionDeprecatedVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdVertexSelectionDeprecated_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdVertexSelectionDeprecated_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdVertexSelectionDeprecated_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdVertexSelectionDeprecated_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdVertexSelectionDeprecated_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdVertexSelectionDeprecated_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdVertexSelectionDeprecated_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRdVertexSelectionDeprecated_INTERFACE_DEFINED__ */


#ifndef __IRdMESettings_INTERFACE_DEFINED__
#define __IRdMESettings_INTERFACE_DEFINED__

/* interface IRdMESettings */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdMESettings;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7C36349D-A1D4-432d-8A28-21911467D115")
    IRdMESettings : public IRsDataObject
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSelectionColor( 
            /* [in] */ IRdColor *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSelectionColor( 
            /* [out] */ IRdColor **pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetObjectOpacity( 
            /* [in] */ RtFloat fVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetObjectOpacity( 
            /* [out] */ RtFloat *pfVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetDisplayTriangles( 
            /* [in] */ BOOL Val) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDisplayTriangles( 
            /* [out] */ BOOL *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetDefaultPointSize( 
            /* [in] */ RtFloat pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDefaultPointSize( 
            /* [out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetDefaultVertexColor( 
            /* [in] */ RtDWORD pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDefaultVertexColor( 
            /* [out] */ RtDWORD *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetDefaultFaceedgeColor( 
            /* [in] */ RtDWORD pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDefaultFaceedgeColor( 
            /* [out] */ RtDWORD *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetDefaultTriangleedgeColor( 
            /* [in] */ RtDWORD pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDefaultTriangleedgeColor( 
            /* [out] */ RtDWORD *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetDefaultTriangleColor( 
            /* [in] */ RtDWORD pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDefaultTriangleColor( 
            /* [out] */ RtDWORD *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetDefaultSdsColor( 
            /* [in] */ RtDWORD pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDefaultSdsColor( 
            /* [out] */ RtDWORD *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetShowSdsFaces( 
            /* [in] */ RtBool pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetShowSdsFaces( 
            /* [out] */ RtBool *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetShowSdsTriangles( 
            /* [in] */ RtBool pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetShowSdsTriangles( 
            /* [out] */ RtBool *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetHighlitePointSize( 
            /* [in] */ RtFloat pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetHighlitePointSize( 
            /* [out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetHighliteVertexColor( 
            /* [in] */ RtDWORD pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetHighliteVertexColor( 
            /* [out] */ RtDWORD *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetHighliteTriangleColor( 
            /* [in] */ RtDWORD pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetHighliteTriangleColor( 
            /* [out] */ RtDWORD *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetHighliteFacetriangleColor( 
            /* [in] */ RtDWORD pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetHighliteFacetriangleColor( 
            /* [out] */ RtDWORD *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetHighliteEdgeColor( 
            /* [in] */ RtDWORD pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetHighliteEdgeColor( 
            /* [out] */ RtDWORD *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSelectedPointSize( 
            /* [in] */ RtFloat pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSelectedPointSize( 
            /* [out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSelectedVertexColor( 
            /* [in] */ RtDWORD pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSelectedVertexColor( 
            /* [out] */ RtDWORD *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSelectedEdgeFaceedgeColor( 
            /* [in] */ RtDWORD pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSelectedEdgeFaceedgeColor( 
            /* [out] */ RtDWORD *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSelectedEdgeTriangleedgeColor( 
            /* [in] */ RtDWORD pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSelectedEdgeTriangleedgeColor( 
            /* [out] */ RtDWORD *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSelectedTriangleColor( 
            /* [in] */ RtDWORD pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSelectedTriangleColor( 
            /* [out] */ RtDWORD *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSelectedTriangleedgeColor( 
            /* [in] */ RtDWORD pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSelectedTriangleedgeColor( 
            /* [out] */ RtDWORD *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSelectedFaceColor( 
            /* [in] */ RtDWORD pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSelectedFaceColor( 
            /* [out] */ RtDWORD *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSelectedFaceFaceedgeColor( 
            /* [in] */ RtDWORD pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSelectedFaceFaceedgeColor( 
            /* [out] */ RtDWORD *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSelectedFaceTriangleedgeColor( 
            /* [in] */ RtDWORD pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSelectedFaceTriangleedgeColor( 
            /* [out] */ RtDWORD *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSoftSelectionColor0( 
            /* [in] */ RtDWORD pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSoftSelectionColor0( 
            /* [out] */ RtDWORD *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSoftSelectionColor1( 
            /* [in] */ RtDWORD pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSoftSelectionColor1( 
            /* [out] */ RtDWORD *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetSoftSelectionColor2( 
            /* [in] */ RtDWORD pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetSoftSelectionColor2( 
            /* [out] */ RtDWORD *pVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdMESettingsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdMESettings * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdMESettings * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdMESettings * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRdMESettings * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRdMESettings * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDefault )( 
            IRdMESettings * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSelectionColor )( 
            IRdMESettings * This,
            /* [in] */ IRdColor *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSelectionColor )( 
            IRdMESettings * This,
            /* [out] */ IRdColor **pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetObjectOpacity )( 
            IRdMESettings * This,
            /* [in] */ RtFloat fVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetObjectOpacity )( 
            IRdMESettings * This,
            /* [out] */ RtFloat *pfVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDisplayTriangles )( 
            IRdMESettings * This,
            /* [in] */ BOOL Val);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDisplayTriangles )( 
            IRdMESettings * This,
            /* [out] */ BOOL *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDefaultPointSize )( 
            IRdMESettings * This,
            /* [in] */ RtFloat pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDefaultPointSize )( 
            IRdMESettings * This,
            /* [out] */ RtFloat *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDefaultVertexColor )( 
            IRdMESettings * This,
            /* [in] */ RtDWORD pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDefaultVertexColor )( 
            IRdMESettings * This,
            /* [out] */ RtDWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDefaultFaceedgeColor )( 
            IRdMESettings * This,
            /* [in] */ RtDWORD pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDefaultFaceedgeColor )( 
            IRdMESettings * This,
            /* [out] */ RtDWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDefaultTriangleedgeColor )( 
            IRdMESettings * This,
            /* [in] */ RtDWORD pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDefaultTriangleedgeColor )( 
            IRdMESettings * This,
            /* [out] */ RtDWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDefaultTriangleColor )( 
            IRdMESettings * This,
            /* [in] */ RtDWORD pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDefaultTriangleColor )( 
            IRdMESettings * This,
            /* [out] */ RtDWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetDefaultSdsColor )( 
            IRdMESettings * This,
            /* [in] */ RtDWORD pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDefaultSdsColor )( 
            IRdMESettings * This,
            /* [out] */ RtDWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetShowSdsFaces )( 
            IRdMESettings * This,
            /* [in] */ RtBool pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetShowSdsFaces )( 
            IRdMESettings * This,
            /* [out] */ RtBool *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetShowSdsTriangles )( 
            IRdMESettings * This,
            /* [in] */ RtBool pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetShowSdsTriangles )( 
            IRdMESettings * This,
            /* [out] */ RtBool *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetHighlitePointSize )( 
            IRdMESettings * This,
            /* [in] */ RtFloat pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetHighlitePointSize )( 
            IRdMESettings * This,
            /* [out] */ RtFloat *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetHighliteVertexColor )( 
            IRdMESettings * This,
            /* [in] */ RtDWORD pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetHighliteVertexColor )( 
            IRdMESettings * This,
            /* [out] */ RtDWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetHighliteTriangleColor )( 
            IRdMESettings * This,
            /* [in] */ RtDWORD pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetHighliteTriangleColor )( 
            IRdMESettings * This,
            /* [out] */ RtDWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetHighliteFacetriangleColor )( 
            IRdMESettings * This,
            /* [in] */ RtDWORD pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetHighliteFacetriangleColor )( 
            IRdMESettings * This,
            /* [out] */ RtDWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetHighliteEdgeColor )( 
            IRdMESettings * This,
            /* [in] */ RtDWORD pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetHighliteEdgeColor )( 
            IRdMESettings * This,
            /* [out] */ RtDWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSelectedPointSize )( 
            IRdMESettings * This,
            /* [in] */ RtFloat pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSelectedPointSize )( 
            IRdMESettings * This,
            /* [out] */ RtFloat *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSelectedVertexColor )( 
            IRdMESettings * This,
            /* [in] */ RtDWORD pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSelectedVertexColor )( 
            IRdMESettings * This,
            /* [out] */ RtDWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSelectedEdgeFaceedgeColor )( 
            IRdMESettings * This,
            /* [in] */ RtDWORD pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSelectedEdgeFaceedgeColor )( 
            IRdMESettings * This,
            /* [out] */ RtDWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSelectedEdgeTriangleedgeColor )( 
            IRdMESettings * This,
            /* [in] */ RtDWORD pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSelectedEdgeTriangleedgeColor )( 
            IRdMESettings * This,
            /* [out] */ RtDWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSelectedTriangleColor )( 
            IRdMESettings * This,
            /* [in] */ RtDWORD pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSelectedTriangleColor )( 
            IRdMESettings * This,
            /* [out] */ RtDWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSelectedTriangleedgeColor )( 
            IRdMESettings * This,
            /* [in] */ RtDWORD pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSelectedTriangleedgeColor )( 
            IRdMESettings * This,
            /* [out] */ RtDWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSelectedFaceColor )( 
            IRdMESettings * This,
            /* [in] */ RtDWORD pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSelectedFaceColor )( 
            IRdMESettings * This,
            /* [out] */ RtDWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSelectedFaceFaceedgeColor )( 
            IRdMESettings * This,
            /* [in] */ RtDWORD pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSelectedFaceFaceedgeColor )( 
            IRdMESettings * This,
            /* [out] */ RtDWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSelectedFaceTriangleedgeColor )( 
            IRdMESettings * This,
            /* [in] */ RtDWORD pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSelectedFaceTriangleedgeColor )( 
            IRdMESettings * This,
            /* [out] */ RtDWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSoftSelectionColor0 )( 
            IRdMESettings * This,
            /* [in] */ RtDWORD pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSoftSelectionColor0 )( 
            IRdMESettings * This,
            /* [out] */ RtDWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSoftSelectionColor1 )( 
            IRdMESettings * This,
            /* [in] */ RtDWORD pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSoftSelectionColor1 )( 
            IRdMESettings * This,
            /* [out] */ RtDWORD *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetSoftSelectionColor2 )( 
            IRdMESettings * This,
            /* [in] */ RtDWORD pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetSoftSelectionColor2 )( 
            IRdMESettings * This,
            /* [out] */ RtDWORD *pVal);
        
        END_INTERFACE
    } IRdMESettingsVtbl;

    interface IRdMESettings
    {
        CONST_VTBL struct IRdMESettingsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdMESettings_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdMESettings_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdMESettings_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdMESettings_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRdMESettings_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#define IRdMESettings_SetDefault(This)	\
    (This)->lpVtbl -> SetDefault(This)


#define IRdMESettings_SetSelectionColor(This,pVal)	\
    (This)->lpVtbl -> SetSelectionColor(This,pVal)

#define IRdMESettings_GetSelectionColor(This,pVal)	\
    (This)->lpVtbl -> GetSelectionColor(This,pVal)

#define IRdMESettings_SetObjectOpacity(This,fVal)	\
    (This)->lpVtbl -> SetObjectOpacity(This,fVal)

#define IRdMESettings_GetObjectOpacity(This,pfVal)	\
    (This)->lpVtbl -> GetObjectOpacity(This,pfVal)

#define IRdMESettings_SetDisplayTriangles(This,Val)	\
    (This)->lpVtbl -> SetDisplayTriangles(This,Val)

#define IRdMESettings_GetDisplayTriangles(This,pVal)	\
    (This)->lpVtbl -> GetDisplayTriangles(This,pVal)

#define IRdMESettings_SetDefaultPointSize(This,pVal)	\
    (This)->lpVtbl -> SetDefaultPointSize(This,pVal)

#define IRdMESettings_GetDefaultPointSize(This,pVal)	\
    (This)->lpVtbl -> GetDefaultPointSize(This,pVal)

#define IRdMESettings_SetDefaultVertexColor(This,pVal)	\
    (This)->lpVtbl -> SetDefaultVertexColor(This,pVal)

#define IRdMESettings_GetDefaultVertexColor(This,pVal)	\
    (This)->lpVtbl -> GetDefaultVertexColor(This,pVal)

#define IRdMESettings_SetDefaultFaceedgeColor(This,pVal)	\
    (This)->lpVtbl -> SetDefaultFaceedgeColor(This,pVal)

#define IRdMESettings_GetDefaultFaceedgeColor(This,pVal)	\
    (This)->lpVtbl -> GetDefaultFaceedgeColor(This,pVal)

#define IRdMESettings_SetDefaultTriangleedgeColor(This,pVal)	\
    (This)->lpVtbl -> SetDefaultTriangleedgeColor(This,pVal)

#define IRdMESettings_GetDefaultTriangleedgeColor(This,pVal)	\
    (This)->lpVtbl -> GetDefaultTriangleedgeColor(This,pVal)

#define IRdMESettings_SetDefaultTriangleColor(This,pVal)	\
    (This)->lpVtbl -> SetDefaultTriangleColor(This,pVal)

#define IRdMESettings_GetDefaultTriangleColor(This,pVal)	\
    (This)->lpVtbl -> GetDefaultTriangleColor(This,pVal)

#define IRdMESettings_SetDefaultSdsColor(This,pVal)	\
    (This)->lpVtbl -> SetDefaultSdsColor(This,pVal)

#define IRdMESettings_GetDefaultSdsColor(This,pVal)	\
    (This)->lpVtbl -> GetDefaultSdsColor(This,pVal)

#define IRdMESettings_SetShowSdsFaces(This,pVal)	\
    (This)->lpVtbl -> SetShowSdsFaces(This,pVal)

#define IRdMESettings_GetShowSdsFaces(This,pVal)	\
    (This)->lpVtbl -> GetShowSdsFaces(This,pVal)

#define IRdMESettings_SetShowSdsTriangles(This,pVal)	\
    (This)->lpVtbl -> SetShowSdsTriangles(This,pVal)

#define IRdMESettings_GetShowSdsTriangles(This,pVal)	\
    (This)->lpVtbl -> GetShowSdsTriangles(This,pVal)

#define IRdMESettings_SetHighlitePointSize(This,pVal)	\
    (This)->lpVtbl -> SetHighlitePointSize(This,pVal)

#define IRdMESettings_GetHighlitePointSize(This,pVal)	\
    (This)->lpVtbl -> GetHighlitePointSize(This,pVal)

#define IRdMESettings_SetHighliteVertexColor(This,pVal)	\
    (This)->lpVtbl -> SetHighliteVertexColor(This,pVal)

#define IRdMESettings_GetHighliteVertexColor(This,pVal)	\
    (This)->lpVtbl -> GetHighliteVertexColor(This,pVal)

#define IRdMESettings_SetHighliteTriangleColor(This,pVal)	\
    (This)->lpVtbl -> SetHighliteTriangleColor(This,pVal)

#define IRdMESettings_GetHighliteTriangleColor(This,pVal)	\
    (This)->lpVtbl -> GetHighliteTriangleColor(This,pVal)

#define IRdMESettings_SetHighliteFacetriangleColor(This,pVal)	\
    (This)->lpVtbl -> SetHighliteFacetriangleColor(This,pVal)

#define IRdMESettings_GetHighliteFacetriangleColor(This,pVal)	\
    (This)->lpVtbl -> GetHighliteFacetriangleColor(This,pVal)

#define IRdMESettings_SetHighliteEdgeColor(This,pVal)	\
    (This)->lpVtbl -> SetHighliteEdgeColor(This,pVal)

#define IRdMESettings_GetHighliteEdgeColor(This,pVal)	\
    (This)->lpVtbl -> GetHighliteEdgeColor(This,pVal)

#define IRdMESettings_SetSelectedPointSize(This,pVal)	\
    (This)->lpVtbl -> SetSelectedPointSize(This,pVal)

#define IRdMESettings_GetSelectedPointSize(This,pVal)	\
    (This)->lpVtbl -> GetSelectedPointSize(This,pVal)

#define IRdMESettings_SetSelectedVertexColor(This,pVal)	\
    (This)->lpVtbl -> SetSelectedVertexColor(This,pVal)

#define IRdMESettings_GetSelectedVertexColor(This,pVal)	\
    (This)->lpVtbl -> GetSelectedVertexColor(This,pVal)

#define IRdMESettings_SetSelectedEdgeFaceedgeColor(This,pVal)	\
    (This)->lpVtbl -> SetSelectedEdgeFaceedgeColor(This,pVal)

#define IRdMESettings_GetSelectedEdgeFaceedgeColor(This,pVal)	\
    (This)->lpVtbl -> GetSelectedEdgeFaceedgeColor(This,pVal)

#define IRdMESettings_SetSelectedEdgeTriangleedgeColor(This,pVal)	\
    (This)->lpVtbl -> SetSelectedEdgeTriangleedgeColor(This,pVal)

#define IRdMESettings_GetSelectedEdgeTriangleedgeColor(This,pVal)	\
    (This)->lpVtbl -> GetSelectedEdgeTriangleedgeColor(This,pVal)

#define IRdMESettings_SetSelectedTriangleColor(This,pVal)	\
    (This)->lpVtbl -> SetSelectedTriangleColor(This,pVal)

#define IRdMESettings_GetSelectedTriangleColor(This,pVal)	\
    (This)->lpVtbl -> GetSelectedTriangleColor(This,pVal)

#define IRdMESettings_SetSelectedTriangleedgeColor(This,pVal)	\
    (This)->lpVtbl -> SetSelectedTriangleedgeColor(This,pVal)

#define IRdMESettings_GetSelectedTriangleedgeColor(This,pVal)	\
    (This)->lpVtbl -> GetSelectedTriangleedgeColor(This,pVal)

#define IRdMESettings_SetSelectedFaceColor(This,pVal)	\
    (This)->lpVtbl -> SetSelectedFaceColor(This,pVal)

#define IRdMESettings_GetSelectedFaceColor(This,pVal)	\
    (This)->lpVtbl -> GetSelectedFaceColor(This,pVal)

#define IRdMESettings_SetSelectedFaceFaceedgeColor(This,pVal)	\
    (This)->lpVtbl -> SetSelectedFaceFaceedgeColor(This,pVal)

#define IRdMESettings_GetSelectedFaceFaceedgeColor(This,pVal)	\
    (This)->lpVtbl -> GetSelectedFaceFaceedgeColor(This,pVal)

#define IRdMESettings_SetSelectedFaceTriangleedgeColor(This,pVal)	\
    (This)->lpVtbl -> SetSelectedFaceTriangleedgeColor(This,pVal)

#define IRdMESettings_GetSelectedFaceTriangleedgeColor(This,pVal)	\
    (This)->lpVtbl -> GetSelectedFaceTriangleedgeColor(This,pVal)

#define IRdMESettings_SetSoftSelectionColor0(This,pVal)	\
    (This)->lpVtbl -> SetSoftSelectionColor0(This,pVal)

#define IRdMESettings_GetSoftSelectionColor0(This,pVal)	\
    (This)->lpVtbl -> GetSoftSelectionColor0(This,pVal)

#define IRdMESettings_SetSoftSelectionColor1(This,pVal)	\
    (This)->lpVtbl -> SetSoftSelectionColor1(This,pVal)

#define IRdMESettings_GetSoftSelectionColor1(This,pVal)	\
    (This)->lpVtbl -> GetSoftSelectionColor1(This,pVal)

#define IRdMESettings_SetSoftSelectionColor2(This,pVal)	\
    (This)->lpVtbl -> SetSoftSelectionColor2(This,pVal)

#define IRdMESettings_GetSoftSelectionColor2(This,pVal)	\
    (This)->lpVtbl -> GetSoftSelectionColor2(This,pVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetSelectionColor_Proxy( 
    IRdMESettings * This,
    /* [in] */ IRdColor *pVal);


void __RPC_STUB IRdMESettings_SetSelectionColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetSelectionColor_Proxy( 
    IRdMESettings * This,
    /* [out] */ IRdColor **pVal);


void __RPC_STUB IRdMESettings_GetSelectionColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetObjectOpacity_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtFloat fVal);


void __RPC_STUB IRdMESettings_SetObjectOpacity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetObjectOpacity_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtFloat *pfVal);


void __RPC_STUB IRdMESettings_GetObjectOpacity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetDisplayTriangles_Proxy( 
    IRdMESettings * This,
    /* [in] */ BOOL Val);


void __RPC_STUB IRdMESettings_SetDisplayTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetDisplayTriangles_Proxy( 
    IRdMESettings * This,
    /* [out] */ BOOL *pVal);


void __RPC_STUB IRdMESettings_GetDisplayTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetDefaultPointSize_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtFloat pVal);


void __RPC_STUB IRdMESettings_SetDefaultPointSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetDefaultPointSize_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtFloat *pVal);


void __RPC_STUB IRdMESettings_GetDefaultPointSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetDefaultVertexColor_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtDWORD pVal);


void __RPC_STUB IRdMESettings_SetDefaultVertexColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetDefaultVertexColor_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtDWORD *pVal);


void __RPC_STUB IRdMESettings_GetDefaultVertexColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetDefaultFaceedgeColor_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtDWORD pVal);


void __RPC_STUB IRdMESettings_SetDefaultFaceedgeColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetDefaultFaceedgeColor_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtDWORD *pVal);


void __RPC_STUB IRdMESettings_GetDefaultFaceedgeColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetDefaultTriangleedgeColor_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtDWORD pVal);


void __RPC_STUB IRdMESettings_SetDefaultTriangleedgeColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetDefaultTriangleedgeColor_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtDWORD *pVal);


void __RPC_STUB IRdMESettings_GetDefaultTriangleedgeColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetDefaultTriangleColor_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtDWORD pVal);


void __RPC_STUB IRdMESettings_SetDefaultTriangleColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetDefaultTriangleColor_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtDWORD *pVal);


void __RPC_STUB IRdMESettings_GetDefaultTriangleColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetDefaultSdsColor_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtDWORD pVal);


void __RPC_STUB IRdMESettings_SetDefaultSdsColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetDefaultSdsColor_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtDWORD *pVal);


void __RPC_STUB IRdMESettings_GetDefaultSdsColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetShowSdsFaces_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtBool pVal);


void __RPC_STUB IRdMESettings_SetShowSdsFaces_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetShowSdsFaces_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtBool *pVal);


void __RPC_STUB IRdMESettings_GetShowSdsFaces_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetShowSdsTriangles_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtBool pVal);


void __RPC_STUB IRdMESettings_SetShowSdsTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetShowSdsTriangles_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtBool *pVal);


void __RPC_STUB IRdMESettings_GetShowSdsTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetHighlitePointSize_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtFloat pVal);


void __RPC_STUB IRdMESettings_SetHighlitePointSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetHighlitePointSize_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtFloat *pVal);


void __RPC_STUB IRdMESettings_GetHighlitePointSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetHighliteVertexColor_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtDWORD pVal);


void __RPC_STUB IRdMESettings_SetHighliteVertexColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetHighliteVertexColor_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtDWORD *pVal);


void __RPC_STUB IRdMESettings_GetHighliteVertexColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetHighliteTriangleColor_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtDWORD pVal);


void __RPC_STUB IRdMESettings_SetHighliteTriangleColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetHighliteTriangleColor_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtDWORD *pVal);


void __RPC_STUB IRdMESettings_GetHighliteTriangleColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetHighliteFacetriangleColor_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtDWORD pVal);


void __RPC_STUB IRdMESettings_SetHighliteFacetriangleColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetHighliteFacetriangleColor_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtDWORD *pVal);


void __RPC_STUB IRdMESettings_GetHighliteFacetriangleColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetHighliteEdgeColor_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtDWORD pVal);


void __RPC_STUB IRdMESettings_SetHighliteEdgeColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetHighliteEdgeColor_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtDWORD *pVal);


void __RPC_STUB IRdMESettings_GetHighliteEdgeColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetSelectedPointSize_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtFloat pVal);


void __RPC_STUB IRdMESettings_SetSelectedPointSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetSelectedPointSize_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtFloat *pVal);


void __RPC_STUB IRdMESettings_GetSelectedPointSize_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetSelectedVertexColor_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtDWORD pVal);


void __RPC_STUB IRdMESettings_SetSelectedVertexColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetSelectedVertexColor_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtDWORD *pVal);


void __RPC_STUB IRdMESettings_GetSelectedVertexColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetSelectedEdgeFaceedgeColor_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtDWORD pVal);


void __RPC_STUB IRdMESettings_SetSelectedEdgeFaceedgeColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetSelectedEdgeFaceedgeColor_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtDWORD *pVal);


void __RPC_STUB IRdMESettings_GetSelectedEdgeFaceedgeColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetSelectedEdgeTriangleedgeColor_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtDWORD pVal);


void __RPC_STUB IRdMESettings_SetSelectedEdgeTriangleedgeColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetSelectedEdgeTriangleedgeColor_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtDWORD *pVal);


void __RPC_STUB IRdMESettings_GetSelectedEdgeTriangleedgeColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetSelectedTriangleColor_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtDWORD pVal);


void __RPC_STUB IRdMESettings_SetSelectedTriangleColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetSelectedTriangleColor_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtDWORD *pVal);


void __RPC_STUB IRdMESettings_GetSelectedTriangleColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetSelectedTriangleedgeColor_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtDWORD pVal);


void __RPC_STUB IRdMESettings_SetSelectedTriangleedgeColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetSelectedTriangleedgeColor_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtDWORD *pVal);


void __RPC_STUB IRdMESettings_GetSelectedTriangleedgeColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetSelectedFaceColor_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtDWORD pVal);


void __RPC_STUB IRdMESettings_SetSelectedFaceColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetSelectedFaceColor_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtDWORD *pVal);


void __RPC_STUB IRdMESettings_GetSelectedFaceColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetSelectedFaceFaceedgeColor_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtDWORD pVal);


void __RPC_STUB IRdMESettings_SetSelectedFaceFaceedgeColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetSelectedFaceFaceedgeColor_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtDWORD *pVal);


void __RPC_STUB IRdMESettings_GetSelectedFaceFaceedgeColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetSelectedFaceTriangleedgeColor_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtDWORD pVal);


void __RPC_STUB IRdMESettings_SetSelectedFaceTriangleedgeColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetSelectedFaceTriangleedgeColor_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtDWORD *pVal);


void __RPC_STUB IRdMESettings_GetSelectedFaceTriangleedgeColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetSoftSelectionColor0_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtDWORD pVal);


void __RPC_STUB IRdMESettings_SetSoftSelectionColor0_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetSoftSelectionColor0_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtDWORD *pVal);


void __RPC_STUB IRdMESettings_GetSoftSelectionColor0_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetSoftSelectionColor1_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtDWORD pVal);


void __RPC_STUB IRdMESettings_SetSoftSelectionColor1_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetSoftSelectionColor1_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtDWORD *pVal);


void __RPC_STUB IRdMESettings_GetSoftSelectionColor1_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_SetSoftSelectionColor2_Proxy( 
    IRdMESettings * This,
    /* [in] */ RtDWORD pVal);


void __RPC_STUB IRdMESettings_SetSoftSelectionColor2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMESettings_GetSoftSelectionColor2_Proxy( 
    IRdMESettings * This,
    /* [out] */ RtDWORD *pVal);


void __RPC_STUB IRdMESettings_GetSoftSelectionColor2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdMESettings_INTERFACE_DEFINED__ */


#ifndef __IRdMESettingsDisp_INTERFACE_DEFINED__
#define __IRdMESettingsDisp_INTERFACE_DEFINED__

/* interface IRdMESettingsDisp */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IRdMESettingsDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("62413B1E-3D37-47fa-9EF3-3E9F1D49C8D8")
    IRdMESettingsDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetSelectionColor( 
            /* [in] */ IDispatch *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSelectionColor( 
            /* [out] */ IDispatch **pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetDisplayTriangles( 
            /* [in] */ BOOL Val) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDisplayTriangles( 
            /* [out] */ BOOL *pVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdMESettingsDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdMESettingsDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdMESettingsDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdMESettingsDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdMESettingsDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdMESettingsDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdMESettingsDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdMESettingsDisp * 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 *SetSelectionColor )( 
            IRdMESettingsDisp * This,
            /* [in] */ IDispatch *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSelectionColor )( 
            IRdMESettingsDisp * This,
            /* [out] */ IDispatch **pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetDisplayTriangles )( 
            IRdMESettingsDisp * This,
            /* [in] */ BOOL Val);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDisplayTriangles )( 
            IRdMESettingsDisp * This,
            /* [out] */ BOOL *pVal);
        
        END_INTERFACE
    } IRdMESettingsDispVtbl;

    interface IRdMESettingsDisp
    {
        CONST_VTBL struct IRdMESettingsDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdMESettingsDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdMESettingsDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdMESettingsDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdMESettingsDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdMESettingsDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdMESettingsDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdMESettingsDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdMESettingsDisp_SetSelectionColor(This,pVal)	\
    (This)->lpVtbl -> SetSelectionColor(This,pVal)

#define IRdMESettingsDisp_GetSelectionColor(This,pVal)	\
    (This)->lpVtbl -> GetSelectionColor(This,pVal)

#define IRdMESettingsDisp_SetDisplayTriangles(This,Val)	\
    (This)->lpVtbl -> SetDisplayTriangles(This,Val)

#define IRdMESettingsDisp_GetDisplayTriangles(This,pVal)	\
    (This)->lpVtbl -> GetDisplayTriangles(This,pVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMESettingsDisp_SetSelectionColor_Proxy( 
    IRdMESettingsDisp * This,
    /* [in] */ IDispatch *pVal);


void __RPC_STUB IRdMESettingsDisp_SetSelectionColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMESettingsDisp_GetSelectionColor_Proxy( 
    IRdMESettingsDisp * This,
    /* [out] */ IDispatch **pVal);


void __RPC_STUB IRdMESettingsDisp_GetSelectionColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMESettingsDisp_SetDisplayTriangles_Proxy( 
    IRdMESettingsDisp * This,
    /* [in] */ BOOL Val);


void __RPC_STUB IRdMESettingsDisp_SetDisplayTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMESettingsDisp_GetDisplayTriangles_Proxy( 
    IRdMESettingsDisp * This,
    /* [out] */ BOOL *pVal);


void __RPC_STUB IRdMESettingsDisp_GetDisplayTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdMESettingsDisp_INTERFACE_DEFINED__ */


#ifndef __IRsEditableMesh_INTERFACE_DEFINED__
#define __IRsEditableMesh_INTERFACE_DEFINED__

/* interface IRsEditableMesh */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsEditableMesh;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("058F339B-591D-4dd1-A7F6-8DC2F99FFB44")
    IRsEditableMesh : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetOutputMesh( 
            /* [in] */ IRdMesh **ppMesh) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetOutputMesh( 
            /* [in] */ IRdMesh *pMesh) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNumberOfActiveTriangles( 
            /* [in] */ RtUlong *pdwCnt) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetInputParameters( 
            /* [in] */ IRdMesh *pMesh,
            /* [in] */ IRdMeshSelection *pSelection,
            /* [in] */ RtUlong dwNumActiveTris) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UpdateDataStreams( 
            /* [in] */ IRdMesh *pMesh) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UpdateTimestamps( 
            /* [in] */ RtUlong dwTimestamp) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsEditableMeshVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsEditableMesh * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsEditableMesh * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsEditableMesh * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetOutputMesh )( 
            IRsEditableMesh * This,
            /* [in] */ IRdMesh **ppMesh);
        
        HRESULT ( STDMETHODCALLTYPE *SetOutputMesh )( 
            IRsEditableMesh * This,
            /* [in] */ IRdMesh *pMesh);
        
        HRESULT ( STDMETHODCALLTYPE *GetNumberOfActiveTriangles )( 
            IRsEditableMesh * This,
            /* [in] */ RtUlong *pdwCnt);
        
        HRESULT ( STDMETHODCALLTYPE *SetInputParameters )( 
            IRsEditableMesh * This,
            /* [in] */ IRdMesh *pMesh,
            /* [in] */ IRdMeshSelection *pSelection,
            /* [in] */ RtUlong dwNumActiveTris);
        
        HRESULT ( STDMETHODCALLTYPE *UpdateDataStreams )( 
            IRsEditableMesh * This,
            /* [in] */ IRdMesh *pMesh);
        
        HRESULT ( STDMETHODCALLTYPE *UpdateTimestamps )( 
            IRsEditableMesh * This,
            /* [in] */ RtUlong dwTimestamp);
        
        END_INTERFACE
    } IRsEditableMeshVtbl;

    interface IRsEditableMesh
    {
        CONST_VTBL struct IRsEditableMeshVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsEditableMesh_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsEditableMesh_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsEditableMesh_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsEditableMesh_GetOutputMesh(This,ppMesh)	\
    (This)->lpVtbl -> GetOutputMesh(This,ppMesh)

#define IRsEditableMesh_SetOutputMesh(This,pMesh)	\
    (This)->lpVtbl -> SetOutputMesh(This,pMesh)

#define IRsEditableMesh_GetNumberOfActiveTriangles(This,pdwCnt)	\
    (This)->lpVtbl -> GetNumberOfActiveTriangles(This,pdwCnt)

#define IRsEditableMesh_SetInputParameters(This,pMesh,pSelection,dwNumActiveTris)	\
    (This)->lpVtbl -> SetInputParameters(This,pMesh,pSelection,dwNumActiveTris)

#define IRsEditableMesh_UpdateDataStreams(This,pMesh)	\
    (This)->lpVtbl -> UpdateDataStreams(This,pMesh)

#define IRsEditableMesh_UpdateTimestamps(This,dwTimestamp)	\
    (This)->lpVtbl -> UpdateTimestamps(This,dwTimestamp)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsEditableMesh_GetOutputMesh_Proxy( 
    IRsEditableMesh * This,
    /* [in] */ IRdMesh **ppMesh);


void __RPC_STUB IRsEditableMesh_GetOutputMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsEditableMesh_SetOutputMesh_Proxy( 
    IRsEditableMesh * This,
    /* [in] */ IRdMesh *pMesh);


void __RPC_STUB IRsEditableMesh_SetOutputMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsEditableMesh_GetNumberOfActiveTriangles_Proxy( 
    IRsEditableMesh * This,
    /* [in] */ RtUlong *pdwCnt);


void __RPC_STUB IRsEditableMesh_GetNumberOfActiveTriangles_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsEditableMesh_SetInputParameters_Proxy( 
    IRsEditableMesh * This,
    /* [in] */ IRdMesh *pMesh,
    /* [in] */ IRdMeshSelection *pSelection,
    /* [in] */ RtUlong dwNumActiveTris);


void __RPC_STUB IRsEditableMesh_SetInputParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsEditableMesh_UpdateDataStreams_Proxy( 
    IRsEditableMesh * This,
    /* [in] */ IRdMesh *pMesh);


void __RPC_STUB IRsEditableMesh_UpdateDataStreams_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsEditableMesh_UpdateTimestamps_Proxy( 
    IRsEditableMesh * This,
    /* [in] */ RtUlong dwTimestamp);


void __RPC_STUB IRsEditableMesh_UpdateTimestamps_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsEditableMesh_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1483 */
/* [local] */ 


enum RtMeshModifierFlags
    {	MMF_NONE	= 0,
	MMF_TOPOLOGY	= 1,
	MMF_MESH_TOPOLOGY_UPDATE_REQUIRES_GEOMETRY_IDENTIFICATION	= 2,
	MMF_FORCE_GEOMETRY_IDENTIFICATION	= 4,
	MMF_MAKE_DWORD	= 2147483647
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1483_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1483_v0_0_s_ifspec;

#ifndef __IRsUnknownMeshModifier_INTERFACE_DEFINED__
#define __IRsUnknownMeshModifier_INTERFACE_DEFINED__

/* interface IRsUnknownMeshModifier */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsUnknownMeshModifier;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A064C6A0-7B5F-4E7E-AE4C-9B531D4AD572")
    IRsUnknownMeshModifier : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetInputConnectorId( 
            /* [in] */ CONID *pConId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ApplyTransformation( 
            /* [in] */ IRdMesh *pMeshIn,
            /* [retval][out] */ IRdMesh **ppMeshOut) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMaximalDependentNeighborhood( 
            /* [retval][out] */ RtUlong *pdwNbrs) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetOrderingPriority( 
            /* [retval][out] */ RtFloat *pfPriority) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetModifierFlags( 
            /* [in] */ enum RtMeshModifierFlags *pFlags) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsUnknownMeshModifierVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsUnknownMeshModifier * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsUnknownMeshModifier * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsUnknownMeshModifier * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetInputConnectorId )( 
            IRsUnknownMeshModifier * This,
            /* [in] */ CONID *pConId);
        
        HRESULT ( STDMETHODCALLTYPE *ApplyTransformation )( 
            IRsUnknownMeshModifier * This,
            /* [in] */ IRdMesh *pMeshIn,
            /* [retval][out] */ IRdMesh **ppMeshOut);
        
        HRESULT ( STDMETHODCALLTYPE *GetMaximalDependentNeighborhood )( 
            IRsUnknownMeshModifier * This,
            /* [retval][out] */ RtUlong *pdwNbrs);
        
        HRESULT ( STDMETHODCALLTYPE *GetOrderingPriority )( 
            IRsUnknownMeshModifier * This,
            /* [retval][out] */ RtFloat *pfPriority);
        
        HRESULT ( STDMETHODCALLTYPE *GetModifierFlags )( 
            IRsUnknownMeshModifier * This,
            /* [in] */ enum RtMeshModifierFlags *pFlags);
        
        END_INTERFACE
    } IRsUnknownMeshModifierVtbl;

    interface IRsUnknownMeshModifier
    {
        CONST_VTBL struct IRsUnknownMeshModifierVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsUnknownMeshModifier_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsUnknownMeshModifier_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsUnknownMeshModifier_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsUnknownMeshModifier_GetInputConnectorId(This,pConId)	\
    (This)->lpVtbl -> GetInputConnectorId(This,pConId)

#define IRsUnknownMeshModifier_ApplyTransformation(This,pMeshIn,ppMeshOut)	\
    (This)->lpVtbl -> ApplyTransformation(This,pMeshIn,ppMeshOut)

#define IRsUnknownMeshModifier_GetMaximalDependentNeighborhood(This,pdwNbrs)	\
    (This)->lpVtbl -> GetMaximalDependentNeighborhood(This,pdwNbrs)

#define IRsUnknownMeshModifier_GetOrderingPriority(This,pfPriority)	\
    (This)->lpVtbl -> GetOrderingPriority(This,pfPriority)

#define IRsUnknownMeshModifier_GetModifierFlags(This,pFlags)	\
    (This)->lpVtbl -> GetModifierFlags(This,pFlags)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsUnknownMeshModifier_GetInputConnectorId_Proxy( 
    IRsUnknownMeshModifier * This,
    /* [in] */ CONID *pConId);


void __RPC_STUB IRsUnknownMeshModifier_GetInputConnectorId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsUnknownMeshModifier_ApplyTransformation_Proxy( 
    IRsUnknownMeshModifier * This,
    /* [in] */ IRdMesh *pMeshIn,
    /* [retval][out] */ IRdMesh **ppMeshOut);


void __RPC_STUB IRsUnknownMeshModifier_ApplyTransformation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsUnknownMeshModifier_GetMaximalDependentNeighborhood_Proxy( 
    IRsUnknownMeshModifier * This,
    /* [retval][out] */ RtUlong *pdwNbrs);


void __RPC_STUB IRsUnknownMeshModifier_GetMaximalDependentNeighborhood_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsUnknownMeshModifier_GetOrderingPriority_Proxy( 
    IRsUnknownMeshModifier * This,
    /* [retval][out] */ RtFloat *pfPriority);


void __RPC_STUB IRsUnknownMeshModifier_GetOrderingPriority_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsUnknownMeshModifier_GetModifierFlags_Proxy( 
    IRsUnknownMeshModifier * This,
    /* [in] */ enum RtMeshModifierFlags *pFlags);


void __RPC_STUB IRsUnknownMeshModifier_GetModifierFlags_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsUnknownMeshModifier_INTERFACE_DEFINED__ */


#ifndef __IRnEditableShape_INTERFACE_DEFINED__
#define __IRnEditableShape_INTERFACE_DEFINED__

/* interface IRnEditableShape */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnEditableShape;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3A89276E-8268-46AF-8A11-832589990A49")
    IRnEditableShape : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnEditableShapeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnEditableShape * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnEditableShape * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnEditableShape * This);
        
        END_INTERFACE
    } IRnEditableShapeVtbl;

    interface IRnEditableShape
    {
        CONST_VTBL struct IRnEditableShapeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnEditableShape_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnEditableShape_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnEditableShape_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnEditableShape_INTERFACE_DEFINED__ */


#ifndef __IRnMeshEditRenderAttr_INTERFACE_DEFINED__
#define __IRnMeshEditRenderAttr_INTERFACE_DEFINED__

/* interface IRnMeshEditRenderAttr */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnMeshEditRenderAttr;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D80369F8-B6DD-4EF0-8CDD-2EF487B5ECC3")
    IRnMeshEditRenderAttr : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnMeshEditRenderAttrVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnMeshEditRenderAttr * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnMeshEditRenderAttr * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnMeshEditRenderAttr * This);
        
        END_INTERFACE
    } IRnMeshEditRenderAttrVtbl;

    interface IRnMeshEditRenderAttr
    {
        CONST_VTBL struct IRnMeshEditRenderAttrVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnMeshEditRenderAttr_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnMeshEditRenderAttr_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnMeshEditRenderAttr_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnMeshEditRenderAttr_INTERFACE_DEFINED__ */


#ifndef __IRnCamera_INTERFACE_DEFINED__
#define __IRnCamera_INTERFACE_DEFINED__

/* interface IRnCamera */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnCamera;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6E020E14-28D7-4615-9AD3-8F3067A464CD")
    IRnCamera : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnCameraVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnCamera * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnCamera * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnCamera * This);
        
        END_INTERFACE
    } IRnCameraVtbl;

    interface IRnCamera
    {
        CONST_VTBL struct IRnCameraVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnCamera_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnCamera_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnCamera_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnCamera_INTERFACE_DEFINED__ */


#ifndef __IRnCone_INTERFACE_DEFINED__
#define __IRnCone_INTERFACE_DEFINED__

/* interface IRnCone */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnCone;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("611E898D-9620-4276-A3DF-85426BAF1D0D")
    IRnCone : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnConeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnCone * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnCone * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnCone * This);
        
        END_INTERFACE
    } IRnConeVtbl;

    interface IRnCone
    {
        CONST_VTBL struct IRnConeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnCone_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnCone_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnCone_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnCone_INTERFACE_DEFINED__ */


#ifndef __IRnCone2_INTERFACE_DEFINED__
#define __IRnCone2_INTERFACE_DEFINED__

/* interface IRnCone2 */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnCone2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0460A67B-17EA-4044-89F4-FA7DEFE392B1")
    IRnCone2 : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnCone2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnCone2 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnCone2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnCone2 * This);
        
        END_INTERFACE
    } IRnCone2Vtbl;

    interface IRnCone2
    {
        CONST_VTBL struct IRnCone2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnCone2_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnCone2_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnCone2_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnCone2_INTERFACE_DEFINED__ */


#ifndef __IRnCube2_INTERFACE_DEFINED__
#define __IRnCube2_INTERFACE_DEFINED__

/* interface IRnCube2 */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnCube2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("48F97504-F8A5-4598-B4BD-DFE20BA26698")
    IRnCube2 : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnCube2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnCube2 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnCube2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnCube2 * This);
        
        END_INTERFACE
    } IRnCube2Vtbl;

    interface IRnCube2
    {
        CONST_VTBL struct IRnCube2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnCube2_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnCube2_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnCube2_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnCube2_INTERFACE_DEFINED__ */


#ifndef __IRnCube3_INTERFACE_DEFINED__
#define __IRnCube3_INTERFACE_DEFINED__

/* interface IRnCube3 */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnCube3;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("AFB1F59C-6338-4b2b-B36A-C05794B74EFE")
    IRnCube3 : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnCube3Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnCube3 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnCube3 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnCube3 * This);
        
        END_INTERFACE
    } IRnCube3Vtbl;

    interface IRnCube3
    {
        CONST_VTBL struct IRnCube3Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnCube3_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnCube3_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnCube3_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnCube3_INTERFACE_DEFINED__ */


#ifndef __IRnCylinder_INTERFACE_DEFINED__
#define __IRnCylinder_INTERFACE_DEFINED__

/* interface IRnCylinder */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnCylinder;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A8987CDE-1196-4142-8007-FE8FA5C412F0")
    IRnCylinder : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnCylinderVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnCylinder * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnCylinder * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnCylinder * This);
        
        END_INTERFACE
    } IRnCylinderVtbl;

    interface IRnCylinder
    {
        CONST_VTBL struct IRnCylinderVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnCylinder_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnCylinder_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnCylinder_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnCylinder_INTERFACE_DEFINED__ */


#ifndef __IRnCylinder2_INTERFACE_DEFINED__
#define __IRnCylinder2_INTERFACE_DEFINED__

/* interface IRnCylinder2 */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnCylinder2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6C81EEC8-9AD5-4589-8906-692F8FAB7E02")
    IRnCylinder2 : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnCylinder2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnCylinder2 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnCylinder2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnCylinder2 * This);
        
        END_INTERFACE
    } IRnCylinder2Vtbl;

    interface IRnCylinder2
    {
        CONST_VTBL struct IRnCylinder2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnCylinder2_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnCylinder2_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnCylinder2_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnCylinder2_INTERFACE_DEFINED__ */


#ifndef __IRnCylinder3_INTERFACE_DEFINED__
#define __IRnCylinder3_INTERFACE_DEFINED__

/* interface IRnCylinder3 */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnCylinder3;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B634F41E-6442-4856-BA11-325FB9A45622")
    IRnCylinder3 : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnCylinder3Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnCylinder3 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnCylinder3 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnCylinder3 * This);
        
        END_INTERFACE
    } IRnCylinder3Vtbl;

    interface IRnCylinder3
    {
        CONST_VTBL struct IRnCylinder3Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnCylinder3_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnCylinder3_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnCylinder3_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnCylinder3_INTERFACE_DEFINED__ */


#ifndef __IRnPlane_INTERFACE_DEFINED__
#define __IRnPlane_INTERFACE_DEFINED__

/* interface IRnPlane */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnPlane;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2EAE693E-193F-4128-91A5-3680EC36176F")
    IRnPlane : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnPlaneVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnPlane * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnPlane * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnPlane * This);
        
        END_INTERFACE
    } IRnPlaneVtbl;

    interface IRnPlane
    {
        CONST_VTBL struct IRnPlaneVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnPlane_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnPlane_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnPlane_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnPlane_INTERFACE_DEFINED__ */


#ifndef __IRnPlane2_INTERFACE_DEFINED__
#define __IRnPlane2_INTERFACE_DEFINED__

/* interface IRnPlane2 */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnPlane2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("06D10E08-6804-477b-993A-B6CE90D4C1F3")
    IRnPlane2 : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnPlane2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnPlane2 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnPlane2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnPlane2 * This);
        
        END_INTERFACE
    } IRnPlane2Vtbl;

    interface IRnPlane2
    {
        CONST_VTBL struct IRnPlane2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnPlane2_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnPlane2_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnPlane2_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnPlane2_INTERFACE_DEFINED__ */


#ifndef __IRnPolygon_INTERFACE_DEFINED__
#define __IRnPolygon_INTERFACE_DEFINED__

/* interface IRnPolygon */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnPolygon;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0850CF8E-506C-4B51-89AB-5D5C56DD0497")
    IRnPolygon : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnPolygonVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnPolygon * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnPolygon * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnPolygon * This);
        
        END_INTERFACE
    } IRnPolygonVtbl;

    interface IRnPolygon
    {
        CONST_VTBL struct IRnPolygonVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnPolygon_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnPolygon_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnPolygon_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnPolygon_INTERFACE_DEFINED__ */


#ifndef __IRnRect_INTERFACE_DEFINED__
#define __IRnRect_INTERFACE_DEFINED__

/* interface IRnRect */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnRect;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E7735DEF-E6E8-41D0-A673-3C422ED9E2D6")
    IRnRect : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnRectVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnRect * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnRect * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnRect * This);
        
        END_INTERFACE
    } IRnRectVtbl;

    interface IRnRect
    {
        CONST_VTBL struct IRnRectVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnRect_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnRect_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnRect_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnRect_INTERFACE_DEFINED__ */


#ifndef __IRnSphere2_INTERFACE_DEFINED__
#define __IRnSphere2_INTERFACE_DEFINED__

/* interface IRnSphere2 */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnSphere2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("EA16C6E1-B31D-4218-89F8-73AE500C70B7")
    IRnSphere2 : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnSphere2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnSphere2 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnSphere2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnSphere2 * This);
        
        END_INTERFACE
    } IRnSphere2Vtbl;

    interface IRnSphere2
    {
        CONST_VTBL struct IRnSphere2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnSphere2_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnSphere2_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnSphere2_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnSphere2_INTERFACE_DEFINED__ */


#ifndef __IRnSphere3_INTERFACE_DEFINED__
#define __IRnSphere3_INTERFACE_DEFINED__

/* interface IRnSphere3 */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnSphere3;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("59FF1AF6-59F6-40cf-A771-67CE7535EE47")
    IRnSphere3 : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnSphere3Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnSphere3 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnSphere3 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnSphere3 * This);
        
        END_INTERFACE
    } IRnSphere3Vtbl;

    interface IRnSphere3
    {
        CONST_VTBL struct IRnSphere3Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnSphere3_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnSphere3_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnSphere3_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnSphere3_INTERFACE_DEFINED__ */


#ifndef __IRnText3d_INTERFACE_DEFINED__
#define __IRnText3d_INTERFACE_DEFINED__

/* interface IRnText3d */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnText3d;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("016ACCFA-C735-4b02-AAA9-ED1C74E602E4")
    IRnText3d : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnText3dVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnText3d * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnText3d * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnText3d * This);
        
        END_INTERFACE
    } IRnText3dVtbl;

    interface IRnText3d
    {
        CONST_VTBL struct IRnText3dVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnText3d_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnText3d_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnText3d_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnText3d_INTERFACE_DEFINED__ */


#ifndef __IRnTorus2_INTERFACE_DEFINED__
#define __IRnTorus2_INTERFACE_DEFINED__

/* interface IRnTorus2 */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnTorus2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B9F4C991-39D2-4397-BFB4-DD2F0A08111B")
    IRnTorus2 : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnTorus2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnTorus2 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnTorus2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnTorus2 * This);
        
        END_INTERFACE
    } IRnTorus2Vtbl;

    interface IRnTorus2
    {
        CONST_VTBL struct IRnTorus2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnTorus2_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnTorus2_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnTorus2_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnTorus2_INTERFACE_DEFINED__ */


#ifndef __IRnTorus3_INTERFACE_DEFINED__
#define __IRnTorus3_INTERFACE_DEFINED__

/* interface IRnTorus3 */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnTorus3;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1241042D-30EA-467c-817D-56ED7E699DED")
    IRnTorus3 : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnTorus3Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnTorus3 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnTorus3 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnTorus3 * This);
        
        END_INTERFACE
    } IRnTorus3Vtbl;

    interface IRnTorus3
    {
        CONST_VTBL struct IRnTorus3Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnTorus3_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnTorus3_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnTorus3_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnTorus3_INTERFACE_DEFINED__ */


#ifndef __IRnTube_INTERFACE_DEFINED__
#define __IRnTube_INTERFACE_DEFINED__

/* interface IRnTube */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnTube;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("22E64120-1386-4EE1-AB5F-8B18255E5F0C")
    IRnTube : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnTubeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnTube * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnTube * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnTube * This);
        
        END_INTERFACE
    } IRnTubeVtbl;

    interface IRnTube
    {
        CONST_VTBL struct IRnTubeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnTube_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnTube_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnTube_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnTube_INTERFACE_DEFINED__ */


#ifndef __IRnTube2_INTERFACE_DEFINED__
#define __IRnTube2_INTERFACE_DEFINED__

/* interface IRnTube2 */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnTube2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F7D78E51-CE0F-4992-B482-3B6967A542E2")
    IRnTube2 : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnTube2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnTube2 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnTube2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnTube2 * This);
        
        END_INTERFACE
    } IRnTube2Vtbl;

    interface IRnTube2
    {
        CONST_VTBL struct IRnTube2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnTube2_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnTube2_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnTube2_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnTube2_INTERFACE_DEFINED__ */


#ifndef __IRnTube3_INTERFACE_DEFINED__
#define __IRnTube3_INTERFACE_DEFINED__

/* interface IRnTube3 */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnTube3;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F5FAB972-4E3A-49dd-A11B-40E8CEB405E9")
    IRnTube3 : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnTube3Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnTube3 * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnTube3 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnTube3 * This);
        
        END_INTERFACE
    } IRnTube3Vtbl;

    interface IRnTube3
    {
        CONST_VTBL struct IRnTube3Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnTube3_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnTube3_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnTube3_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnTube3_INTERFACE_DEFINED__ */


#ifndef __IRnNURBSCone_INTERFACE_DEFINED__
#define __IRnNURBSCone_INTERFACE_DEFINED__

/* interface IRnNURBSCone */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnNURBSCone;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7DD9A961-5978-4713-91E9-54A6CED40145")
    IRnNURBSCone : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnNURBSConeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnNURBSCone * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnNURBSCone * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnNURBSCone * This);
        
        END_INTERFACE
    } IRnNURBSConeVtbl;

    interface IRnNURBSCone
    {
        CONST_VTBL struct IRnNURBSConeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnNURBSCone_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnNURBSCone_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnNURBSCone_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnNURBSCone_INTERFACE_DEFINED__ */


#ifndef __IRnNURBSToMesh_INTERFACE_DEFINED__
#define __IRnNURBSToMesh_INTERFACE_DEFINED__

/* interface IRnNURBSToMesh */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnNURBSToMesh;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E3CD7144-A5A4-4f74-BDD5-FFAAF56487BB")
    IRnNURBSToMesh : public IRsObject
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnNURBSToMeshVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnNURBSToMesh * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnNURBSToMesh * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnNURBSToMesh * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRnNURBSToMesh * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRnNURBSToMesh * This,
            /* [retval][out] */ BSTR *pVal);
        
        END_INTERFACE
    } IRnNURBSToMeshVtbl;

    interface IRnNURBSToMesh
    {
        CONST_VTBL struct IRnNURBSToMeshVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnNURBSToMesh_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnNURBSToMesh_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnNURBSToMesh_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnNURBSToMesh_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRnNURBSToMesh_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnNURBSToMesh_INTERFACE_DEFINED__ */


#ifndef __IRnNURBSBox_INTERFACE_DEFINED__
#define __IRnNURBSBox_INTERFACE_DEFINED__

/* interface IRnNURBSBox */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnNURBSBox;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("91BAAF53-E272-4e99-ADF1-7D47F7A21CFF")
    IRnNURBSBox : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnNURBSBoxVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnNURBSBox * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnNURBSBox * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnNURBSBox * This);
        
        END_INTERFACE
    } IRnNURBSBoxVtbl;

    interface IRnNURBSBox
    {
        CONST_VTBL struct IRnNURBSBoxVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnNURBSBox_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnNURBSBox_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnNURBSBox_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnNURBSBox_INTERFACE_DEFINED__ */


#ifndef __IRnNURBSSphere_INTERFACE_DEFINED__
#define __IRnNURBSSphere_INTERFACE_DEFINED__

/* interface IRnNURBSSphere */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnNURBSSphere;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("95B76F39-38A2-4e0f-83B2-100EFC70EB14")
    IRnNURBSSphere : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnNURBSSphereVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnNURBSSphere * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnNURBSSphere * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnNURBSSphere * This);
        
        END_INTERFACE
    } IRnNURBSSphereVtbl;

    interface IRnNURBSSphere
    {
        CONST_VTBL struct IRnNURBSSphereVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnNURBSSphere_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnNURBSSphere_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnNURBSSphere_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnNURBSSphere_INTERFACE_DEFINED__ */


#ifndef __IRnNURBSTorus_INTERFACE_DEFINED__
#define __IRnNURBSTorus_INTERFACE_DEFINED__

/* interface IRnNURBSTorus */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnNURBSTorus;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("CFE8714D-5580-474f-9C30-30457B37E181")
    IRnNURBSTorus : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnNURBSTorusVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnNURBSTorus * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnNURBSTorus * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnNURBSTorus * This);
        
        END_INTERFACE
    } IRnNURBSTorusVtbl;

    interface IRnNURBSTorus
    {
        CONST_VTBL struct IRnNURBSTorusVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnNURBSTorus_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnNURBSTorus_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnNURBSTorus_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnNURBSTorus_INTERFACE_DEFINED__ */


#ifndef __IRnNURBSShape_INTERFACE_DEFINED__
#define __IRnNURBSShape_INTERFACE_DEFINED__

/* interface IRnNURBSShape */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnNURBSShape;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E639ED53-137E-4cfa-982D-ED059490BA68")
    IRnNURBSShape : public IRsObject
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnNURBSShapeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnNURBSShape * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnNURBSShape * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnNURBSShape * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRnNURBSShape * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRnNURBSShape * This,
            /* [retval][out] */ BSTR *pVal);
        
        END_INTERFACE
    } IRnNURBSShapeVtbl;

    interface IRnNURBSShape
    {
        CONST_VTBL struct IRnNURBSShapeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnNURBSShape_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnNURBSShape_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnNURBSShape_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnNURBSShape_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRnNURBSShape_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnNURBSShape_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1512 */
/* [local] */ 

struct RtPrimitiveControlPoint
    {
    RtPoint position;
    RtVector3f normal;
    RtBool xy_drag;
    RtBool z_drag;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1512_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1512_v0_0_s_ifspec;

#ifndef __IRdPrimitiveFactoryState_INTERFACE_DEFINED__
#define __IRdPrimitiveFactoryState_INTERFACE_DEFINED__

/* interface IRdPrimitiveFactoryState */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdPrimitiveFactoryState;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("CA4A9739-C882-4abc-9844-0945097E6751")
    IRdPrimitiveFactoryState : public IRsObject
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetNumberOfVertices( 
            /* [in] */ RtUlong *pdwVertices) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetControlPoint( 
            /* [in] */ RtUlong dwIndex,
            /* [in] */ struct RtPrimitiveControlPoint *pCtrlPoint) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddControlPoint( 
            /* [in] */ struct RtPrimitiveControlPoint *pCtrlPoint) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetControlPoint( 
            /* [in] */ RtUlong index,
            /* [in] */ struct RtPrimitiveControlPoint *pVertex) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdPrimitiveFactoryStateVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdPrimitiveFactoryState * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdPrimitiveFactoryState * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdPrimitiveFactoryState * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRdPrimitiveFactoryState * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRdPrimitiveFactoryState * This,
            /* [retval][out] */ BSTR *pVal);
        
        HRESULT ( STDMETHODCALLTYPE *GetNumberOfVertices )( 
            IRdPrimitiveFactoryState * This,
            /* [in] */ RtUlong *pdwVertices);
        
        HRESULT ( STDMETHODCALLTYPE *GetControlPoint )( 
            IRdPrimitiveFactoryState * This,
            /* [in] */ RtUlong dwIndex,
            /* [in] */ struct RtPrimitiveControlPoint *pCtrlPoint);
        
        HRESULT ( STDMETHODCALLTYPE *AddControlPoint )( 
            IRdPrimitiveFactoryState * This,
            /* [in] */ struct RtPrimitiveControlPoint *pCtrlPoint);
        
        HRESULT ( STDMETHODCALLTYPE *SetControlPoint )( 
            IRdPrimitiveFactoryState * This,
            /* [in] */ RtUlong index,
            /* [in] */ struct RtPrimitiveControlPoint *pVertex);
        
        END_INTERFACE
    } IRdPrimitiveFactoryStateVtbl;

    interface IRdPrimitiveFactoryState
    {
        CONST_VTBL struct IRdPrimitiveFactoryStateVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdPrimitiveFactoryState_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdPrimitiveFactoryState_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdPrimitiveFactoryState_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdPrimitiveFactoryState_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRdPrimitiveFactoryState_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#define IRdPrimitiveFactoryState_GetNumberOfVertices(This,pdwVertices)	\
    (This)->lpVtbl -> GetNumberOfVertices(This,pdwVertices)

#define IRdPrimitiveFactoryState_GetControlPoint(This,dwIndex,pCtrlPoint)	\
    (This)->lpVtbl -> GetControlPoint(This,dwIndex,pCtrlPoint)

#define IRdPrimitiveFactoryState_AddControlPoint(This,pCtrlPoint)	\
    (This)->lpVtbl -> AddControlPoint(This,pCtrlPoint)

#define IRdPrimitiveFactoryState_SetControlPoint(This,index,pVertex)	\
    (This)->lpVtbl -> SetControlPoint(This,index,pVertex)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRdPrimitiveFactoryState_GetNumberOfVertices_Proxy( 
    IRdPrimitiveFactoryState * This,
    /* [in] */ RtUlong *pdwVertices);


void __RPC_STUB IRdPrimitiveFactoryState_GetNumberOfVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdPrimitiveFactoryState_GetControlPoint_Proxy( 
    IRdPrimitiveFactoryState * This,
    /* [in] */ RtUlong dwIndex,
    /* [in] */ struct RtPrimitiveControlPoint *pCtrlPoint);


void __RPC_STUB IRdPrimitiveFactoryState_GetControlPoint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdPrimitiveFactoryState_AddControlPoint_Proxy( 
    IRdPrimitiveFactoryState * This,
    /* [in] */ struct RtPrimitiveControlPoint *pCtrlPoint);


void __RPC_STUB IRdPrimitiveFactoryState_AddControlPoint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdPrimitiveFactoryState_SetControlPoint_Proxy( 
    IRdPrimitiveFactoryState * This,
    /* [in] */ RtUlong index,
    /* [in] */ struct RtPrimitiveControlPoint *pVertex);


void __RPC_STUB IRdPrimitiveFactoryState_SetControlPoint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdPrimitiveFactoryState_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1513 */
/* [local] */ 


enum RePrimitiveManagerDefaultState
    {	PMDS_DEFAULT	= 0,
	PMDS_KEEP_SIZE	= 1,
	PMDS_KEEP_ORIENTATION	= 2,
	PMDS_MAKE_DWORD	= 2147483647
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1513_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1513_v0_0_s_ifspec;

#ifndef __IRsPrimitiveManager_INTERFACE_DEFINED__
#define __IRsPrimitiveManager_INTERFACE_DEFINED__

/* interface IRsPrimitiveManager */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsPrimitiveManager;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3DCB0E90-D402-4fbb-A363-1BF88ACC9813")
    IRsPrimitiveManager : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetGeneratorNode( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetGeneratorNode( 
            /* [in] */ IRsNode **ppNode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Prepare( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetParameters( 
            /* [in] */ IRdPrimitiveFactoryState *pState) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetControlPointReference( 
            /* [in] */ RtPoint *pPosition,
            /* [in] */ RtVector3f *pNormal,
            /* [in] */ RtUlong *pDimension) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetTimestamps( 
            /* [in] */ RtDWORD *pdwMeshTs,
            /* [in] */ RtDWORD *pdwMatrixTs,
            /* [in] */ RtDWORD *pdwMaterial) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMesh( 
            /* [in] */ IRdMesh **ppMesh) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMatrix( 
            /* [in] */ IRdMatrixf **ppMatrix) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMaterial( 
            /* [in] */ IRdMaterialList **ppMaterial) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetDefaultState( 
            /* [in] */ RtDWORD dwFlags) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetUserParameters( 
            /* [in] */ BSTR szParams) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetPrimitiveFinished( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsPrimitiveManagerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsPrimitiveManager * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsPrimitiveManager * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsPrimitiveManager * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetGeneratorNode )( 
            IRsPrimitiveManager * This,
            /* [in] */ IRsNode *pNode);
        
        HRESULT ( STDMETHODCALLTYPE *GetGeneratorNode )( 
            IRsPrimitiveManager * This,
            /* [in] */ IRsNode **ppNode);
        
        HRESULT ( STDMETHODCALLTYPE *Prepare )( 
            IRsPrimitiveManager * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetParameters )( 
            IRsPrimitiveManager * This,
            /* [in] */ IRdPrimitiveFactoryState *pState);
        
        HRESULT ( STDMETHODCALLTYPE *GetControlPointReference )( 
            IRsPrimitiveManager * This,
            /* [in] */ RtPoint *pPosition,
            /* [in] */ RtVector3f *pNormal,
            /* [in] */ RtUlong *pDimension);
        
        HRESULT ( STDMETHODCALLTYPE *GetTimestamps )( 
            IRsPrimitiveManager * This,
            /* [in] */ RtDWORD *pdwMeshTs,
            /* [in] */ RtDWORD *pdwMatrixTs,
            /* [in] */ RtDWORD *pdwMaterial);
        
        HRESULT ( STDMETHODCALLTYPE *GetMesh )( 
            IRsPrimitiveManager * This,
            /* [in] */ IRdMesh **ppMesh);
        
        HRESULT ( STDMETHODCALLTYPE *GetMatrix )( 
            IRsPrimitiveManager * This,
            /* [in] */ IRdMatrixf **ppMatrix);
        
        HRESULT ( STDMETHODCALLTYPE *GetMaterial )( 
            IRsPrimitiveManager * This,
            /* [in] */ IRdMaterialList **ppMaterial);
        
        HRESULT ( STDMETHODCALLTYPE *SetDefaultState )( 
            IRsPrimitiveManager * This,
            /* [in] */ RtDWORD dwFlags);
        
        HRESULT ( STDMETHODCALLTYPE *SetUserParameters )( 
            IRsPrimitiveManager * This,
            /* [in] */ BSTR szParams);
        
        HRESULT ( STDMETHODCALLTYPE *GetPrimitiveFinished )( 
            IRsPrimitiveManager * This);
        
        END_INTERFACE
    } IRsPrimitiveManagerVtbl;

    interface IRsPrimitiveManager
    {
        CONST_VTBL struct IRsPrimitiveManagerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsPrimitiveManager_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsPrimitiveManager_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsPrimitiveManager_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsPrimitiveManager_SetGeneratorNode(This,pNode)	\
    (This)->lpVtbl -> SetGeneratorNode(This,pNode)

#define IRsPrimitiveManager_GetGeneratorNode(This,ppNode)	\
    (This)->lpVtbl -> GetGeneratorNode(This,ppNode)

#define IRsPrimitiveManager_Prepare(This)	\
    (This)->lpVtbl -> Prepare(This)

#define IRsPrimitiveManager_SetParameters(This,pState)	\
    (This)->lpVtbl -> SetParameters(This,pState)

#define IRsPrimitiveManager_GetControlPointReference(This,pPosition,pNormal,pDimension)	\
    (This)->lpVtbl -> GetControlPointReference(This,pPosition,pNormal,pDimension)

#define IRsPrimitiveManager_GetTimestamps(This,pdwMeshTs,pdwMatrixTs,pdwMaterial)	\
    (This)->lpVtbl -> GetTimestamps(This,pdwMeshTs,pdwMatrixTs,pdwMaterial)

#define IRsPrimitiveManager_GetMesh(This,ppMesh)	\
    (This)->lpVtbl -> GetMesh(This,ppMesh)

#define IRsPrimitiveManager_GetMatrix(This,ppMatrix)	\
    (This)->lpVtbl -> GetMatrix(This,ppMatrix)

#define IRsPrimitiveManager_GetMaterial(This,ppMaterial)	\
    (This)->lpVtbl -> GetMaterial(This,ppMaterial)

#define IRsPrimitiveManager_SetDefaultState(This,dwFlags)	\
    (This)->lpVtbl -> SetDefaultState(This,dwFlags)

#define IRsPrimitiveManager_SetUserParameters(This,szParams)	\
    (This)->lpVtbl -> SetUserParameters(This,szParams)

#define IRsPrimitiveManager_GetPrimitiveFinished(This)	\
    (This)->lpVtbl -> GetPrimitiveFinished(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsPrimitiveManager_SetGeneratorNode_Proxy( 
    IRsPrimitiveManager * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRsPrimitiveManager_SetGeneratorNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitiveManager_GetGeneratorNode_Proxy( 
    IRsPrimitiveManager * This,
    /* [in] */ IRsNode **ppNode);


void __RPC_STUB IRsPrimitiveManager_GetGeneratorNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitiveManager_Prepare_Proxy( 
    IRsPrimitiveManager * This);


void __RPC_STUB IRsPrimitiveManager_Prepare_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitiveManager_SetParameters_Proxy( 
    IRsPrimitiveManager * This,
    /* [in] */ IRdPrimitiveFactoryState *pState);


void __RPC_STUB IRsPrimitiveManager_SetParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitiveManager_GetControlPointReference_Proxy( 
    IRsPrimitiveManager * This,
    /* [in] */ RtPoint *pPosition,
    /* [in] */ RtVector3f *pNormal,
    /* [in] */ RtUlong *pDimension);


void __RPC_STUB IRsPrimitiveManager_GetControlPointReference_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitiveManager_GetTimestamps_Proxy( 
    IRsPrimitiveManager * This,
    /* [in] */ RtDWORD *pdwMeshTs,
    /* [in] */ RtDWORD *pdwMatrixTs,
    /* [in] */ RtDWORD *pdwMaterial);


void __RPC_STUB IRsPrimitiveManager_GetTimestamps_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitiveManager_GetMesh_Proxy( 
    IRsPrimitiveManager * This,
    /* [in] */ IRdMesh **ppMesh);


void __RPC_STUB IRsPrimitiveManager_GetMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitiveManager_GetMatrix_Proxy( 
    IRsPrimitiveManager * This,
    /* [in] */ IRdMatrixf **ppMatrix);


void __RPC_STUB IRsPrimitiveManager_GetMatrix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitiveManager_GetMaterial_Proxy( 
    IRsPrimitiveManager * This,
    /* [in] */ IRdMaterialList **ppMaterial);


void __RPC_STUB IRsPrimitiveManager_GetMaterial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitiveManager_SetDefaultState_Proxy( 
    IRsPrimitiveManager * This,
    /* [in] */ RtDWORD dwFlags);


void __RPC_STUB IRsPrimitiveManager_SetDefaultState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitiveManager_SetUserParameters_Proxy( 
    IRsPrimitiveManager * This,
    /* [in] */ BSTR szParams);


void __RPC_STUB IRsPrimitiveManager_SetUserParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitiveManager_GetPrimitiveFinished_Proxy( 
    IRsPrimitiveManager * This);


void __RPC_STUB IRsPrimitiveManager_GetPrimitiveFinished_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsPrimitiveManager_INTERFACE_DEFINED__ */


#ifndef __IRsPrimitiveFactory_INTERFACE_DEFINED__
#define __IRsPrimitiveFactory_INTERFACE_DEFINED__

/* interface IRsPrimitiveFactory */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsPrimitiveFactory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4C304E14-3B22-4f86-96A4-1DEB0CA2C3BD")
    IRsPrimitiveFactory : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE CreatePrimitive( 
            /* [in] */ IRsPrimitiveManager *pManager,
            /* [in] */ IRsCommand **ppUndoRedoCmd,
            /* [in] */ BSTR *pszScriptForm) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreatePrimitivePreview( 
            /* [in] */ IRsPrimitiveManager *pManager) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetTimestamps( 
            /* [in] */ RtDWORD *pdwMeshTs,
            /* [in] */ RtDWORD *pdwMatrixTs,
            /* [in] */ RtDWORD *pdwMaterialTs) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetPreviewMesh( 
            /* [in] */ IRdMesh **ppMesh) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetPreviewMatrix( 
            /* [in] */ IRdMatrixf **ppMatrix) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetPreviewMaterial( 
            /* [in] */ IRdMaterialList **ppMaterial) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetUserParameters( 
            /* [in] */ BSTR szParams) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Prepare( void) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsPrimitiveFactoryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsPrimitiveFactory * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsPrimitiveFactory * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsPrimitiveFactory * This);
        
        HRESULT ( STDMETHODCALLTYPE *CreatePrimitive )( 
            IRsPrimitiveFactory * This,
            /* [in] */ IRsPrimitiveManager *pManager,
            /* [in] */ IRsCommand **ppUndoRedoCmd,
            /* [in] */ BSTR *pszScriptForm);
        
        HRESULT ( STDMETHODCALLTYPE *CreatePrimitivePreview )( 
            IRsPrimitiveFactory * This,
            /* [in] */ IRsPrimitiveManager *pManager);
        
        HRESULT ( STDMETHODCALLTYPE *GetTimestamps )( 
            IRsPrimitiveFactory * This,
            /* [in] */ RtDWORD *pdwMeshTs,
            /* [in] */ RtDWORD *pdwMatrixTs,
            /* [in] */ RtDWORD *pdwMaterialTs);
        
        HRESULT ( STDMETHODCALLTYPE *GetPreviewMesh )( 
            IRsPrimitiveFactory * This,
            /* [in] */ IRdMesh **ppMesh);
        
        HRESULT ( STDMETHODCALLTYPE *GetPreviewMatrix )( 
            IRsPrimitiveFactory * This,
            /* [in] */ IRdMatrixf **ppMatrix);
        
        HRESULT ( STDMETHODCALLTYPE *GetPreviewMaterial )( 
            IRsPrimitiveFactory * This,
            /* [in] */ IRdMaterialList **ppMaterial);
        
        HRESULT ( STDMETHODCALLTYPE *SetUserParameters )( 
            IRsPrimitiveFactory * This,
            /* [in] */ BSTR szParams);
        
        HRESULT ( STDMETHODCALLTYPE *Prepare )( 
            IRsPrimitiveFactory * This);
        
        END_INTERFACE
    } IRsPrimitiveFactoryVtbl;

    interface IRsPrimitiveFactory
    {
        CONST_VTBL struct IRsPrimitiveFactoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsPrimitiveFactory_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsPrimitiveFactory_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsPrimitiveFactory_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsPrimitiveFactory_CreatePrimitive(This,pManager,ppUndoRedoCmd,pszScriptForm)	\
    (This)->lpVtbl -> CreatePrimitive(This,pManager,ppUndoRedoCmd,pszScriptForm)

#define IRsPrimitiveFactory_CreatePrimitivePreview(This,pManager)	\
    (This)->lpVtbl -> CreatePrimitivePreview(This,pManager)

#define IRsPrimitiveFactory_GetTimestamps(This,pdwMeshTs,pdwMatrixTs,pdwMaterialTs)	\
    (This)->lpVtbl -> GetTimestamps(This,pdwMeshTs,pdwMatrixTs,pdwMaterialTs)

#define IRsPrimitiveFactory_GetPreviewMesh(This,ppMesh)	\
    (This)->lpVtbl -> GetPreviewMesh(This,ppMesh)

#define IRsPrimitiveFactory_GetPreviewMatrix(This,ppMatrix)	\
    (This)->lpVtbl -> GetPreviewMatrix(This,ppMatrix)

#define IRsPrimitiveFactory_GetPreviewMaterial(This,ppMaterial)	\
    (This)->lpVtbl -> GetPreviewMaterial(This,ppMaterial)

#define IRsPrimitiveFactory_SetUserParameters(This,szParams)	\
    (This)->lpVtbl -> SetUserParameters(This,szParams)

#define IRsPrimitiveFactory_Prepare(This)	\
    (This)->lpVtbl -> Prepare(This)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsPrimitiveFactory_CreatePrimitive_Proxy( 
    IRsPrimitiveFactory * This,
    /* [in] */ IRsPrimitiveManager *pManager,
    /* [in] */ IRsCommand **ppUndoRedoCmd,
    /* [in] */ BSTR *pszScriptForm);


void __RPC_STUB IRsPrimitiveFactory_CreatePrimitive_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitiveFactory_CreatePrimitivePreview_Proxy( 
    IRsPrimitiveFactory * This,
    /* [in] */ IRsPrimitiveManager *pManager);


void __RPC_STUB IRsPrimitiveFactory_CreatePrimitivePreview_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitiveFactory_GetTimestamps_Proxy( 
    IRsPrimitiveFactory * This,
    /* [in] */ RtDWORD *pdwMeshTs,
    /* [in] */ RtDWORD *pdwMatrixTs,
    /* [in] */ RtDWORD *pdwMaterialTs);


void __RPC_STUB IRsPrimitiveFactory_GetTimestamps_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitiveFactory_GetPreviewMesh_Proxy( 
    IRsPrimitiveFactory * This,
    /* [in] */ IRdMesh **ppMesh);


void __RPC_STUB IRsPrimitiveFactory_GetPreviewMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitiveFactory_GetPreviewMatrix_Proxy( 
    IRsPrimitiveFactory * This,
    /* [in] */ IRdMatrixf **ppMatrix);


void __RPC_STUB IRsPrimitiveFactory_GetPreviewMatrix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitiveFactory_GetPreviewMaterial_Proxy( 
    IRsPrimitiveFactory * This,
    /* [in] */ IRdMaterialList **ppMaterial);


void __RPC_STUB IRsPrimitiveFactory_GetPreviewMaterial_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitiveFactory_SetUserParameters_Proxy( 
    IRsPrimitiveFactory * This,
    /* [in] */ BSTR szParams);


void __RPC_STUB IRsPrimitiveFactory_SetUserParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitiveFactory_Prepare_Proxy( 
    IRsPrimitiveFactory * This);


void __RPC_STUB IRsPrimitiveFactory_Prepare_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsPrimitiveFactory_INTERFACE_DEFINED__ */


#ifndef __IRsPrimitivePositionTool_INTERFACE_DEFINED__
#define __IRsPrimitivePositionTool_INTERFACE_DEFINED__

/* interface IRsPrimitivePositionTool */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsPrimitivePositionTool;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("737A39C1-BF7F-414a-8724-11F92EA1C6F6")
    IRsPrimitivePositionTool : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetPreferencesNode( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UpdateFromPreferences( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetPrimitiveManager( 
            /* [in] */ IRsPrimitiveManager *pManager) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetPrimitiveFactory( 
            /* [in] */ IRsPrimitiveFactory *pFactory) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetParameters( 
            /* [in] */ IRsNode *pViewNode,
            /* [in] */ RtPoint2f *pScreenPoint) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetCurrentPosition( 
            /* [in] */ RtPoint *pPosition,
            /* [in] */ RtVector3f *pNormal) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetSnappingNode( 
            /* [in] */ IRsNode **ppSnappingNode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsPrimitivePositionToolVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsPrimitivePositionTool * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsPrimitivePositionTool * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsPrimitivePositionTool * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetPreferencesNode )( 
            IRsPrimitivePositionTool * This,
            /* [in] */ IRsNode *pNode);
        
        HRESULT ( STDMETHODCALLTYPE *UpdateFromPreferences )( 
            IRsPrimitivePositionTool * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetPrimitiveManager )( 
            IRsPrimitivePositionTool * This,
            /* [in] */ IRsPrimitiveManager *pManager);
        
        HRESULT ( STDMETHODCALLTYPE *SetPrimitiveFactory )( 
            IRsPrimitivePositionTool * This,
            /* [in] */ IRsPrimitiveFactory *pFactory);
        
        HRESULT ( STDMETHODCALLTYPE *SetParameters )( 
            IRsPrimitivePositionTool * This,
            /* [in] */ IRsNode *pViewNode,
            /* [in] */ RtPoint2f *pScreenPoint);
        
        HRESULT ( STDMETHODCALLTYPE *GetCurrentPosition )( 
            IRsPrimitivePositionTool * This,
            /* [in] */ RtPoint *pPosition,
            /* [in] */ RtVector3f *pNormal);
        
        HRESULT ( STDMETHODCALLTYPE *GetSnappingNode )( 
            IRsPrimitivePositionTool * This,
            /* [in] */ IRsNode **ppSnappingNode);
        
        END_INTERFACE
    } IRsPrimitivePositionToolVtbl;

    interface IRsPrimitivePositionTool
    {
        CONST_VTBL struct IRsPrimitivePositionToolVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsPrimitivePositionTool_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsPrimitivePositionTool_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsPrimitivePositionTool_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsPrimitivePositionTool_SetPreferencesNode(This,pNode)	\
    (This)->lpVtbl -> SetPreferencesNode(This,pNode)

#define IRsPrimitivePositionTool_UpdateFromPreferences(This)	\
    (This)->lpVtbl -> UpdateFromPreferences(This)

#define IRsPrimitivePositionTool_SetPrimitiveManager(This,pManager)	\
    (This)->lpVtbl -> SetPrimitiveManager(This,pManager)

#define IRsPrimitivePositionTool_SetPrimitiveFactory(This,pFactory)	\
    (This)->lpVtbl -> SetPrimitiveFactory(This,pFactory)

#define IRsPrimitivePositionTool_SetParameters(This,pViewNode,pScreenPoint)	\
    (This)->lpVtbl -> SetParameters(This,pViewNode,pScreenPoint)

#define IRsPrimitivePositionTool_GetCurrentPosition(This,pPosition,pNormal)	\
    (This)->lpVtbl -> GetCurrentPosition(This,pPosition,pNormal)

#define IRsPrimitivePositionTool_GetSnappingNode(This,ppSnappingNode)	\
    (This)->lpVtbl -> GetSnappingNode(This,ppSnappingNode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsPrimitivePositionTool_SetPreferencesNode_Proxy( 
    IRsPrimitivePositionTool * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRsPrimitivePositionTool_SetPreferencesNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitivePositionTool_UpdateFromPreferences_Proxy( 
    IRsPrimitivePositionTool * This);


void __RPC_STUB IRsPrimitivePositionTool_UpdateFromPreferences_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitivePositionTool_SetPrimitiveManager_Proxy( 
    IRsPrimitivePositionTool * This,
    /* [in] */ IRsPrimitiveManager *pManager);


void __RPC_STUB IRsPrimitivePositionTool_SetPrimitiveManager_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitivePositionTool_SetPrimitiveFactory_Proxy( 
    IRsPrimitivePositionTool * This,
    /* [in] */ IRsPrimitiveFactory *pFactory);


void __RPC_STUB IRsPrimitivePositionTool_SetPrimitiveFactory_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitivePositionTool_SetParameters_Proxy( 
    IRsPrimitivePositionTool * This,
    /* [in] */ IRsNode *pViewNode,
    /* [in] */ RtPoint2f *pScreenPoint);


void __RPC_STUB IRsPrimitivePositionTool_SetParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitivePositionTool_GetCurrentPosition_Proxy( 
    IRsPrimitivePositionTool * This,
    /* [in] */ RtPoint *pPosition,
    /* [in] */ RtVector3f *pNormal);


void __RPC_STUB IRsPrimitivePositionTool_GetCurrentPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsPrimitivePositionTool_GetSnappingNode_Proxy( 
    IRsPrimitivePositionTool * This,
    /* [in] */ IRsNode **ppSnappingNode);


void __RPC_STUB IRsPrimitivePositionTool_GetSnappingNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsPrimitivePositionTool_INTERFACE_DEFINED__ */


#ifndef __IRsUnknownCurveTesselator_INTERFACE_DEFINED__
#define __IRsUnknownCurveTesselator_INTERFACE_DEFINED__

/* interface IRsUnknownCurveTesselator */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsUnknownCurveTesselator;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("54AAC2C6-5469-4ADC-99A8-EE680FA52FA6")
    IRsUnknownCurveTesselator : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDomain( 
            /* [out] */ RtFloat *pfIntervalStart,
            /* [out] */ RtFloat *pfIntervalEnd) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetNumFeaturePoints( 
            /* [retval][out] */ RtDWORD *pdwNumFeatures) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetFeaturePoint( 
            /* [in] */ RtDWORD dwFeature,
            /* [retval][out] */ RtFloat *pfTime) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE BeginTesselation( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE EndTesselation( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetLength( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPoint( 
            /* [in] */ RtFloat time,
            /* [retval][out] */ RtPoint *pPoint) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetDerivation( 
            /* [in] */ RtFloat time,
            /* [retval][out] */ RtVector3f *pDirection) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsUnknownCurveTesselatorVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsUnknownCurveTesselator * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsUnknownCurveTesselator * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsUnknownCurveTesselator * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDomain )( 
            IRsUnknownCurveTesselator * This,
            /* [out] */ RtFloat *pfIntervalStart,
            /* [out] */ RtFloat *pfIntervalEnd);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetNumFeaturePoints )( 
            IRsUnknownCurveTesselator * This,
            /* [retval][out] */ RtDWORD *pdwNumFeatures);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetFeaturePoint )( 
            IRsUnknownCurveTesselator * This,
            /* [in] */ RtDWORD dwFeature,
            /* [retval][out] */ RtFloat *pfTime);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *BeginTesselation )( 
            IRsUnknownCurveTesselator * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *EndTesselation )( 
            IRsUnknownCurveTesselator * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetLength )( 
            IRsUnknownCurveTesselator * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPoint )( 
            IRsUnknownCurveTesselator * This,
            /* [in] */ RtFloat time,
            /* [retval][out] */ RtPoint *pPoint);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetDerivation )( 
            IRsUnknownCurveTesselator * This,
            /* [in] */ RtFloat time,
            /* [retval][out] */ RtVector3f *pDirection);
        
        END_INTERFACE
    } IRsUnknownCurveTesselatorVtbl;

    interface IRsUnknownCurveTesselator
    {
        CONST_VTBL struct IRsUnknownCurveTesselatorVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsUnknownCurveTesselator_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsUnknownCurveTesselator_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsUnknownCurveTesselator_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsUnknownCurveTesselator_GetDomain(This,pfIntervalStart,pfIntervalEnd)	\
    (This)->lpVtbl -> GetDomain(This,pfIntervalStart,pfIntervalEnd)

#define IRsUnknownCurveTesselator_GetNumFeaturePoints(This,pdwNumFeatures)	\
    (This)->lpVtbl -> GetNumFeaturePoints(This,pdwNumFeatures)

#define IRsUnknownCurveTesselator_GetFeaturePoint(This,dwFeature,pfTime)	\
    (This)->lpVtbl -> GetFeaturePoint(This,dwFeature,pfTime)

#define IRsUnknownCurveTesselator_BeginTesselation(This)	\
    (This)->lpVtbl -> BeginTesselation(This)

#define IRsUnknownCurveTesselator_EndTesselation(This)	\
    (This)->lpVtbl -> EndTesselation(This)

#define IRsUnknownCurveTesselator_GetLength(This)	\
    (This)->lpVtbl -> GetLength(This)

#define IRsUnknownCurveTesselator_GetPoint(This,time,pPoint)	\
    (This)->lpVtbl -> GetPoint(This,time,pPoint)

#define IRsUnknownCurveTesselator_GetDerivation(This,time,pDirection)	\
    (This)->lpVtbl -> GetDerivation(This,time,pDirection)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsUnknownCurveTesselator_GetDomain_Proxy( 
    IRsUnknownCurveTesselator * This,
    /* [out] */ RtFloat *pfIntervalStart,
    /* [out] */ RtFloat *pfIntervalEnd);


void __RPC_STUB IRsUnknownCurveTesselator_GetDomain_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsUnknownCurveTesselator_GetNumFeaturePoints_Proxy( 
    IRsUnknownCurveTesselator * This,
    /* [retval][out] */ RtDWORD *pdwNumFeatures);


void __RPC_STUB IRsUnknownCurveTesselator_GetNumFeaturePoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsUnknownCurveTesselator_GetFeaturePoint_Proxy( 
    IRsUnknownCurveTesselator * This,
    /* [in] */ RtDWORD dwFeature,
    /* [retval][out] */ RtFloat *pfTime);


void __RPC_STUB IRsUnknownCurveTesselator_GetFeaturePoint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsUnknownCurveTesselator_BeginTesselation_Proxy( 
    IRsUnknownCurveTesselator * This);


void __RPC_STUB IRsUnknownCurveTesselator_BeginTesselation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsUnknownCurveTesselator_EndTesselation_Proxy( 
    IRsUnknownCurveTesselator * This);


void __RPC_STUB IRsUnknownCurveTesselator_EndTesselation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsUnknownCurveTesselator_GetLength_Proxy( 
    IRsUnknownCurveTesselator * This);


void __RPC_STUB IRsUnknownCurveTesselator_GetLength_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsUnknownCurveTesselator_GetPoint_Proxy( 
    IRsUnknownCurveTesselator * This,
    /* [in] */ RtFloat time,
    /* [retval][out] */ RtPoint *pPoint);


void __RPC_STUB IRsUnknownCurveTesselator_GetPoint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRsUnknownCurveTesselator_GetDerivation_Proxy( 
    IRsUnknownCurveTesselator * This,
    /* [in] */ RtFloat time,
    /* [retval][out] */ RtVector3f *pDirection);


void __RPC_STUB IRsUnknownCurveTesselator_GetDerivation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsUnknownCurveTesselator_INTERFACE_DEFINED__ */


#ifndef __IRdCurve_INTERFACE_DEFINED__
#define __IRdCurve_INTERFACE_DEFINED__

/* interface IRdCurve */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdCurve;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F41E316E-FB16-46A3-997C-089B11B884BC")
    IRdCurve : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetTesselator( 
            /* [retval][out] */ IRsUnknownCurveTesselator **ppTesselator) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetTesselator( 
            /* [in] */ IRsUnknownCurveTesselator *pTesselator) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdCurveVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdCurve * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdCurve * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdCurve * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTesselator )( 
            IRdCurve * This,
            /* [retval][out] */ IRsUnknownCurveTesselator **ppTesselator);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetTesselator )( 
            IRdCurve * This,
            /* [in] */ IRsUnknownCurveTesselator *pTesselator);
        
        END_INTERFACE
    } IRdCurveVtbl;

    interface IRdCurve
    {
        CONST_VTBL struct IRdCurveVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdCurve_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdCurve_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdCurve_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdCurve_GetTesselator(This,ppTesselator)	\
    (This)->lpVtbl -> GetTesselator(This,ppTesselator)

#define IRdCurve_SetTesselator(This,pTesselator)	\
    (This)->lpVtbl -> SetTesselator(This,pTesselator)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdCurve_GetTesselator_Proxy( 
    IRdCurve * This,
    /* [retval][out] */ IRsUnknownCurveTesselator **ppTesselator);


void __RPC_STUB IRdCurve_GetTesselator_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdCurve_SetTesselator_Proxy( 
    IRdCurve * This,
    /* [in] */ IRsUnknownCurveTesselator *pTesselator);


void __RPC_STUB IRdCurve_SetTesselator_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdCurve_INTERFACE_DEFINED__ */


#ifndef __IRiOfflineRender_INTERFACE_DEFINED__
#define __IRiOfflineRender_INTERFACE_DEFINED__

/* interface IRiOfflineRender */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IRiOfflineRender;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BA8F907B-7BFE-4f63-96BB-EF838A649E27")
    IRiOfflineRender : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OpenPreferencesPanel( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE OpenView( 
            /* [in] */ BSTR szViewName,
            /* [in] */ RtUlong dwWidth,
            /* [in] */ RtUlong dwHeight) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RenderScene( 
            /* [in] */ BSTR szViewName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RenderObject( 
            /* [in] */ BSTR szViewName) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RenderArea( 
            /* [in] */ BSTR szViewName,
            /* [in] */ RtUlong dwMinX,
            /* [in] */ RtUlong dwMinY,
            /* [in] */ RtUlong dwMaxX,
            /* [in] */ RtUlong dwMaxY) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RenderAnimation( 
            /* [in] */ BSTR szViewName) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRiOfflineRenderVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRiOfflineRender * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRiOfflineRender * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRiOfflineRender * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRiOfflineRender * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRiOfflineRender * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRiOfflineRender * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRiOfflineRender * 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 *OpenPreferencesPanel )( 
            IRiOfflineRender * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *OpenView )( 
            IRiOfflineRender * This,
            /* [in] */ BSTR szViewName,
            /* [in] */ RtUlong dwWidth,
            /* [in] */ RtUlong dwHeight);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RenderScene )( 
            IRiOfflineRender * This,
            /* [in] */ BSTR szViewName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RenderObject )( 
            IRiOfflineRender * This,
            /* [in] */ BSTR szViewName);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RenderArea )( 
            IRiOfflineRender * This,
            /* [in] */ BSTR szViewName,
            /* [in] */ RtUlong dwMinX,
            /* [in] */ RtUlong dwMinY,
            /* [in] */ RtUlong dwMaxX,
            /* [in] */ RtUlong dwMaxY);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RenderAnimation )( 
            IRiOfflineRender * This,
            /* [in] */ BSTR szViewName);
        
        END_INTERFACE
    } IRiOfflineRenderVtbl;

    interface IRiOfflineRender
    {
        CONST_VTBL struct IRiOfflineRenderVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRiOfflineRender_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRiOfflineRender_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRiOfflineRender_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRiOfflineRender_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRiOfflineRender_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRiOfflineRender_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRiOfflineRender_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRiOfflineRender_OpenPreferencesPanel(This)	\
    (This)->lpVtbl -> OpenPreferencesPanel(This)

#define IRiOfflineRender_OpenView(This,szViewName,dwWidth,dwHeight)	\
    (This)->lpVtbl -> OpenView(This,szViewName,dwWidth,dwHeight)

#define IRiOfflineRender_RenderScene(This,szViewName)	\
    (This)->lpVtbl -> RenderScene(This,szViewName)

#define IRiOfflineRender_RenderObject(This,szViewName)	\
    (This)->lpVtbl -> RenderObject(This,szViewName)

#define IRiOfflineRender_RenderArea(This,szViewName,dwMinX,dwMinY,dwMaxX,dwMaxY)	\
    (This)->lpVtbl -> RenderArea(This,szViewName,dwMinX,dwMinY,dwMaxX,dwMaxY)

#define IRiOfflineRender_RenderAnimation(This,szViewName)	\
    (This)->lpVtbl -> RenderAnimation(This,szViewName)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiOfflineRender_OpenPreferencesPanel_Proxy( 
    IRiOfflineRender * This);


void __RPC_STUB IRiOfflineRender_OpenPreferencesPanel_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiOfflineRender_OpenView_Proxy( 
    IRiOfflineRender * This,
    /* [in] */ BSTR szViewName,
    /* [in] */ RtUlong dwWidth,
    /* [in] */ RtUlong dwHeight);


void __RPC_STUB IRiOfflineRender_OpenView_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiOfflineRender_RenderScene_Proxy( 
    IRiOfflineRender * This,
    /* [in] */ BSTR szViewName);


void __RPC_STUB IRiOfflineRender_RenderScene_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiOfflineRender_RenderObject_Proxy( 
    IRiOfflineRender * This,
    /* [in] */ BSTR szViewName);


void __RPC_STUB IRiOfflineRender_RenderObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiOfflineRender_RenderArea_Proxy( 
    IRiOfflineRender * This,
    /* [in] */ BSTR szViewName,
    /* [in] */ RtUlong dwMinX,
    /* [in] */ RtUlong dwMinY,
    /* [in] */ RtUlong dwMaxX,
    /* [in] */ RtUlong dwMaxY);


void __RPC_STUB IRiOfflineRender_RenderArea_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiOfflineRender_RenderAnimation_Proxy( 
    IRiOfflineRender * This,
    /* [in] */ BSTR szViewName);


void __RPC_STUB IRiOfflineRender_RenderAnimation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRiOfflineRender_INTERFACE_DEFINED__ */


#ifndef __IRcTransformIkUndoRedo_INTERFACE_DEFINED__
#define __IRcTransformIkUndoRedo_INTERFACE_DEFINED__

/* interface IRcTransformIkUndoRedo */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcTransformIkUndoRedo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F4FECA12-FA46-44fa-A5BF-99E6FFB5AF0D")
    IRcTransformIkUndoRedo : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveUndoTransformation( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveRedoTransformation( 
            /* [in] */ IRsNode *pNode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcTransformIkUndoRedoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcTransformIkUndoRedo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcTransformIkUndoRedo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcTransformIkUndoRedo * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveUndoTransformation )( 
            IRcTransformIkUndoRedo * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveRedoTransformation )( 
            IRcTransformIkUndoRedo * This,
            /* [in] */ IRsNode *pNode);
        
        END_INTERFACE
    } IRcTransformIkUndoRedoVtbl;

    interface IRcTransformIkUndoRedo
    {
        CONST_VTBL struct IRcTransformIkUndoRedoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcTransformIkUndoRedo_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcTransformIkUndoRedo_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcTransformIkUndoRedo_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcTransformIkUndoRedo_SaveUndoTransformation(This,pNode)	\
    (This)->lpVtbl -> SaveUndoTransformation(This,pNode)

#define IRcTransformIkUndoRedo_SaveRedoTransformation(This,pNode)	\
    (This)->lpVtbl -> SaveRedoTransformation(This,pNode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRcTransformIkUndoRedo_SaveUndoTransformation_Proxy( 
    IRcTransformIkUndoRedo * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRcTransformIkUndoRedo_SaveUndoTransformation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRcTransformIkUndoRedo_SaveRedoTransformation_Proxy( 
    IRcTransformIkUndoRedo * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRcTransformIkUndoRedo_SaveRedoTransformation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcTransformIkUndoRedo_INTERFACE_DEFINED__ */


#ifndef __IRcTransformUndoRedo_INTERFACE_DEFINED__
#define __IRcTransformUndoRedo_INTERFACE_DEFINED__

/* interface IRcTransformUndoRedo */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcTransformUndoRedo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("4255C190-6D6F-466F-8078-B804EE617C53")
    IRcTransformUndoRedo : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveUndoTransformation( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveRedoTransformation( 
            /* [in] */ IRsNode *pNode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcTransformUndoRedoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcTransformUndoRedo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcTransformUndoRedo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcTransformUndoRedo * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveUndoTransformation )( 
            IRcTransformUndoRedo * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveRedoTransformation )( 
            IRcTransformUndoRedo * This,
            /* [in] */ IRsNode *pNode);
        
        END_INTERFACE
    } IRcTransformUndoRedoVtbl;

    interface IRcTransformUndoRedo
    {
        CONST_VTBL struct IRcTransformUndoRedoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcTransformUndoRedo_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcTransformUndoRedo_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcTransformUndoRedo_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcTransformUndoRedo_SaveUndoTransformation(This,pNode)	\
    (This)->lpVtbl -> SaveUndoTransformation(This,pNode)

#define IRcTransformUndoRedo_SaveRedoTransformation(This,pNode)	\
    (This)->lpVtbl -> SaveRedoTransformation(This,pNode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRcTransformUndoRedo_SaveUndoTransformation_Proxy( 
    IRcTransformUndoRedo * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRcTransformUndoRedo_SaveUndoTransformation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRcTransformUndoRedo_SaveRedoTransformation_Proxy( 
    IRcTransformUndoRedo * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRcTransformUndoRedo_SaveRedoTransformation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcTransformUndoRedo_INTERFACE_DEFINED__ */


#ifndef __IRcSelectionUndoRedo_INTERFACE_DEFINED__
#define __IRcSelectionUndoRedo_INTERFACE_DEFINED__

/* interface IRcSelectionUndoRedo */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcSelectionUndoRedo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("351CC01A-67DB-4627-8560-06E70BCDF25B")
    IRcSelectionUndoRedo : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveUndo( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveRedo( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNewSelection( 
            /* [in] */ BSTR szSelection) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetOldSelection( 
            /* [in] */ BSTR szSelection) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcSelectionUndoRedoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcSelectionUndoRedo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcSelectionUndoRedo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcSelectionUndoRedo * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveUndo )( 
            IRcSelectionUndoRedo * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveRedo )( 
            IRcSelectionUndoRedo * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNewSelection )( 
            IRcSelectionUndoRedo * This,
            /* [in] */ BSTR szSelection);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetOldSelection )( 
            IRcSelectionUndoRedo * This,
            /* [in] */ BSTR szSelection);
        
        END_INTERFACE
    } IRcSelectionUndoRedoVtbl;

    interface IRcSelectionUndoRedo
    {
        CONST_VTBL struct IRcSelectionUndoRedoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcSelectionUndoRedo_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcSelectionUndoRedo_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcSelectionUndoRedo_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcSelectionUndoRedo_SaveUndo(This)	\
    (This)->lpVtbl -> SaveUndo(This)

#define IRcSelectionUndoRedo_SaveRedo(This)	\
    (This)->lpVtbl -> SaveRedo(This)

#define IRcSelectionUndoRedo_SetNewSelection(This,szSelection)	\
    (This)->lpVtbl -> SetNewSelection(This,szSelection)

#define IRcSelectionUndoRedo_SetOldSelection(This,szSelection)	\
    (This)->lpVtbl -> SetOldSelection(This,szSelection)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRcSelectionUndoRedo_SaveUndo_Proxy( 
    IRcSelectionUndoRedo * This);


void __RPC_STUB IRcSelectionUndoRedo_SaveUndo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRcSelectionUndoRedo_SaveRedo_Proxy( 
    IRcSelectionUndoRedo * This);


void __RPC_STUB IRcSelectionUndoRedo_SaveRedo_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRcSelectionUndoRedo_SetNewSelection_Proxy( 
    IRcSelectionUndoRedo * This,
    /* [in] */ BSTR szSelection);


void __RPC_STUB IRcSelectionUndoRedo_SetNewSelection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRcSelectionUndoRedo_SetOldSelection_Proxy( 
    IRcSelectionUndoRedo * This,
    /* [in] */ BSTR szSelection);


void __RPC_STUB IRcSelectionUndoRedo_SetOldSelection_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcSelectionUndoRedo_INTERFACE_DEFINED__ */


#ifndef __IRcSelectMaster_INTERFACE_DEFINED__
#define __IRcSelectMaster_INTERFACE_DEFINED__

/* interface IRcSelectMaster */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcSelectMaster;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8ED250E7-5AF0-47c7-AC5A-6487EF39C2BE")
    IRcSelectMaster : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcSelectMasterVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcSelectMaster * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcSelectMaster * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcSelectMaster * This);
        
        END_INTERFACE
    } IRcSelectMasterVtbl;

    interface IRcSelectMaster
    {
        CONST_VTBL struct IRcSelectMasterVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcSelectMaster_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcSelectMaster_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcSelectMaster_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcSelectMaster_INTERFACE_DEFINED__ */


#ifndef __IRcCameraTransformUndoRedo_INTERFACE_DEFINED__
#define __IRcCameraTransformUndoRedo_INTERFACE_DEFINED__

/* interface IRcCameraTransformUndoRedo */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcCameraTransformUndoRedo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A916774A-6251-4cd3-8E5B-FD89891C1DF5")
    IRcCameraTransformUndoRedo : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveUndoTransformation( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveRedoTransformation( 
            /* [in] */ IRsNode *pNode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcCameraTransformUndoRedoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcCameraTransformUndoRedo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcCameraTransformUndoRedo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcCameraTransformUndoRedo * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveUndoTransformation )( 
            IRcCameraTransformUndoRedo * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveRedoTransformation )( 
            IRcCameraTransformUndoRedo * This,
            /* [in] */ IRsNode *pNode);
        
        END_INTERFACE
    } IRcCameraTransformUndoRedoVtbl;

    interface IRcCameraTransformUndoRedo
    {
        CONST_VTBL struct IRcCameraTransformUndoRedoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcCameraTransformUndoRedo_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcCameraTransformUndoRedo_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcCameraTransformUndoRedo_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcCameraTransformUndoRedo_SaveUndoTransformation(This,pNode)	\
    (This)->lpVtbl -> SaveUndoTransformation(This,pNode)

#define IRcCameraTransformUndoRedo_SaveRedoTransformation(This,pNode)	\
    (This)->lpVtbl -> SaveRedoTransformation(This,pNode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRcCameraTransformUndoRedo_SaveUndoTransformation_Proxy( 
    IRcCameraTransformUndoRedo * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRcCameraTransformUndoRedo_SaveUndoTransformation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRcCameraTransformUndoRedo_SaveRedoTransformation_Proxy( 
    IRcCameraTransformUndoRedo * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRcCameraTransformUndoRedo_SaveRedoTransformation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcCameraTransformUndoRedo_INTERFACE_DEFINED__ */


#ifndef __IRcSpotlightTransformUndoRedo_INTERFACE_DEFINED__
#define __IRcSpotlightTransformUndoRedo_INTERFACE_DEFINED__

/* interface IRcSpotlightTransformUndoRedo */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcSpotlightTransformUndoRedo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("EC5CDF80-ACFC-4f5e-A251-1A446DBC2245")
    IRcSpotlightTransformUndoRedo : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveUndoTransformation( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SaveRedoTransformation( 
            /* [in] */ IRsNode *pNode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcSpotlightTransformUndoRedoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcSpotlightTransformUndoRedo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcSpotlightTransformUndoRedo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcSpotlightTransformUndoRedo * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveUndoTransformation )( 
            IRcSpotlightTransformUndoRedo * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SaveRedoTransformation )( 
            IRcSpotlightTransformUndoRedo * This,
            /* [in] */ IRsNode *pNode);
        
        END_INTERFACE
    } IRcSpotlightTransformUndoRedoVtbl;

    interface IRcSpotlightTransformUndoRedo
    {
        CONST_VTBL struct IRcSpotlightTransformUndoRedoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcSpotlightTransformUndoRedo_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcSpotlightTransformUndoRedo_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcSpotlightTransformUndoRedo_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcSpotlightTransformUndoRedo_SaveUndoTransformation(This,pNode)	\
    (This)->lpVtbl -> SaveUndoTransformation(This,pNode)

#define IRcSpotlightTransformUndoRedo_SaveRedoTransformation(This,pNode)	\
    (This)->lpVtbl -> SaveRedoTransformation(This,pNode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRcSpotlightTransformUndoRedo_SaveUndoTransformation_Proxy( 
    IRcSpotlightTransformUndoRedo * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRcSpotlightTransformUndoRedo_SaveUndoTransformation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRcSpotlightTransformUndoRedo_SaveRedoTransformation_Proxy( 
    IRcSpotlightTransformUndoRedo * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRcSpotlightTransformUndoRedo_SaveRedoTransformation_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcSpotlightTransformUndoRedo_INTERFACE_DEFINED__ */


#ifndef __IRcRecorderUndoRedo_INTERFACE_DEFINED__
#define __IRcRecorderUndoRedo_INTERFACE_DEFINED__

/* interface IRcRecorderUndoRedo */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcRecorderUndoRedo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("80A34CDE-A2D1-4230-AFD5-1E4798630CF7")
    IRcRecorderUndoRedo : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE StartLog( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE FinishLog( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetDescriptor( 
            /* [in] */ BSTR szDescriptor) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcRecorderUndoRedoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcRecorderUndoRedo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcRecorderUndoRedo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcRecorderUndoRedo * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *StartLog )( 
            IRcRecorderUndoRedo * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *FinishLog )( 
            IRcRecorderUndoRedo * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetDescriptor )( 
            IRcRecorderUndoRedo * This,
            /* [in] */ BSTR szDescriptor);
        
        END_INTERFACE
    } IRcRecorderUndoRedoVtbl;

    interface IRcRecorderUndoRedo
    {
        CONST_VTBL struct IRcRecorderUndoRedoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcRecorderUndoRedo_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcRecorderUndoRedo_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcRecorderUndoRedo_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcRecorderUndoRedo_StartLog(This,pNode)	\
    (This)->lpVtbl -> StartLog(This,pNode)

#define IRcRecorderUndoRedo_FinishLog(This)	\
    (This)->lpVtbl -> FinishLog(This)

#define IRcRecorderUndoRedo_SetDescriptor(This,szDescriptor)	\
    (This)->lpVtbl -> SetDescriptor(This,szDescriptor)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRcRecorderUndoRedo_StartLog_Proxy( 
    IRcRecorderUndoRedo * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRcRecorderUndoRedo_StartLog_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRcRecorderUndoRedo_FinishLog_Proxy( 
    IRcRecorderUndoRedo * This);


void __RPC_STUB IRcRecorderUndoRedo_FinishLog_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRcRecorderUndoRedo_SetDescriptor_Proxy( 
    IRcRecorderUndoRedo * This,
    /* [in] */ BSTR szDescriptor);


void __RPC_STUB IRcRecorderUndoRedo_SetDescriptor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcRecorderUndoRedo_INTERFACE_DEFINED__ */


#ifndef __IRcOpenOfflinePreferences_INTERFACE_DEFINED__
#define __IRcOpenOfflinePreferences_INTERFACE_DEFINED__

/* interface IRcOpenOfflinePreferences */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcOpenOfflinePreferences;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("1644FB6A-A95C-421e-AB1C-76043E908944")
    IRcOpenOfflinePreferences : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRcOpenOfflinePreferencesVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcOpenOfflinePreferences * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcOpenOfflinePreferences * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcOpenOfflinePreferences * This);
        
        END_INTERFACE
    } IRcOpenOfflinePreferencesVtbl;

    interface IRcOpenOfflinePreferences
    {
        CONST_VTBL struct IRcOpenOfflinePreferencesVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcOpenOfflinePreferences_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcOpenOfflinePreferences_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcOpenOfflinePreferences_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcOpenOfflinePreferences_INTERFACE_DEFINED__ */


#ifndef __IRdGridSnapping_INTERFACE_DEFINED__
#define __IRdGridSnapping_INTERFACE_DEFINED__

/* interface IRdGridSnapping */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdGridSnapping;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("67DFAD31-1ED0-4336-A3C1-E32DAC8EE780")
    IRdGridSnapping : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetNode( 
            /* [in] */ IRsNode *pNode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdGridSnappingVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdGridSnapping * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdGridSnapping * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdGridSnapping * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetNode )( 
            IRdGridSnapping * This,
            /* [in] */ IRsNode *pNode);
        
        END_INTERFACE
    } IRdGridSnappingVtbl;

    interface IRdGridSnapping
    {
        CONST_VTBL struct IRdGridSnappingVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdGridSnapping_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdGridSnapping_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdGridSnapping_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdGridSnapping_SetNode(This,pNode)	\
    (This)->lpVtbl -> SetNode(This,pNode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRdGridSnapping_SetNode_Proxy( 
    IRdGridSnapping * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRdGridSnapping_SetNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdGridSnapping_INTERFACE_DEFINED__ */


#ifndef __IRdAxisLock_INTERFACE_DEFINED__
#define __IRdAxisLock_INTERFACE_DEFINED__

/* interface IRdAxisLock */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdAxisLock;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8920D1B5-7BA6-4D61-8D64-3659BC0A5D34")
    IRdAxisLock : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetAxisLockNode( 
            /* [in] */ IRsNode *pNode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdAxisLockVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdAxisLock * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdAxisLock * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdAxisLock * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetAxisLockNode )( 
            IRdAxisLock * This,
            /* [in] */ IRsNode *pNode);
        
        END_INTERFACE
    } IRdAxisLockVtbl;

    interface IRdAxisLock
    {
        CONST_VTBL struct IRdAxisLockVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdAxisLock_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdAxisLock_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdAxisLock_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdAxisLock_SetAxisLockNode(This,pNode)	\
    (This)->lpVtbl -> SetAxisLockNode(This,pNode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRdAxisLock_SetAxisLockNode_Proxy( 
    IRdAxisLock * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRdAxisLock_SetAxisLockNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdAxisLock_INTERFACE_DEFINED__ */


#ifndef __IRdBone_INTERFACE_DEFINED__
#define __IRdBone_INTERFACE_DEFINED__

/* interface IRdBone */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdBone;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8CB1C7B9-0D35-4f1f-8DF9-2AA1D45CFC93")
    IRdBone : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Mass( 
            /* [retval][out] */ RtFloat *pfMass) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Mass( 
            /* [in] */ RtFloat fMass) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BoneNode( 
            /* [retval][out] */ IRsNode **pNode) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_BoneNode( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Virtual( 
            /* [retval][out] */ RtBool *bVisible) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Virtual( 
            /* [in] */ RtBool bVisible) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EnvelopeSkin( 
            /* [retval][out] */ RtBool *bEnvelopeSkin) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_EnvelopeSkin( 
            /* [in] */ RtBool bEnvelopeSkin) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdBoneVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdBone * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdBone * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdBone * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Mass )( 
            IRdBone * This,
            /* [retval][out] */ RtFloat *pfMass);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Mass )( 
            IRdBone * This,
            /* [in] */ RtFloat fMass);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_BoneNode )( 
            IRdBone * This,
            /* [retval][out] */ IRsNode **pNode);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_BoneNode )( 
            IRdBone * This,
            /* [in] */ IRsNode *pNode);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Virtual )( 
            IRdBone * This,
            /* [retval][out] */ RtBool *bVisible);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Virtual )( 
            IRdBone * This,
            /* [in] */ RtBool bVisible);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_EnvelopeSkin )( 
            IRdBone * This,
            /* [retval][out] */ RtBool *bEnvelopeSkin);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_EnvelopeSkin )( 
            IRdBone * This,
            /* [in] */ RtBool bEnvelopeSkin);
        
        END_INTERFACE
    } IRdBoneVtbl;

    interface IRdBone
    {
        CONST_VTBL struct IRdBoneVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdBone_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdBone_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdBone_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdBone_get_Mass(This,pfMass)	\
    (This)->lpVtbl -> get_Mass(This,pfMass)

#define IRdBone_put_Mass(This,fMass)	\
    (This)->lpVtbl -> put_Mass(This,fMass)

#define IRdBone_get_BoneNode(This,pNode)	\
    (This)->lpVtbl -> get_BoneNode(This,pNode)

#define IRdBone_put_BoneNode(This,pNode)	\
    (This)->lpVtbl -> put_BoneNode(This,pNode)

#define IRdBone_get_Virtual(This,bVisible)	\
    (This)->lpVtbl -> get_Virtual(This,bVisible)

#define IRdBone_put_Virtual(This,bVisible)	\
    (This)->lpVtbl -> put_Virtual(This,bVisible)

#define IRdBone_get_EnvelopeSkin(This,bEnvelopeSkin)	\
    (This)->lpVtbl -> get_EnvelopeSkin(This,bEnvelopeSkin)

#define IRdBone_put_EnvelopeSkin(This,bEnvelopeSkin)	\
    (This)->lpVtbl -> put_EnvelopeSkin(This,bEnvelopeSkin)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IRdBone_get_Mass_Proxy( 
    IRdBone * This,
    /* [retval][out] */ RtFloat *pfMass);


void __RPC_STUB IRdBone_get_Mass_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IRdBone_put_Mass_Proxy( 
    IRdBone * This,
    /* [in] */ RtFloat fMass);


void __RPC_STUB IRdBone_put_Mass_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IRdBone_get_BoneNode_Proxy( 
    IRdBone * This,
    /* [retval][out] */ IRsNode **pNode);


void __RPC_STUB IRdBone_get_BoneNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IRdBone_put_BoneNode_Proxy( 
    IRdBone * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRdBone_put_BoneNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IRdBone_get_Virtual_Proxy( 
    IRdBone * This,
    /* [retval][out] */ RtBool *bVisible);


void __RPC_STUB IRdBone_get_Virtual_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IRdBone_put_Virtual_Proxy( 
    IRdBone * This,
    /* [in] */ RtBool bVisible);


void __RPC_STUB IRdBone_put_Virtual_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IRdBone_get_EnvelopeSkin_Proxy( 
    IRdBone * This,
    /* [retval][out] */ RtBool *bEnvelopeSkin);


void __RPC_STUB IRdBone_get_EnvelopeSkin_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IRdBone_put_EnvelopeSkin_Proxy( 
    IRdBone * This,
    /* [in] */ RtBool bEnvelopeSkin);


void __RPC_STUB IRdBone_put_EnvelopeSkin_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdBone_INTERFACE_DEFINED__ */


#ifndef __IRdBoneDisp_INTERFACE_DEFINED__
#define __IRdBoneDisp_INTERFACE_DEFINED__

/* interface IRdBoneDisp */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdBoneDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("348787dc-4cc9-4d20-b9f8-6c479b57862b")
    IRdBoneDisp : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Mass( 
            /* [retval][out] */ RtFloat *pfMass) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_Mass( 
            /* [in] */ RtFloat fMass) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Virtual( 
            /* [retval][out] */ RtBool *bVisible) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_Virtual( 
            /* [in] */ RtBool bVisible) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_EnvelopeSkin( 
            /* [retval][out] */ RtBool *bEnvelopeSkin) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_EnvelopeSkin( 
            /* [in] */ RtBool bEnvelopeSkin) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdBoneDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdBoneDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdBoneDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdBoneDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdBoneDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdBoneDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdBoneDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdBoneDisp * 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);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Mass )( 
            IRdBoneDisp * This,
            /* [retval][out] */ RtFloat *pfMass);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Mass )( 
            IRdBoneDisp * This,
            /* [in] */ RtFloat fMass);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Virtual )( 
            IRdBoneDisp * This,
            /* [retval][out] */ RtBool *bVisible);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Virtual )( 
            IRdBoneDisp * This,
            /* [in] */ RtBool bVisible);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EnvelopeSkin )( 
            IRdBoneDisp * This,
            /* [retval][out] */ RtBool *bEnvelopeSkin);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_EnvelopeSkin )( 
            IRdBoneDisp * This,
            /* [in] */ RtBool bEnvelopeSkin);
        
        END_INTERFACE
    } IRdBoneDispVtbl;

    interface IRdBoneDisp
    {
        CONST_VTBL struct IRdBoneDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdBoneDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdBoneDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdBoneDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdBoneDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdBoneDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdBoneDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdBoneDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdBoneDisp_get_Mass(This,pfMass)	\
    (This)->lpVtbl -> get_Mass(This,pfMass)

#define IRdBoneDisp_put_Mass(This,fMass)	\
    (This)->lpVtbl -> put_Mass(This,fMass)

#define IRdBoneDisp_get_Virtual(This,bVisible)	\
    (This)->lpVtbl -> get_Virtual(This,bVisible)

#define IRdBoneDisp_put_Virtual(This,bVisible)	\
    (This)->lpVtbl -> put_Virtual(This,bVisible)

#define IRdBoneDisp_get_EnvelopeSkin(This,bEnvelopeSkin)	\
    (This)->lpVtbl -> get_EnvelopeSkin(This,bEnvelopeSkin)

#define IRdBoneDisp_put_EnvelopeSkin(This,bEnvelopeSkin)	\
    (This)->lpVtbl -> put_EnvelopeSkin(This,bEnvelopeSkin)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [id][propget] */ HRESULT STDMETHODCALLTYPE IRdBoneDisp_get_Mass_Proxy( 
    IRdBoneDisp * This,
    /* [retval][out] */ RtFloat *pfMass);


void __RPC_STUB IRdBoneDisp_get_Mass_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propput] */ HRESULT STDMETHODCALLTYPE IRdBoneDisp_put_Mass_Proxy( 
    IRdBoneDisp * This,
    /* [in] */ RtFloat fMass);


void __RPC_STUB IRdBoneDisp_put_Mass_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE IRdBoneDisp_get_Virtual_Proxy( 
    IRdBoneDisp * This,
    /* [retval][out] */ RtBool *bVisible);


void __RPC_STUB IRdBoneDisp_get_Virtual_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propput] */ HRESULT STDMETHODCALLTYPE IRdBoneDisp_put_Virtual_Proxy( 
    IRdBoneDisp * This,
    /* [in] */ RtBool bVisible);


void __RPC_STUB IRdBoneDisp_put_Virtual_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propget] */ HRESULT STDMETHODCALLTYPE IRdBoneDisp_get_EnvelopeSkin_Proxy( 
    IRdBoneDisp * This,
    /* [retval][out] */ RtBool *bEnvelopeSkin);


void __RPC_STUB IRdBoneDisp_get_EnvelopeSkin_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [id][propput] */ HRESULT STDMETHODCALLTYPE IRdBoneDisp_put_EnvelopeSkin_Proxy( 
    IRdBoneDisp * This,
    /* [in] */ RtBool bEnvelopeSkin);


void __RPC_STUB IRdBoneDisp_put_EnvelopeSkin_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdBoneDisp_INTERFACE_DEFINED__ */


#ifndef __IRdBoneTransformParameters_INTERFACE_DEFINED__
#define __IRdBoneTransformParameters_INTERFACE_DEFINED__

/* interface IRdBoneTransformParameters */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdBoneTransformParameters;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D049D42E-C592-46cb-AB81-94F87D0446D8")
    IRdBoneTransformParameters : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetBoneDefaultPose( 
            /* [in] */ RtMatrixf *pDefaultPose) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetBoneDefaultPoseInv( 
            /* [in] */ RtMatrixf *pMatrix) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdBoneTransformParametersVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdBoneTransformParameters * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdBoneTransformParameters * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdBoneTransformParameters * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetBoneDefaultPose )( 
            IRdBoneTransformParameters * This,
            /* [in] */ RtMatrixf *pDefaultPose);
        
        HRESULT ( STDMETHODCALLTYPE *GetBoneDefaultPoseInv )( 
            IRdBoneTransformParameters * This,
            /* [in] */ RtMatrixf *pMatrix);
        
        END_INTERFACE
    } IRdBoneTransformParametersVtbl;

    interface IRdBoneTransformParameters
    {
        CONST_VTBL struct IRdBoneTransformParametersVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdBoneTransformParameters_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdBoneTransformParameters_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdBoneTransformParameters_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdBoneTransformParameters_SetBoneDefaultPose(This,pDefaultPose)	\
    (This)->lpVtbl -> SetBoneDefaultPose(This,pDefaultPose)

#define IRdBoneTransformParameters_GetBoneDefaultPoseInv(This,pMatrix)	\
    (This)->lpVtbl -> GetBoneDefaultPoseInv(This,pMatrix)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRdBoneTransformParameters_SetBoneDefaultPose_Proxy( 
    IRdBoneTransformParameters * This,
    /* [in] */ RtMatrixf *pDefaultPose);


void __RPC_STUB IRdBoneTransformParameters_SetBoneDefaultPose_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdBoneTransformParameters_GetBoneDefaultPoseInv_Proxy( 
    IRdBoneTransformParameters * This,
    /* [in] */ RtMatrixf *pMatrix);


void __RPC_STUB IRdBoneTransformParameters_GetBoneDefaultPoseInv_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdBoneTransformParameters_INTERFACE_DEFINED__ */


#ifndef __IRdSkeleton_INTERFACE_DEFINED__
#define __IRdSkeleton_INTERFACE_DEFINED__

/* interface IRdSkeleton */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdSkeleton;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FEA68313-185B-4E7D-BEE4-AD6AB6E99E32")
    IRdSkeleton : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Symmetry( 
            /* [retval][out] */ RtBool *pbSymmetry) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Symmetry( 
            /* [in] */ RtBool bSymmetry) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Tag( 
            /* [retval][out] */ BSTR *pbszTag) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Tag( 
            /* [in] */ BSTR bszTag) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SkeletonNode( 
            /* [retval][out] */ IRsNode **ppBone) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_SkeletonNode( 
            /* [in] */ IRsNode *pBone) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdSkeletonVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdSkeleton * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdSkeleton * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdSkeleton * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Symmetry )( 
            IRdSkeleton * This,
            /* [retval][out] */ RtBool *pbSymmetry);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Symmetry )( 
            IRdSkeleton * This,
            /* [in] */ RtBool bSymmetry);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Tag )( 
            IRdSkeleton * This,
            /* [retval][out] */ BSTR *pbszTag);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Tag )( 
            IRdSkeleton * This,
            /* [in] */ BSTR bszTag);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_SkeletonNode )( 
            IRdSkeleton * This,
            /* [retval][out] */ IRsNode **ppBone);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_SkeletonNode )( 
            IRdSkeleton * This,
            /* [in] */ IRsNode *pBone);
        
        END_INTERFACE
    } IRdSkeletonVtbl;

    interface IRdSkeleton
    {
        CONST_VTBL struct IRdSkeletonVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdSkeleton_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdSkeleton_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdSkeleton_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdSkeleton_get_Symmetry(This,pbSymmetry)	\
    (This)->lpVtbl -> get_Symmetry(This,pbSymmetry)

#define IRdSkeleton_put_Symmetry(This,bSymmetry)	\
    (This)->lpVtbl -> put_Symmetry(This,bSymmetry)

#define IRdSkeleton_get_Tag(This,pbszTag)	\
    (This)->lpVtbl -> get_Tag(This,pbszTag)

#define IRdSkeleton_put_Tag(This,bszTag)	\
    (This)->lpVtbl -> put_Tag(This,bszTag)

#define IRdSkeleton_get_SkeletonNode(This,ppBone)	\
    (This)->lpVtbl -> get_SkeletonNode(This,ppBone)

#define IRdSkeleton_put_SkeletonNode(This,pBone)	\
    (This)->lpVtbl -> put_SkeletonNode(This,pBone)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IRdSkeleton_get_Symmetry_Proxy( 
    IRdSkeleton * This,
    /* [retval][out] */ RtBool *pbSymmetry);


void __RPC_STUB IRdSkeleton_get_Symmetry_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IRdSkeleton_put_Symmetry_Proxy( 
    IRdSkeleton * This,
    /* [in] */ RtBool bSymmetry);


void __RPC_STUB IRdSkeleton_put_Symmetry_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IRdSkeleton_get_Tag_Proxy( 
    IRdSkeleton * This,
    /* [retval][out] */ BSTR *pbszTag);


void __RPC_STUB IRdSkeleton_get_Tag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IRdSkeleton_put_Tag_Proxy( 
    IRdSkeleton * This,
    /* [in] */ BSTR bszTag);


void __RPC_STUB IRdSkeleton_put_Tag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IRdSkeleton_get_SkeletonNode_Proxy( 
    IRdSkeleton * This,
    /* [retval][out] */ IRsNode **ppBone);


void __RPC_STUB IRdSkeleton_get_SkeletonNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IRdSkeleton_put_SkeletonNode_Proxy( 
    IRdSkeleton * This,
    /* [in] */ IRsNode *pBone);


void __RPC_STUB IRdSkeleton_put_SkeletonNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdSkeleton_INTERFACE_DEFINED__ */


#ifndef __IRdSkeletonDisp_INTERFACE_DEFINED__
#define __IRdSkeletonDisp_INTERFACE_DEFINED__

/* interface IRdSkeletonDisp */
/* [object][unique][helpstring][uuid][dual] */ 


EXTERN_C const IID IID_IRdSkeletonDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("93400632-f4df-4917-95a3-529852bf258b")
    IRdSkeletonDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Symmetry( 
            /* [retval][out] */ RtBool *pbSymmetry) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Symmetry( 
            /* [in] */ RtBool bSymmetry) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Tag( 
            /* [retval][out] */ BSTR *pbszTag) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Tag( 
            /* [in] */ BSTR bszTag) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdSkeletonDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdSkeletonDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdSkeletonDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdSkeletonDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdSkeletonDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdSkeletonDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdSkeletonDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdSkeletonDisp * 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_Symmetry )( 
            IRdSkeletonDisp * This,
            /* [retval][out] */ RtBool *pbSymmetry);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Symmetry )( 
            IRdSkeletonDisp * This,
            /* [in] */ RtBool bSymmetry);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Tag )( 
            IRdSkeletonDisp * This,
            /* [retval][out] */ BSTR *pbszTag);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Tag )( 
            IRdSkeletonDisp * This,
            /* [in] */ BSTR bszTag);
        
        END_INTERFACE
    } IRdSkeletonDispVtbl;

    interface IRdSkeletonDisp
    {
        CONST_VTBL struct IRdSkeletonDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdSkeletonDisp_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdSkeletonDisp_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdSkeletonDisp_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdSkeletonDisp_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdSkeletonDisp_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdSkeletonDisp_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdSkeletonDisp_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdSkeletonDisp_get_Symmetry(This,pbSymmetry)	\
    (This)->lpVtbl -> get_Symmetry(This,pbSymmetry)

#define IRdSkeletonDisp_put_Symmetry(This,bSymmetry)	\
    (This)->lpVtbl -> put_Symmetry(This,bSymmetry)

#define IRdSkeletonDisp_get_Tag(This,pbszTag)	\
    (This)->lpVtbl -> get_Tag(This,pbszTag)

#define IRdSkeletonDisp_put_Tag(This,bszTag)	\
    (This)->lpVtbl -> put_Tag(This,bszTag)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdSkeletonDisp_get_Symmetry_Proxy( 
    IRdSkeletonDisp * This,
    /* [retval][out] */ RtBool *pbSymmetry);


void __RPC_STUB IRdSkeletonDisp_get_Symmetry_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdSkeletonDisp_put_Symmetry_Proxy( 
    IRdSkeletonDisp * This,
    /* [in] */ RtBool bSymmetry);


void __RPC_STUB IRdSkeletonDisp_put_Symmetry_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdSkeletonDisp_get_Tag_Proxy( 
    IRdSkeletonDisp * This,
    /* [retval][out] */ BSTR *pbszTag);


void __RPC_STUB IRdSkeletonDisp_get_Tag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdSkeletonDisp_put_Tag_Proxy( 
    IRdSkeletonDisp * This,
    /* [in] */ BSTR bszTag);


void __RPC_STUB IRdSkeletonDisp_put_Tag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdSkeletonDisp_INTERFACE_DEFINED__ */


#ifndef __IRdJoint_INTERFACE_DEFINED__
#define __IRdJoint_INTERFACE_DEFINED__

/* interface IRdJoint */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdJoint;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E86AB391-2F68-4cf4-97FB-FAC42F56E956")
    IRdJoint : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Symmetry( 
            /* [retval][out] */ RtBool *pbSymmetry) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Symmetry( 
            /* [in] */ RtBool bSymmetry) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Tag( 
            /* [retval][out] */ BSTR *pbszTag) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Tag( 
            /* [in] */ BSTR bszTag) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Size( 
            /* [retval][out] */ RtFloat *pfSize) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Size( 
            /* [in] */ RtFloat fSize) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetRotationLimits( 
            /* [in] */ RtVector3f *pHeading,
            /* [in] */ RtVector3f *pSpread) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetRotationHeading( 
            /* [in] */ RtVector3f *pHeading) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetRotationSpread( 
            /* [in] */ RtVector3f *pSpread) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetRotationLimits( 
            /* [in] */ RtVector3f *pRotMin,
            /* [in] */ RtVector3f *pRotMax) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetRotationStiffness( 
            /* [in] */ RtVector3f *pStiffness) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetRotationStiffness( 
            /* [in] */ RtVector3f *pStiffness) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetRotationDamping( 
            /* [in] */ RtVector3f *pDamping) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetRotationDamping( 
            /* [in] */ RtVector3f *pDamping) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetMovementLimits( 
            /* [in] */ RtVector3f *pMovementMin,
            /* [in] */ RtVector3f *pMovementMax) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetMovementLimits( 
            /* [in] */ RtVector3f *pMovementMin,
            /* [in] */ RtVector3f *pMovementMax) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetMovementStiffness( 
            /* [in] */ RtVector3f *pStiffness) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetMovementStiffness( 
            /* [in] */ RtVector3f *pStiffness) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE GetMovementDamping( 
            /* [in] */ RtVector3f *pDamping) = 0;
        
        virtual /* [local] */ HRESULT STDMETHODCALLTYPE SetMovementDamping( 
            /* [in] */ RtVector3f *pDamping) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_JointNode( 
            /* [retval][out] */ IRsNode **pJointNode) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_JointNode( 
            /* [in] */ IRsNode *pJointNode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdJointVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdJoint * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdJoint * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdJoint * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Symmetry )( 
            IRdJoint * This,
            /* [retval][out] */ RtBool *pbSymmetry);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Symmetry )( 
            IRdJoint * This,
            /* [in] */ RtBool bSymmetry);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Tag )( 
            IRdJoint * This,
            /* [retval][out] */ BSTR *pbszTag);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Tag )( 
            IRdJoint * This,
            /* [in] */ BSTR bszTag);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Size )( 
            IRdJoint * This,
            /* [retval][out] */ RtFloat *pfSize);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Size )( 
            IRdJoint * This,
            /* [in] */ RtFloat fSize);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetRotationLimits )( 
            IRdJoint * This,
            /* [in] */ RtVector3f *pHeading,
            /* [in] */ RtVector3f *pSpread);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetRotationHeading )( 
            IRdJoint * This,
            /* [in] */ RtVector3f *pHeading);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetRotationSpread )( 
            IRdJoint * This,
            /* [in] */ RtVector3f *pSpread);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetRotationLimits )( 
            IRdJoint * This,
            /* [in] */ RtVector3f *pRotMin,
            /* [in] */ RtVector3f *pRotMax);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetRotationStiffness )( 
            IRdJoint * This,
            /* [in] */ RtVector3f *pStiffness);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetRotationStiffness )( 
            IRdJoint * This,
            /* [in] */ RtVector3f *pStiffness);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetRotationDamping )( 
            IRdJoint * This,
            /* [in] */ RtVector3f *pDamping);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetRotationDamping )( 
            IRdJoint * This,
            /* [in] */ RtVector3f *pDamping);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetMovementLimits )( 
            IRdJoint * This,
            /* [in] */ RtVector3f *pMovementMin,
            /* [in] */ RtVector3f *pMovementMax);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetMovementLimits )( 
            IRdJoint * This,
            /* [in] */ RtVector3f *pMovementMin,
            /* [in] */ RtVector3f *pMovementMax);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetMovementStiffness )( 
            IRdJoint * This,
            /* [in] */ RtVector3f *pStiffness);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetMovementStiffness )( 
            IRdJoint * This,
            /* [in] */ RtVector3f *pStiffness);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *GetMovementDamping )( 
            IRdJoint * This,
            /* [in] */ RtVector3f *pDamping);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *SetMovementDamping )( 
            IRdJoint * This,
            /* [in] */ RtVector3f *pDamping);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_JointNode )( 
            IRdJoint * This,
            /* [retval][out] */ IRsNode **pJointNode);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_JointNode )( 
            IRdJoint * This,
            /* [in] */ IRsNode *pJointNode);
        
        END_INTERFACE
    } IRdJointVtbl;

    interface IRdJoint
    {
        CONST_VTBL struct IRdJointVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdJoint_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdJoint_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdJoint_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdJoint_get_Symmetry(This,pbSymmetry)	\
    (This)->lpVtbl -> get_Symmetry(This,pbSymmetry)

#define IRdJoint_put_Symmetry(This,bSymmetry)	\
    (This)->lpVtbl -> put_Symmetry(This,bSymmetry)

#define IRdJoint_get_Tag(This,pbszTag)	\
    (This)->lpVtbl -> get_Tag(This,pbszTag)

#define IRdJoint_put_Tag(This,bszTag)	\
    (This)->lpVtbl -> put_Tag(This,bszTag)

#define IRdJoint_get_Size(This,pfSize)	\
    (This)->lpVtbl -> get_Size(This,pfSize)

#define IRdJoint_put_Size(This,fSize)	\
    (This)->lpVtbl -> put_Size(This,fSize)

#define IRdJoint_SetRotationLimits(This,pHeading,pSpread)	\
    (This)->lpVtbl -> SetRotationLimits(This,pHeading,pSpread)

#define IRdJoint_GetRotationHeading(This,pHeading)	\
    (This)->lpVtbl -> GetRotationHeading(This,pHeading)

#define IRdJoint_GetRotationSpread(This,pSpread)	\
    (This)->lpVtbl -> GetRotationSpread(This,pSpread)

#define IRdJoint_GetRotationLimits(This,pRotMin,pRotMax)	\
    (This)->lpVtbl -> GetRotationLimits(This,pRotMin,pRotMax)

#define IRdJoint_GetRotationStiffness(This,pStiffness)	\
    (This)->lpVtbl -> GetRotationStiffness(This,pStiffness)

#define IRdJoint_SetRotationStiffness(This,pStiffness)	\
    (This)->lpVtbl -> SetRotationStiffness(This,pStiffness)

#define IRdJoint_GetRotationDamping(This,pDamping)	\
    (This)->lpVtbl -> GetRotationDamping(This,pDamping)

#define IRdJoint_SetRotationDamping(This,pDamping)	\
    (This)->lpVtbl -> SetRotationDamping(This,pDamping)

#define IRdJoint_GetMovementLimits(This,pMovementMin,pMovementMax)	\
    (This)->lpVtbl -> GetMovementLimits(This,pMovementMin,pMovementMax)

#define IRdJoint_SetMovementLimits(This,pMovementMin,pMovementMax)	\
    (This)->lpVtbl -> SetMovementLimits(This,pMovementMin,pMovementMax)

#define IRdJoint_GetMovementStiffness(This,pStiffness)	\
    (This)->lpVtbl -> GetMovementStiffness(This,pStiffness)

#define IRdJoint_SetMovementStiffness(This,pStiffness)	\
    (This)->lpVtbl -> SetMovementStiffness(This,pStiffness)

#define IRdJoint_GetMovementDamping(This,pDamping)	\
    (This)->lpVtbl -> GetMovementDamping(This,pDamping)

#define IRdJoint_SetMovementDamping(This,pDamping)	\
    (This)->lpVtbl -> SetMovementDamping(This,pDamping)

#define IRdJoint_get_JointNode(This,pJointNode)	\
    (This)->lpVtbl -> get_JointNode(This,pJointNode)

#define IRdJoint_put_JointNode(This,pJointNode)	\
    (This)->lpVtbl -> put_JointNode(This,pJointNode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IRdJoint_get_Symmetry_Proxy( 
    IRdJoint * This,
    /* [retval][out] */ RtBool *pbSymmetry);


void __RPC_STUB IRdJoint_get_Symmetry_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IRdJoint_put_Symmetry_Proxy( 
    IRdJoint * This,
    /* [in] */ RtBool bSymmetry);


void __RPC_STUB IRdJoint_put_Symmetry_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IRdJoint_get_Tag_Proxy( 
    IRdJoint * This,
    /* [retval][out] */ BSTR *pbszTag);


void __RPC_STUB IRdJoint_get_Tag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IRdJoint_put_Tag_Proxy( 
    IRdJoint * This,
    /* [in] */ BSTR bszTag);


void __RPC_STUB IRdJoint_put_Tag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IRdJoint_get_Size_Proxy( 
    IRdJoint * This,
    /* [retval][out] */ RtFloat *pfSize);


void __RPC_STUB IRdJoint_get_Size_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IRdJoint_put_Size_Proxy( 
    IRdJoint * This,
    /* [in] */ RtFloat fSize);


void __RPC_STUB IRdJoint_put_Size_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [local] */ HRESULT STDMETHODCALLTYPE IRdJoint_SetRotationLimits_Proxy( 
    IRdJoint * This,
    /* [in] */ RtVector3f *pHeading,
    /* [in] */ RtVector3f *pSpread);


void __RPC_STUB IRdJoint_SetRotationLimits_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [local] */ HRESULT STDMETHODCALLTYPE IRdJoint_GetRotationHeading_Proxy( 
    IRdJoint * This,
    /* [in] */ RtVector3f *pHeading);


void __RPC_STUB IRdJoint_GetRotationHeading_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [local] */ HRESULT STDMETHODCALLTYPE IRdJoint_GetRotationSpread_Proxy( 
    IRdJoint * This,
    /* [in] */ RtVector3f *pSpread);


void __RPC_STUB IRdJoint_GetRotationSpread_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [local] */ HRESULT STDMETHODCALLTYPE IRdJoint_GetRotationLimits_Proxy( 
    IRdJoint * This,
    /* [in] */ RtVector3f *pRotMin,
    /* [in] */ RtVector3f *pRotMax);


void __RPC_STUB IRdJoint_GetRotationLimits_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [local] */ HRESULT STDMETHODCALLTYPE IRdJoint_GetRotationStiffness_Proxy( 
    IRdJoint * This,
    /* [in] */ RtVector3f *pStiffness);


void __RPC_STUB IRdJoint_GetRotationStiffness_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [local] */ HRESULT STDMETHODCALLTYPE IRdJoint_SetRotationStiffness_Proxy( 
    IRdJoint * This,
    /* [in] */ RtVector3f *pStiffness);


void __RPC_STUB IRdJoint_SetRotationStiffness_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [local] */ HRESULT STDMETHODCALLTYPE IRdJoint_GetRotationDamping_Proxy( 
    IRdJoint * This,
    /* [in] */ RtVector3f *pDamping);


void __RPC_STUB IRdJoint_GetRotationDamping_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [local] */ HRESULT STDMETHODCALLTYPE IRdJoint_SetRotationDamping_Proxy( 
    IRdJoint * This,
    /* [in] */ RtVector3f *pDamping);


void __RPC_STUB IRdJoint_SetRotationDamping_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [local] */ HRESULT STDMETHODCALLTYPE IRdJoint_GetMovementLimits_Proxy( 
    IRdJoint * This,
    /* [in] */ RtVector3f *pMovementMin,
    /* [in] */ RtVector3f *pMovementMax);


void __RPC_STUB IRdJoint_GetMovementLimits_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [local] */ HRESULT STDMETHODCALLTYPE IRdJoint_SetMovementLimits_Proxy( 
    IRdJoint * This,
    /* [in] */ RtVector3f *pMovementMin,
    /* [in] */ RtVector3f *pMovementMax);


void __RPC_STUB IRdJoint_SetMovementLimits_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [local] */ HRESULT STDMETHODCALLTYPE IRdJoint_GetMovementStiffness_Proxy( 
    IRdJoint * This,
    /* [in] */ RtVector3f *pStiffness);


void __RPC_STUB IRdJoint_GetMovementStiffness_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [local] */ HRESULT STDMETHODCALLTYPE IRdJoint_SetMovementStiffness_Proxy( 
    IRdJoint * This,
    /* [in] */ RtVector3f *pStiffness);


void __RPC_STUB IRdJoint_SetMovementStiffness_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [local] */ HRESULT STDMETHODCALLTYPE IRdJoint_GetMovementDamping_Proxy( 
    IRdJoint * This,
    /* [in] */ RtVector3f *pDamping);


void __RPC_STUB IRdJoint_GetMovementDamping_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [local] */ HRESULT STDMETHODCALLTYPE IRdJoint_SetMovementDamping_Proxy( 
    IRdJoint * This,
    /* [in] */ RtVector3f *pDamping);


void __RPC_STUB IRdJoint_SetMovementDamping_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IRdJoint_get_JointNode_Proxy( 
    IRdJoint * This,
    /* [retval][out] */ IRsNode **pJointNode);


void __RPC_STUB IRdJoint_get_JointNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IRdJoint_put_JointNode_Proxy( 
    IRdJoint * This,
    /* [in] */ IRsNode *pJointNode);


void __RPC_STUB IRdJoint_put_JointNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdJoint_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1535 */
/* [local] */ 

struct RtSoftTissuesData
    {
    RtPoint ptPosition[ 2 ];
    RtFloat fRadius[ 2 ];
    RtFloat fFactor[ 2 ];
    RtFloat fMagnitude[ 2 ];
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1535_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1535_v0_0_s_ifspec;

#ifndef __IRdSoftTissuesData_INTERFACE_DEFINED__
#define __IRdSoftTissuesData_INTERFACE_DEFINED__

/* interface IRdSoftTissuesData */
/* [unique][helpstring][dual][uuid][local][object] */ 


EXTERN_C const IID IID_IRdSoftTissuesData;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("40C8941B-5760-4c2e-B838-68BB7D9D995C")
    IRdSoftTissuesData : public IDispatch
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRdSoftTissuesDataVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdSoftTissuesData * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdSoftTissuesData * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdSoftTissuesData * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdSoftTissuesData * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdSoftTissuesData * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdSoftTissuesData * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdSoftTissuesData * 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);
        
        END_INTERFACE
    } IRdSoftTissuesDataVtbl;

    interface IRdSoftTissuesData
    {
        CONST_VTBL struct IRdSoftTissuesDataVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdSoftTissuesData_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdSoftTissuesData_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdSoftTissuesData_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdSoftTissuesData_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdSoftTissuesData_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdSoftTissuesData_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdSoftTissuesData_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRdSoftTissuesData_INTERFACE_DEFINED__ */


#ifndef __IRdSoftTissue_INTERFACE_DEFINED__
#define __IRdSoftTissue_INTERFACE_DEFINED__

/* interface IRdSoftTissue */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdSoftTissue;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FC5ADCE0-A1B2-4140-8A8C-CAB91A49C466")
    IRdSoftTissue : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Source( 
            /* [retval][out] */ IRdSoftTissuesData **ppSource) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Target( 
            /* [retval][out] */ IRdSoftTissuesData **ppSource) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Source( 
            /* [in] */ IRdSoftTissuesData *pSource) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Target( 
            /* [in] */ IRdSoftTissuesData *pSource) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdSoftTissueVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdSoftTissue * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdSoftTissue * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdSoftTissue * This);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Source )( 
            IRdSoftTissue * This,
            /* [retval][out] */ IRdSoftTissuesData **ppSource);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Target )( 
            IRdSoftTissue * This,
            /* [retval][out] */ IRdSoftTissuesData **ppSource);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Source )( 
            IRdSoftTissue * This,
            /* [in] */ IRdSoftTissuesData *pSource);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Target )( 
            IRdSoftTissue * This,
            /* [in] */ IRdSoftTissuesData *pSource);
        
        END_INTERFACE
    } IRdSoftTissueVtbl;

    interface IRdSoftTissue
    {
        CONST_VTBL struct IRdSoftTissueVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdSoftTissue_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdSoftTissue_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdSoftTissue_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdSoftTissue_get_Source(This,ppSource)	\
    (This)->lpVtbl -> get_Source(This,ppSource)

#define IRdSoftTissue_get_Target(This,ppSource)	\
    (This)->lpVtbl -> get_Target(This,ppSource)

#define IRdSoftTissue_put_Source(This,pSource)	\
    (This)->lpVtbl -> put_Source(This,pSource)

#define IRdSoftTissue_put_Target(This,pSource)	\
    (This)->lpVtbl -> put_Target(This,pSource)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [propget] */ HRESULT STDMETHODCALLTYPE IRdSoftTissue_get_Source_Proxy( 
    IRdSoftTissue * This,
    /* [retval][out] */ IRdSoftTissuesData **ppSource);


void __RPC_STUB IRdSoftTissue_get_Source_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propget] */ HRESULT STDMETHODCALLTYPE IRdSoftTissue_get_Target_Proxy( 
    IRdSoftTissue * This,
    /* [retval][out] */ IRdSoftTissuesData **ppSource);


void __RPC_STUB IRdSoftTissue_get_Target_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IRdSoftTissue_put_Source_Proxy( 
    IRdSoftTissue * This,
    /* [in] */ IRdSoftTissuesData *pSource);


void __RPC_STUB IRdSoftTissue_put_Source_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [propput] */ HRESULT STDMETHODCALLTYPE IRdSoftTissue_put_Target_Proxy( 
    IRdSoftTissue * This,
    /* [in] */ IRdSoftTissuesData *pSource);


void __RPC_STUB IRdSoftTissue_put_Target_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdSoftTissue_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1537 */
/* [local] */ 

struct RtJointSkinningFactors
    {
    RtFloat fRadius;
    RtFloat fFactor;
    RtFloat fSmoothness;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1537_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1537_v0_0_s_ifspec;

#ifndef __IRdJointSkinningFactors_INTERFACE_DEFINED__
#define __IRdJointSkinningFactors_INTERFACE_DEFINED__

/* interface IRdJointSkinningFactors */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdJointSkinningFactors;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("89D58664-5423-4245-88C0-AEB21F8EC60C")
    IRdJointSkinningFactors : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE FindJointParameters( 
            /* [in] */ GUID gID,
            /* [out] */ struct RtJointSkinningFactors *pParams) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddJointParameters( 
            /* [in] */ GUID gID,
            /* [in] */ struct RtJointSkinningFactors *pParams) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveJointParameters( 
            /* [in] */ GUID gId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetJointsCount( 
            /* [retval][out] */ RtUlong *pdwCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetJointParameters( 
            /* [in] */ RtUlong dwIndex,
            /* [out] */ struct RtJointSkinningFactors *pParams) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdJointSkinningFactorsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdJointSkinningFactors * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdJointSkinningFactors * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdJointSkinningFactors * This);
        
        HRESULT ( STDMETHODCALLTYPE *FindJointParameters )( 
            IRdJointSkinningFactors * This,
            /* [in] */ GUID gID,
            /* [out] */ struct RtJointSkinningFactors *pParams);
        
        HRESULT ( STDMETHODCALLTYPE *AddJointParameters )( 
            IRdJointSkinningFactors * This,
            /* [in] */ GUID gID,
            /* [in] */ struct RtJointSkinningFactors *pParams);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveJointParameters )( 
            IRdJointSkinningFactors * This,
            /* [in] */ GUID gId);
        
        HRESULT ( STDMETHODCALLTYPE *GetJointsCount )( 
            IRdJointSkinningFactors * This,
            /* [retval][out] */ RtUlong *pdwCount);
        
        HRESULT ( STDMETHODCALLTYPE *GetJointParameters )( 
            IRdJointSkinningFactors * This,
            /* [in] */ RtUlong dwIndex,
            /* [out] */ struct RtJointSkinningFactors *pParams);
        
        END_INTERFACE
    } IRdJointSkinningFactorsVtbl;

    interface IRdJointSkinningFactors
    {
        CONST_VTBL struct IRdJointSkinningFactorsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdJointSkinningFactors_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdJointSkinningFactors_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdJointSkinningFactors_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdJointSkinningFactors_FindJointParameters(This,gID,pParams)	\
    (This)->lpVtbl -> FindJointParameters(This,gID,pParams)

#define IRdJointSkinningFactors_AddJointParameters(This,gID,pParams)	\
    (This)->lpVtbl -> AddJointParameters(This,gID,pParams)

#define IRdJointSkinningFactors_RemoveJointParameters(This,gId)	\
    (This)->lpVtbl -> RemoveJointParameters(This,gId)

#define IRdJointSkinningFactors_GetJointsCount(This,pdwCount)	\
    (This)->lpVtbl -> GetJointsCount(This,pdwCount)

#define IRdJointSkinningFactors_GetJointParameters(This,dwIndex,pParams)	\
    (This)->lpVtbl -> GetJointParameters(This,dwIndex,pParams)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRdJointSkinningFactors_FindJointParameters_Proxy( 
    IRdJointSkinningFactors * This,
    /* [in] */ GUID gID,
    /* [out] */ struct RtJointSkinningFactors *pParams);


void __RPC_STUB IRdJointSkinningFactors_FindJointParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdJointSkinningFactors_AddJointParameters_Proxy( 
    IRdJointSkinningFactors * This,
    /* [in] */ GUID gID,
    /* [in] */ struct RtJointSkinningFactors *pParams);


void __RPC_STUB IRdJointSkinningFactors_AddJointParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdJointSkinningFactors_RemoveJointParameters_Proxy( 
    IRdJointSkinningFactors * This,
    /* [in] */ GUID gId);


void __RPC_STUB IRdJointSkinningFactors_RemoveJointParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdJointSkinningFactors_GetJointsCount_Proxy( 
    IRdJointSkinningFactors * This,
    /* [retval][out] */ RtUlong *pdwCount);


void __RPC_STUB IRdJointSkinningFactors_GetJointsCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdJointSkinningFactors_GetJointParameters_Proxy( 
    IRdJointSkinningFactors * This,
    /* [in] */ RtUlong dwIndex,
    /* [out] */ struct RtJointSkinningFactors *pParams);


void __RPC_STUB IRdJointSkinningFactors_GetJointParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdJointSkinningFactors_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1538 */
/* [local] */ 


enum RtIkLockType
    {	IKLT_NONE	= 0,
	IKLT_POSITION	= 1,
	IKLT_ROTATION	= 2,
	IKLT_BOTH	= 3,
	IKLT_MAKE_DWORD	= 2147483647
    } ;

enum RtIkLockSymmetry
    {	IKLS_RIGHT	= 0,
	IKLS_LEFT	= 1,
	IKLS_CENTER	= 2,
	IKLS_MAKE_DWORD	= 2147483647
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1538_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1538_v0_0_s_ifspec;

#ifndef __IRdIkLock_INTERFACE_DEFINED__
#define __IRdIkLock_INTERFACE_DEFINED__

/* interface IRdIkLock */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdIkLock;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7B882EAE-B968-4701-A204-C1FBB3CC18AA")
    IRdIkLock : public IRsObject
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Type( 
            /* [retval][out] */ RtUlong *pdwType) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Type( 
            /* [in] */ RtUlong dwType) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LockX( 
            /* [retval][out] */ RtBool *pbLocked) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LockX( 
            /* [in] */ RtBool bLocked) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LockY( 
            /* [retval][out] */ RtBool *pbLocked) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LockY( 
            /* [in] */ RtBool bLocked) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LockZ( 
            /* [retval][out] */ RtBool *pbLocked) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LockZ( 
            /* [in] */ RtBool bLocked) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_LocalTransform( 
            /* [retval][out] */ RtMatrixf *pTransform) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LocalTransform( 
            /* [in] */ RtMatrixf *pTransform) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_BoneNode( 
            /* [retval][out] */ IRsNode **ppNode) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_BoneNode( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Strength( 
            /* [retval][out] */ RtFloat *pfStr) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Strength( 
            /* [in] */ RtFloat fStr) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_UseWithPhysics( 
            /* [retval][out] */ RtBool *pbPhys) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_UseWithPhysics( 
            /* [in] */ RtBool bPhys) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Symmetry( 
            /* [retval][out] */ enum RtIkLockSymmetry *pdwSymmetry) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Symmetry( 
            /* [in] */ enum RtIkLockSymmetry dwSymmetry) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Tag( 
            /* [retval][out] */ BSTR *pbszTag) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Tag( 
            /* [in] */ BSTR bszTag) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Fixed( 
            /* [retval][out] */ RtBool *bFixed) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Fixed( 
            /* [in] */ RtBool bFixed) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdIkLockVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdIkLock * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdIkLock * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdIkLock * This);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassId )( 
            IRdIkLock * This,
            /* [retval][out] */ GUID *pVal);
        
        /* [helpstring][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ClassName )( 
            IRdIkLock * This,
            /* [retval][out] */ BSTR *pVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Type )( 
            IRdIkLock * This,
            /* [retval][out] */ RtUlong *pdwType);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Type )( 
            IRdIkLock * This,
            /* [in] */ RtUlong dwType);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LockX )( 
            IRdIkLock * This,
            /* [retval][out] */ RtBool *pbLocked);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LockX )( 
            IRdIkLock * This,
            /* [in] */ RtBool bLocked);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LockY )( 
            IRdIkLock * This,
            /* [retval][out] */ RtBool *pbLocked);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LockY )( 
            IRdIkLock * This,
            /* [in] */ RtBool bLocked);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LockZ )( 
            IRdIkLock * This,
            /* [retval][out] */ RtBool *pbLocked);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LockZ )( 
            IRdIkLock * This,
            /* [in] */ RtBool bLocked);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LocalTransform )( 
            IRdIkLock * This,
            /* [retval][out] */ RtMatrixf *pTransform);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LocalTransform )( 
            IRdIkLock * This,
            /* [in] */ RtMatrixf *pTransform);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BoneNode )( 
            IRdIkLock * This,
            /* [retval][out] */ IRsNode **ppNode);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BoneNode )( 
            IRdIkLock * This,
            /* [in] */ IRsNode *pNode);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Strength )( 
            IRdIkLock * This,
            /* [retval][out] */ RtFloat *pfStr);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Strength )( 
            IRdIkLock * This,
            /* [in] */ RtFloat fStr);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_UseWithPhysics )( 
            IRdIkLock * This,
            /* [retval][out] */ RtBool *pbPhys);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_UseWithPhysics )( 
            IRdIkLock * This,
            /* [in] */ RtBool bPhys);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Symmetry )( 
            IRdIkLock * This,
            /* [retval][out] */ enum RtIkLockSymmetry *pdwSymmetry);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Symmetry )( 
            IRdIkLock * This,
            /* [in] */ enum RtIkLockSymmetry dwSymmetry);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Tag )( 
            IRdIkLock * This,
            /* [retval][out] */ BSTR *pbszTag);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Tag )( 
            IRdIkLock * This,
            /* [in] */ BSTR bszTag);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Fixed )( 
            IRdIkLock * This,
            /* [retval][out] */ RtBool *bFixed);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Fixed )( 
            IRdIkLock * This,
            /* [in] */ RtBool bFixed);
        
        END_INTERFACE
    } IRdIkLockVtbl;

    interface IRdIkLock
    {
        CONST_VTBL struct IRdIkLockVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdIkLock_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdIkLock_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdIkLock_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdIkLock_get_ClassId(This,pVal)	\
    (This)->lpVtbl -> get_ClassId(This,pVal)

#define IRdIkLock_get_ClassName(This,pVal)	\
    (This)->lpVtbl -> get_ClassName(This,pVal)


#define IRdIkLock_get_Type(This,pdwType)	\
    (This)->lpVtbl -> get_Type(This,pdwType)

#define IRdIkLock_put_Type(This,dwType)	\
    (This)->lpVtbl -> put_Type(This,dwType)

#define IRdIkLock_get_LockX(This,pbLocked)	\
    (This)->lpVtbl -> get_LockX(This,pbLocked)

#define IRdIkLock_put_LockX(This,bLocked)	\
    (This)->lpVtbl -> put_LockX(This,bLocked)

#define IRdIkLock_get_LockY(This,pbLocked)	\
    (This)->lpVtbl -> get_LockY(This,pbLocked)

#define IRdIkLock_put_LockY(This,bLocked)	\
    (This)->lpVtbl -> put_LockY(This,bLocked)

#define IRdIkLock_get_LockZ(This,pbLocked)	\
    (This)->lpVtbl -> get_LockZ(This,pbLocked)

#define IRdIkLock_put_LockZ(This,bLocked)	\
    (This)->lpVtbl -> put_LockZ(This,bLocked)

#define IRdIkLock_get_LocalTransform(This,pTransform)	\
    (This)->lpVtbl -> get_LocalTransform(This,pTransform)

#define IRdIkLock_put_LocalTransform(This,pTransform)	\
    (This)->lpVtbl -> put_LocalTransform(This,pTransform)

#define IRdIkLock_get_BoneNode(This,ppNode)	\
    (This)->lpVtbl -> get_BoneNode(This,ppNode)

#define IRdIkLock_put_BoneNode(This,pNode)	\
    (This)->lpVtbl -> put_BoneNode(This,pNode)

#define IRdIkLock_get_Strength(This,pfStr)	\
    (This)->lpVtbl -> get_Strength(This,pfStr)

#define IRdIkLock_put_Strength(This,fStr)	\
    (This)->lpVtbl -> put_Strength(This,fStr)

#define IRdIkLock_get_UseWithPhysics(This,pbPhys)	\
    (This)->lpVtbl -> get_UseWithPhysics(This,pbPhys)

#define IRdIkLock_put_UseWithPhysics(This,bPhys)	\
    (This)->lpVtbl -> put_UseWithPhysics(This,bPhys)

#define IRdIkLock_get_Symmetry(This,pdwSymmetry)	\
    (This)->lpVtbl -> get_Symmetry(This,pdwSymmetry)

#define IRdIkLock_put_Symmetry(This,dwSymmetry)	\
    (This)->lpVtbl -> put_Symmetry(This,dwSymmetry)

#define IRdIkLock_get_Tag(This,pbszTag)	\
    (This)->lpVtbl -> get_Tag(This,pbszTag)

#define IRdIkLock_put_Tag(This,bszTag)	\
    (This)->lpVtbl -> put_Tag(This,bszTag)

#define IRdIkLock_get_Fixed(This,bFixed)	\
    (This)->lpVtbl -> get_Fixed(This,bFixed)

#define IRdIkLock_put_Fixed(This,bFixed)	\
    (This)->lpVtbl -> put_Fixed(This,bFixed)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdIkLock_get_Type_Proxy( 
    IRdIkLock * This,
    /* [retval][out] */ RtUlong *pdwType);


void __RPC_STUB IRdIkLock_get_Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdIkLock_put_Type_Proxy( 
    IRdIkLock * This,
    /* [in] */ RtUlong dwType);


void __RPC_STUB IRdIkLock_put_Type_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdIkLock_get_LockX_Proxy( 
    IRdIkLock * This,
    /* [retval][out] */ RtBool *pbLocked);


void __RPC_STUB IRdIkLock_get_LockX_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdIkLock_put_LockX_Proxy( 
    IRdIkLock * This,
    /* [in] */ RtBool bLocked);


void __RPC_STUB IRdIkLock_put_LockX_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdIkLock_get_LockY_Proxy( 
    IRdIkLock * This,
    /* [retval][out] */ RtBool *pbLocked);


void __RPC_STUB IRdIkLock_get_LockY_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdIkLock_put_LockY_Proxy( 
    IRdIkLock * This,
    /* [in] */ RtBool bLocked);


void __RPC_STUB IRdIkLock_put_LockY_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdIkLock_get_LockZ_Proxy( 
    IRdIkLock * This,
    /* [retval][out] */ RtBool *pbLocked);


void __RPC_STUB IRdIkLock_get_LockZ_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdIkLock_put_LockZ_Proxy( 
    IRdIkLock * This,
    /* [in] */ RtBool bLocked);


void __RPC_STUB IRdIkLock_put_LockZ_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdIkLock_get_LocalTransform_Proxy( 
    IRdIkLock * This,
    /* [retval][out] */ RtMatrixf *pTransform);


void __RPC_STUB IRdIkLock_get_LocalTransform_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdIkLock_put_LocalTransform_Proxy( 
    IRdIkLock * This,
    /* [in] */ RtMatrixf *pTransform);


void __RPC_STUB IRdIkLock_put_LocalTransform_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdIkLock_get_BoneNode_Proxy( 
    IRdIkLock * This,
    /* [retval][out] */ IRsNode **ppNode);


void __RPC_STUB IRdIkLock_get_BoneNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdIkLock_put_BoneNode_Proxy( 
    IRdIkLock * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRdIkLock_put_BoneNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdIkLock_get_Strength_Proxy( 
    IRdIkLock * This,
    /* [retval][out] */ RtFloat *pfStr);


void __RPC_STUB IRdIkLock_get_Strength_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdIkLock_put_Strength_Proxy( 
    IRdIkLock * This,
    /* [in] */ RtFloat fStr);


void __RPC_STUB IRdIkLock_put_Strength_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdIkLock_get_UseWithPhysics_Proxy( 
    IRdIkLock * This,
    /* [retval][out] */ RtBool *pbPhys);


void __RPC_STUB IRdIkLock_get_UseWithPhysics_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdIkLock_put_UseWithPhysics_Proxy( 
    IRdIkLock * This,
    /* [in] */ RtBool bPhys);


void __RPC_STUB IRdIkLock_put_UseWithPhysics_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdIkLock_get_Symmetry_Proxy( 
    IRdIkLock * This,
    /* [retval][out] */ enum RtIkLockSymmetry *pdwSymmetry);


void __RPC_STUB IRdIkLock_get_Symmetry_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdIkLock_put_Symmetry_Proxy( 
    IRdIkLock * This,
    /* [in] */ enum RtIkLockSymmetry dwSymmetry);


void __RPC_STUB IRdIkLock_put_Symmetry_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdIkLock_get_Tag_Proxy( 
    IRdIkLock * This,
    /* [retval][out] */ BSTR *pbszTag);


void __RPC_STUB IRdIkLock_get_Tag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdIkLock_put_Tag_Proxy( 
    IRdIkLock * This,
    /* [in] */ BSTR bszTag);


void __RPC_STUB IRdIkLock_put_Tag_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdIkLock_get_Fixed_Proxy( 
    IRdIkLock * This,
    /* [retval][out] */ RtBool *bFixed);


void __RPC_STUB IRdIkLock_get_Fixed_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdIkLock_put_Fixed_Proxy( 
    IRdIkLock * This,
    /* [in] */ RtBool bFixed);


void __RPC_STUB IRdIkLock_put_Fixed_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdIkLock_INTERFACE_DEFINED__ */


#ifndef __IRdIkLocks_INTERFACE_DEFINED__
#define __IRdIkLocks_INTERFACE_DEFINED__

/* interface IRdIkLocks */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdIkLocks;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("87F87598-D99E-487c-9F90-0C27B21D24E4")
    IRdIkLocks : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetLocksCount( 
            /* [retval][out] */ RtUlong *dwCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetLockNode( 
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ IRsNode **ppNode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetLockName( 
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ BSTR *szBoneName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddLock( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE RemoveLock( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE AddExternalLock( 
            /* [in] */ BSTR szTag,
            /* [in] */ enum RtIkLockSymmetry dwSymmetry) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetExternalLocksCount( 
            /* [in] */ RtUlong *pdwCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetExternalLock( 
            /* [in] */ RtUlong dwIndex,
            /* [in] */ BSTR *pszTag,
            /* [in] */ enum RtIkLockSymmetry *pdwSymmetry) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdIkLocksVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdIkLocks * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdIkLocks * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdIkLocks * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetLocksCount )( 
            IRdIkLocks * This,
            /* [retval][out] */ RtUlong *dwCount);
        
        HRESULT ( STDMETHODCALLTYPE *GetLockNode )( 
            IRdIkLocks * This,
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ IRsNode **ppNode);
        
        HRESULT ( STDMETHODCALLTYPE *GetLockName )( 
            IRdIkLocks * This,
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ BSTR *szBoneName);
        
        HRESULT ( STDMETHODCALLTYPE *AddLock )( 
            IRdIkLocks * This,
            /* [in] */ IRsNode *pNode);
        
        HRESULT ( STDMETHODCALLTYPE *RemoveLock )( 
            IRdIkLocks * This,
            /* [in] */ IRsNode *pNode);
        
        HRESULT ( STDMETHODCALLTYPE *AddExternalLock )( 
            IRdIkLocks * This,
            /* [in] */ BSTR szTag,
            /* [in] */ enum RtIkLockSymmetry dwSymmetry);
        
        HRESULT ( STDMETHODCALLTYPE *GetExternalLocksCount )( 
            IRdIkLocks * This,
            /* [in] */ RtUlong *pdwCount);
        
        HRESULT ( STDMETHODCALLTYPE *GetExternalLock )( 
            IRdIkLocks * This,
            /* [in] */ RtUlong dwIndex,
            /* [in] */ BSTR *pszTag,
            /* [in] */ enum RtIkLockSymmetry *pdwSymmetry);
        
        END_INTERFACE
    } IRdIkLocksVtbl;

    interface IRdIkLocks
    {
        CONST_VTBL struct IRdIkLocksVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdIkLocks_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdIkLocks_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdIkLocks_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdIkLocks_GetLocksCount(This,dwCount)	\
    (This)->lpVtbl -> GetLocksCount(This,dwCount)

#define IRdIkLocks_GetLockNode(This,dwIndex,ppNode)	\
    (This)->lpVtbl -> GetLockNode(This,dwIndex,ppNode)

#define IRdIkLocks_GetLockName(This,dwIndex,szBoneName)	\
    (This)->lpVtbl -> GetLockName(This,dwIndex,szBoneName)

#define IRdIkLocks_AddLock(This,pNode)	\
    (This)->lpVtbl -> AddLock(This,pNode)

#define IRdIkLocks_RemoveLock(This,pNode)	\
    (This)->lpVtbl -> RemoveLock(This,pNode)

#define IRdIkLocks_AddExternalLock(This,szTag,dwSymmetry)	\
    (This)->lpVtbl -> AddExternalLock(This,szTag,dwSymmetry)

#define IRdIkLocks_GetExternalLocksCount(This,pdwCount)	\
    (This)->lpVtbl -> GetExternalLocksCount(This,pdwCount)

#define IRdIkLocks_GetExternalLock(This,dwIndex,pszTag,pdwSymmetry)	\
    (This)->lpVtbl -> GetExternalLock(This,dwIndex,pszTag,pdwSymmetry)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRdIkLocks_GetLocksCount_Proxy( 
    IRdIkLocks * This,
    /* [retval][out] */ RtUlong *dwCount);


void __RPC_STUB IRdIkLocks_GetLocksCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdIkLocks_GetLockNode_Proxy( 
    IRdIkLocks * This,
    /* [in] */ RtUlong dwIndex,
    /* [retval][out] */ IRsNode **ppNode);


void __RPC_STUB IRdIkLocks_GetLockNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdIkLocks_GetLockName_Proxy( 
    IRdIkLocks * This,
    /* [in] */ RtUlong dwIndex,
    /* [retval][out] */ BSTR *szBoneName);


void __RPC_STUB IRdIkLocks_GetLockName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdIkLocks_AddLock_Proxy( 
    IRdIkLocks * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRdIkLocks_AddLock_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdIkLocks_RemoveLock_Proxy( 
    IRdIkLocks * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRdIkLocks_RemoveLock_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdIkLocks_AddExternalLock_Proxy( 
    IRdIkLocks * This,
    /* [in] */ BSTR szTag,
    /* [in] */ enum RtIkLockSymmetry dwSymmetry);


void __RPC_STUB IRdIkLocks_AddExternalLock_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdIkLocks_GetExternalLocksCount_Proxy( 
    IRdIkLocks * This,
    /* [in] */ RtUlong *pdwCount);


void __RPC_STUB IRdIkLocks_GetExternalLocksCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdIkLocks_GetExternalLock_Proxy( 
    IRdIkLocks * This,
    /* [in] */ RtUlong dwIndex,
    /* [in] */ BSTR *pszTag,
    /* [in] */ enum RtIkLockSymmetry *pdwSymmetry);


void __RPC_STUB IRdIkLocks_GetExternalLock_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdIkLocks_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1540 */
/* [local] */ 


enum RtHairProfileType
    {	HPT_Circle	= 0,
	HPT_Star	= 1,
	HPT_Line	= 2,
	HPT_FDW	= -1
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1540_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1540_v0_0_s_ifspec;

#ifndef __IRsHairParameterProvider_INTERFACE_DEFINED__
#define __IRsHairParameterProvider_INTERFACE_DEFINED__

/* interface IRsHairParameterProvider */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsHairParameterProvider;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3AA74513-B62F-4c89-A1BD-0312B11A73E0")
    IRsHairParameterProvider : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetLength( 
            /* [in] */ RtDWORD triangle,
            /* [in] */ const RtPoint *baryc_coords,
            /* [retval][out] */ RtFloat *pLength) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNormal( 
            /* [in] */ const RtMatrixf *control_matrix,
            /* [in] */ RtDWORD triangle,
            /* [in] */ const RtPoint *baryc_coords,
            /* [retval][out] */ RtPoint *pNormal) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetDirRandomization( 
            /* [in] */ RtDWORD triangle,
            /* [in] */ const RtPoint *baryc_coords,
            /* [retval][out] */ RtFloat *pRandomization) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetDensity( 
            /* [in] */ RtDWORD triangle,
            /* [out] */ RtPoint *local_densities,
            /* [retval][out] */ RtFloat *pDensity) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetSoftness( 
            /* [in] */ RtDWORD triangle,
            /* [in] */ const RtPoint *baryc_coords,
            /* [retval][out] */ RtFloat *pSoftness) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetGravityVector( 
            /* [in] */ RtDWORD triangle,
            /* [in] */ const RtPoint *baryc_coords,
            /* [retval][out] */ RtPoint *pGravityVector) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetSurfacePosition( 
            /* [in] */ RtDWORD triangle,
            /* [in] */ const RtPoint *baryc_coords,
            /* [retval][out] */ RtPoint *pSurfacePos) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetBaseVectors( 
            /* [in] */ const RtMatrixf *control_matrix,
            /* [in] */ RtDWORD triangle,
            /* [out] */ RtPoint *u_base,
            /* [out] */ RtPoint *v_base,
            /* [out] */ RtFloat *surface) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE LockMesh( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UnlockMesh( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetSourceMesh( 
            /* [in] */ IRdMesh *pMesh) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Configure( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetStreamData( 
            /* [in] */ struct RtVertexHair *pData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetBottomThickness( 
            /* [in] */ RtDWORD triangle,
            /* [in] */ const RtPoint *baryc_coords,
            /* [retval][out] */ RtFloat *pThickness) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetTopThickness( 
            /* [in] */ RtDWORD triangle,
            /* [in] */ const RtPoint *baryc_coords,
            /* [retval][out] */ RtFloat *pThickness) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetProfileType( 
            /* [retval][out] */ RtDWORD *pProfile) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetProfileSegments( 
            /* [retval][out] */ RtDWORD *pSegments) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetLengthRandomization( 
            /* [retval][out] */ RtFloat *pRandomization) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GenerateUV( 
            /* [retval][out] */ RtBool *pGenerateUV) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE LockHairStream( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UnlockHairStream( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetArea( 
            /* [in] */ const RtMatrixf *control_matrix,
            /* [in] */ RtDWORD tri_index,
            /* [retval][out] */ RtFloat *pArea) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetRealtimeRatio( 
            /* [retval][out] */ RtFloat *pRealtime) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetOfflineRatio( 
            /* [retval][out] */ RtFloat *pOffline) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetCurliness( 
            /* [retval][out] */ RtFloat *pCurliness) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetTextureSegments( 
            /* [retval][out] */ RtDWORD *pTexSegments) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetCollisionsEnabled( 
            /* [retval][out] */ RtBool *pEnabled) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetColorTexture( 
            /* [retval][out] */ IRdBitmap **ppBitmap) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsHairParameterProviderVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsHairParameterProvider * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsHairParameterProvider * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsHairParameterProvider * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetLength )( 
            IRsHairParameterProvider * This,
            /* [in] */ RtDWORD triangle,
            /* [in] */ const RtPoint *baryc_coords,
            /* [retval][out] */ RtFloat *pLength);
        
        HRESULT ( STDMETHODCALLTYPE *GetNormal )( 
            IRsHairParameterProvider * This,
            /* [in] */ const RtMatrixf *control_matrix,
            /* [in] */ RtDWORD triangle,
            /* [in] */ const RtPoint *baryc_coords,
            /* [retval][out] */ RtPoint *pNormal);
        
        HRESULT ( STDMETHODCALLTYPE *GetDirRandomization )( 
            IRsHairParameterProvider * This,
            /* [in] */ RtDWORD triangle,
            /* [in] */ const RtPoint *baryc_coords,
            /* [retval][out] */ RtFloat *pRandomization);
        
        HRESULT ( STDMETHODCALLTYPE *GetDensity )( 
            IRsHairParameterProvider * This,
            /* [in] */ RtDWORD triangle,
            /* [out] */ RtPoint *local_densities,
            /* [retval][out] */ RtFloat *pDensity);
        
        HRESULT ( STDMETHODCALLTYPE *GetSoftness )( 
            IRsHairParameterProvider * This,
            /* [in] */ RtDWORD triangle,
            /* [in] */ const RtPoint *baryc_coords,
            /* [retval][out] */ RtFloat *pSoftness);
        
        HRESULT ( STDMETHODCALLTYPE *GetGravityVector )( 
            IRsHairParameterProvider * This,
            /* [in] */ RtDWORD triangle,
            /* [in] */ const RtPoint *baryc_coords,
            /* [retval][out] */ RtPoint *pGravityVector);
        
        HRESULT ( STDMETHODCALLTYPE *GetSurfacePosition )( 
            IRsHairParameterProvider * This,
            /* [in] */ RtDWORD triangle,
            /* [in] */ const RtPoint *baryc_coords,
            /* [retval][out] */ RtPoint *pSurfacePos);
        
        HRESULT ( STDMETHODCALLTYPE *GetBaseVectors )( 
            IRsHairParameterProvider * This,
            /* [in] */ const RtMatrixf *control_matrix,
            /* [in] */ RtDWORD triangle,
            /* [out] */ RtPoint *u_base,
            /* [out] */ RtPoint *v_base,
            /* [out] */ RtFloat *surface);
        
        HRESULT ( STDMETHODCALLTYPE *LockMesh )( 
            IRsHairParameterProvider * This);
        
        HRESULT ( STDMETHODCALLTYPE *UnlockMesh )( 
            IRsHairParameterProvider * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetSourceMesh )( 
            IRsHairParameterProvider * This,
            /* [in] */ IRdMesh *pMesh);
        
        HRESULT ( STDMETHODCALLTYPE *Configure )( 
            IRsHairParameterProvider * This,
            /* [in] */ IRsNode *pNode);
        
        HRESULT ( STDMETHODCALLTYPE *SetStreamData )( 
            IRsHairParameterProvider * This,
            /* [in] */ struct RtVertexHair *pData);
        
        HRESULT ( STDMETHODCALLTYPE *GetBottomThickness )( 
            IRsHairParameterProvider * This,
            /* [in] */ RtDWORD triangle,
            /* [in] */ const RtPoint *baryc_coords,
            /* [retval][out] */ RtFloat *pThickness);
        
        HRESULT ( STDMETHODCALLTYPE *GetTopThickness )( 
            IRsHairParameterProvider * This,
            /* [in] */ RtDWORD triangle,
            /* [in] */ const RtPoint *baryc_coords,
            /* [retval][out] */ RtFloat *pThickness);
        
        HRESULT ( STDMETHODCALLTYPE *GetProfileType )( 
            IRsHairParameterProvider * This,
            /* [retval][out] */ RtDWORD *pProfile);
        
        HRESULT ( STDMETHODCALLTYPE *GetProfileSegments )( 
            IRsHairParameterProvider * This,
            /* [retval][out] */ RtDWORD *pSegments);
        
        HRESULT ( STDMETHODCALLTYPE *GetLengthRandomization )( 
            IRsHairParameterProvider * This,
            /* [retval][out] */ RtFloat *pRandomization);
        
        HRESULT ( STDMETHODCALLTYPE *GenerateUV )( 
            IRsHairParameterProvider * This,
            /* [retval][out] */ RtBool *pGenerateUV);
        
        HRESULT ( STDMETHODCALLTYPE *LockHairStream )( 
            IRsHairParameterProvider * This);
        
        HRESULT ( STDMETHODCALLTYPE *UnlockHairStream )( 
            IRsHairParameterProvider * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetArea )( 
            IRsHairParameterProvider * This,
            /* [in] */ const RtMatrixf *control_matrix,
            /* [in] */ RtDWORD tri_index,
            /* [retval][out] */ RtFloat *pArea);
        
        HRESULT ( STDMETHODCALLTYPE *GetRealtimeRatio )( 
            IRsHairParameterProvider * This,
            /* [retval][out] */ RtFloat *pRealtime);
        
        HRESULT ( STDMETHODCALLTYPE *GetOfflineRatio )( 
            IRsHairParameterProvider * This,
            /* [retval][out] */ RtFloat *pOffline);
        
        HRESULT ( STDMETHODCALLTYPE *GetCurliness )( 
            IRsHairParameterProvider * This,
            /* [retval][out] */ RtFloat *pCurliness);
        
        HRESULT ( STDMETHODCALLTYPE *GetTextureSegments )( 
            IRsHairParameterProvider * This,
            /* [retval][out] */ RtDWORD *pTexSegments);
        
        HRESULT ( STDMETHODCALLTYPE *GetCollisionsEnabled )( 
            IRsHairParameterProvider * This,
            /* [retval][out] */ RtBool *pEnabled);
        
        HRESULT ( STDMETHODCALLTYPE *GetColorTexture )( 
            IRsHairParameterProvider * This,
            /* [retval][out] */ IRdBitmap **ppBitmap);
        
        END_INTERFACE
    } IRsHairParameterProviderVtbl;

    interface IRsHairParameterProvider
    {
        CONST_VTBL struct IRsHairParameterProviderVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsHairParameterProvider_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsHairParameterProvider_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsHairParameterProvider_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsHairParameterProvider_GetLength(This,triangle,baryc_coords,pLength)	\
    (This)->lpVtbl -> GetLength(This,triangle,baryc_coords,pLength)

#define IRsHairParameterProvider_GetNormal(This,control_matrix,triangle,baryc_coords,pNormal)	\
    (This)->lpVtbl -> GetNormal(This,control_matrix,triangle,baryc_coords,pNormal)

#define IRsHairParameterProvider_GetDirRandomization(This,triangle,baryc_coords,pRandomization)	\
    (This)->lpVtbl -> GetDirRandomization(This,triangle,baryc_coords,pRandomization)

#define IRsHairParameterProvider_GetDensity(This,triangle,local_densities,pDensity)	\
    (This)->lpVtbl -> GetDensity(This,triangle,local_densities,pDensity)

#define IRsHairParameterProvider_GetSoftness(This,triangle,baryc_coords,pSoftness)	\
    (This)->lpVtbl -> GetSoftness(This,triangle,baryc_coords,pSoftness)

#define IRsHairParameterProvider_GetGravityVector(This,triangle,baryc_coords,pGravityVector)	\
    (This)->lpVtbl -> GetGravityVector(This,triangle,baryc_coords,pGravityVector)

#define IRsHairParameterProvider_GetSurfacePosition(This,triangle,baryc_coords,pSurfacePos)	\
    (This)->lpVtbl -> GetSurfacePosition(This,triangle,baryc_coords,pSurfacePos)

#define IRsHairParameterProvider_GetBaseVectors(This,control_matrix,triangle,u_base,v_base,surface)	\
    (This)->lpVtbl -> GetBaseVectors(This,control_matrix,triangle,u_base,v_base,surface)

#define IRsHairParameterProvider_LockMesh(This)	\
    (This)->lpVtbl -> LockMesh(This)

#define IRsHairParameterProvider_UnlockMesh(This)	\
    (This)->lpVtbl -> UnlockMesh(This)

#define IRsHairParameterProvider_SetSourceMesh(This,pMesh)	\
    (This)->lpVtbl -> SetSourceMesh(This,pMesh)

#define IRsHairParameterProvider_Configure(This,pNode)	\
    (This)->lpVtbl -> Configure(This,pNode)

#define IRsHairParameterProvider_SetStreamData(This,pData)	\
    (This)->lpVtbl -> SetStreamData(This,pData)

#define IRsHairParameterProvider_GetBottomThickness(This,triangle,baryc_coords,pThickness)	\
    (This)->lpVtbl -> GetBottomThickness(This,triangle,baryc_coords,pThickness)

#define IRsHairParameterProvider_GetTopThickness(This,triangle,baryc_coords,pThickness)	\
    (This)->lpVtbl -> GetTopThickness(This,triangle,baryc_coords,pThickness)

#define IRsHairParameterProvider_GetProfileType(This,pProfile)	\
    (This)->lpVtbl -> GetProfileType(This,pProfile)

#define IRsHairParameterProvider_GetProfileSegments(This,pSegments)	\
    (This)->lpVtbl -> GetProfileSegments(This,pSegments)

#define IRsHairParameterProvider_GetLengthRandomization(This,pRandomization)	\
    (This)->lpVtbl -> GetLengthRandomization(This,pRandomization)

#define IRsHairParameterProvider_GenerateUV(This,pGenerateUV)	\
    (This)->lpVtbl -> GenerateUV(This,pGenerateUV)

#define IRsHairParameterProvider_LockHairStream(This)	\
    (This)->lpVtbl -> LockHairStream(This)

#define IRsHairParameterProvider_UnlockHairStream(This)	\
    (This)->lpVtbl -> UnlockHairStream(This)

#define IRsHairParameterProvider_GetArea(This,control_matrix,tri_index,pArea)	\
    (This)->lpVtbl -> GetArea(This,control_matrix,tri_index,pArea)

#define IRsHairParameterProvider_GetRealtimeRatio(This,pRealtime)	\
    (This)->lpVtbl -> GetRealtimeRatio(This,pRealtime)

#define IRsHairParameterProvider_GetOfflineRatio(This,pOffline)	\
    (This)->lpVtbl -> GetOfflineRatio(This,pOffline)

#define IRsHairParameterProvider_GetCurliness(This,pCurliness)	\
    (This)->lpVtbl -> GetCurliness(This,pCurliness)

#define IRsHairParameterProvider_GetTextureSegments(This,pTexSegments)	\
    (This)->lpVtbl -> GetTextureSegments(This,pTexSegments)

#define IRsHairParameterProvider_GetCollisionsEnabled(This,pEnabled)	\
    (This)->lpVtbl -> GetCollisionsEnabled(This,pEnabled)

#define IRsHairParameterProvider_GetColorTexture(This,ppBitmap)	\
    (This)->lpVtbl -> GetColorTexture(This,ppBitmap)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_GetLength_Proxy( 
    IRsHairParameterProvider * This,
    /* [in] */ RtDWORD triangle,
    /* [in] */ const RtPoint *baryc_coords,
    /* [retval][out] */ RtFloat *pLength);


void __RPC_STUB IRsHairParameterProvider_GetLength_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_GetNormal_Proxy( 
    IRsHairParameterProvider * This,
    /* [in] */ const RtMatrixf *control_matrix,
    /* [in] */ RtDWORD triangle,
    /* [in] */ const RtPoint *baryc_coords,
    /* [retval][out] */ RtPoint *pNormal);


void __RPC_STUB IRsHairParameterProvider_GetNormal_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_GetDirRandomization_Proxy( 
    IRsHairParameterProvider * This,
    /* [in] */ RtDWORD triangle,
    /* [in] */ const RtPoint *baryc_coords,
    /* [retval][out] */ RtFloat *pRandomization);


void __RPC_STUB IRsHairParameterProvider_GetDirRandomization_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_GetDensity_Proxy( 
    IRsHairParameterProvider * This,
    /* [in] */ RtDWORD triangle,
    /* [out] */ RtPoint *local_densities,
    /* [retval][out] */ RtFloat *pDensity);


void __RPC_STUB IRsHairParameterProvider_GetDensity_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_GetSoftness_Proxy( 
    IRsHairParameterProvider * This,
    /* [in] */ RtDWORD triangle,
    /* [in] */ const RtPoint *baryc_coords,
    /* [retval][out] */ RtFloat *pSoftness);


void __RPC_STUB IRsHairParameterProvider_GetSoftness_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_GetGravityVector_Proxy( 
    IRsHairParameterProvider * This,
    /* [in] */ RtDWORD triangle,
    /* [in] */ const RtPoint *baryc_coords,
    /* [retval][out] */ RtPoint *pGravityVector);


void __RPC_STUB IRsHairParameterProvider_GetGravityVector_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_GetSurfacePosition_Proxy( 
    IRsHairParameterProvider * This,
    /* [in] */ RtDWORD triangle,
    /* [in] */ const RtPoint *baryc_coords,
    /* [retval][out] */ RtPoint *pSurfacePos);


void __RPC_STUB IRsHairParameterProvider_GetSurfacePosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_GetBaseVectors_Proxy( 
    IRsHairParameterProvider * This,
    /* [in] */ const RtMatrixf *control_matrix,
    /* [in] */ RtDWORD triangle,
    /* [out] */ RtPoint *u_base,
    /* [out] */ RtPoint *v_base,
    /* [out] */ RtFloat *surface);


void __RPC_STUB IRsHairParameterProvider_GetBaseVectors_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_LockMesh_Proxy( 
    IRsHairParameterProvider * This);


void __RPC_STUB IRsHairParameterProvider_LockMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_UnlockMesh_Proxy( 
    IRsHairParameterProvider * This);


void __RPC_STUB IRsHairParameterProvider_UnlockMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_SetSourceMesh_Proxy( 
    IRsHairParameterProvider * This,
    /* [in] */ IRdMesh *pMesh);


void __RPC_STUB IRsHairParameterProvider_SetSourceMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_Configure_Proxy( 
    IRsHairParameterProvider * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRsHairParameterProvider_Configure_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_SetStreamData_Proxy( 
    IRsHairParameterProvider * This,
    /* [in] */ struct RtVertexHair *pData);


void __RPC_STUB IRsHairParameterProvider_SetStreamData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_GetBottomThickness_Proxy( 
    IRsHairParameterProvider * This,
    /* [in] */ RtDWORD triangle,
    /* [in] */ const RtPoint *baryc_coords,
    /* [retval][out] */ RtFloat *pThickness);


void __RPC_STUB IRsHairParameterProvider_GetBottomThickness_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_GetTopThickness_Proxy( 
    IRsHairParameterProvider * This,
    /* [in] */ RtDWORD triangle,
    /* [in] */ const RtPoint *baryc_coords,
    /* [retval][out] */ RtFloat *pThickness);


void __RPC_STUB IRsHairParameterProvider_GetTopThickness_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_GetProfileType_Proxy( 
    IRsHairParameterProvider * This,
    /* [retval][out] */ RtDWORD *pProfile);


void __RPC_STUB IRsHairParameterProvider_GetProfileType_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_GetProfileSegments_Proxy( 
    IRsHairParameterProvider * This,
    /* [retval][out] */ RtDWORD *pSegments);


void __RPC_STUB IRsHairParameterProvider_GetProfileSegments_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_GetLengthRandomization_Proxy( 
    IRsHairParameterProvider * This,
    /* [retval][out] */ RtFloat *pRandomization);


void __RPC_STUB IRsHairParameterProvider_GetLengthRandomization_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_GenerateUV_Proxy( 
    IRsHairParameterProvider * This,
    /* [retval][out] */ RtBool *pGenerateUV);


void __RPC_STUB IRsHairParameterProvider_GenerateUV_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_LockHairStream_Proxy( 
    IRsHairParameterProvider * This);


void __RPC_STUB IRsHairParameterProvider_LockHairStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_UnlockHairStream_Proxy( 
    IRsHairParameterProvider * This);


void __RPC_STUB IRsHairParameterProvider_UnlockHairStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_GetArea_Proxy( 
    IRsHairParameterProvider * This,
    /* [in] */ const RtMatrixf *control_matrix,
    /* [in] */ RtDWORD tri_index,
    /* [retval][out] */ RtFloat *pArea);


void __RPC_STUB IRsHairParameterProvider_GetArea_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_GetRealtimeRatio_Proxy( 
    IRsHairParameterProvider * This,
    /* [retval][out] */ RtFloat *pRealtime);


void __RPC_STUB IRsHairParameterProvider_GetRealtimeRatio_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_GetOfflineRatio_Proxy( 
    IRsHairParameterProvider * This,
    /* [retval][out] */ RtFloat *pOffline);


void __RPC_STUB IRsHairParameterProvider_GetOfflineRatio_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_GetCurliness_Proxy( 
    IRsHairParameterProvider * This,
    /* [retval][out] */ RtFloat *pCurliness);


void __RPC_STUB IRsHairParameterProvider_GetCurliness_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_GetTextureSegments_Proxy( 
    IRsHairParameterProvider * This,
    /* [retval][out] */ RtDWORD *pTexSegments);


void __RPC_STUB IRsHairParameterProvider_GetTextureSegments_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_GetCollisionsEnabled_Proxy( 
    IRsHairParameterProvider * This,
    /* [retval][out] */ RtBool *pEnabled);


void __RPC_STUB IRsHairParameterProvider_GetCollisionsEnabled_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairParameterProvider_GetColorTexture_Proxy( 
    IRsHairParameterProvider * This,
    /* [retval][out] */ IRdBitmap **ppBitmap);


void __RPC_STUB IRsHairParameterProvider_GetColorTexture_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsHairParameterProvider_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1541 */
/* [local] */ 

struct RtHairStrand
    {
    RtDWORD triangle_index;
    RtDWORD strand_index;
    RtDWORD node_count;
    RtDWORD first_node;
    RtPoint strand_tip;
    RtPoint base_baryc;
    } ;
struct RtHairStrandNode
    {
    RtPoint node_point;
    RtPoint ubase;
    RtPoint vbase;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1541_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1541_v0_0_s_ifspec;

#ifndef __IRsHairStrandGeneratorAlg_INTERFACE_DEFINED__
#define __IRsHairStrandGeneratorAlg_INTERFACE_DEFINED__

/* interface IRsHairStrandGeneratorAlg */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsHairStrandGeneratorAlg;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("C06DFEA3-AFAF-451a-98A3-6EBDBAC65743")
    IRsHairStrandGeneratorAlg : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetInputMesh( 
            /* [in] */ IRdMesh *pMesh) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE LockMesh( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE UnlockMesh( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Process( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE Configure( 
            /* [in] */ IRsNode *pNode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetStreamData( 
            /* [in] */ struct RtVertexHair *pData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE EnableCacheMode( 
            /* [in] */ RtBool enable) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetCachingStrategy( 
            /* [in] */ RtDWORD strategy) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetControlMatrix( 
            /* [in] */ const RtMatrixf *matrix) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetHash( 
            /* [in] */ RtDWORD hash) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GenerateStrands( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetOutputMesh( 
            /* [retval][out] */ IRdMesh **ppMesh) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetPreviewMode( 
            /* [in] */ RtBool preview_mode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetParamProvider( 
            /* [in] */ IRsHairParameterProvider *pParamProvider) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetOfflineMode( 
            /* [in] */ RtBool offline_mode) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetStrandCount( 
            /* [out] */ RtDWORD *pStrandCount,
            /* [out] */ RtDWORD *pNodeCount) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetStrands( 
            /* [out][in] */ struct RtHairStrand *pStrands,
            /* [out][in] */ struct RtHairStrandNode *pNodes) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE ProjectTips( 
            /* [in] */ const RtMatrixf *pMatrix) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetTipsProjections( 
            /* [in] */ RtVector2f *pProjections) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GenerateMeshForTriangle( 
            /* [in] */ RtDWORD index,
            /* [out][in] */ RtFloat *residual_count,
            /* [retval][out] */ IRdMesh **ppMesh) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsHairStrandGeneratorAlgVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsHairStrandGeneratorAlg * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsHairStrandGeneratorAlg * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsHairStrandGeneratorAlg * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetInputMesh )( 
            IRsHairStrandGeneratorAlg * This,
            /* [in] */ IRdMesh *pMesh);
        
        HRESULT ( STDMETHODCALLTYPE *LockMesh )( 
            IRsHairStrandGeneratorAlg * This);
        
        HRESULT ( STDMETHODCALLTYPE *UnlockMesh )( 
            IRsHairStrandGeneratorAlg * This);
        
        HRESULT ( STDMETHODCALLTYPE *Process )( 
            IRsHairStrandGeneratorAlg * This);
        
        HRESULT ( STDMETHODCALLTYPE *Configure )( 
            IRsHairStrandGeneratorAlg * This,
            /* [in] */ IRsNode *pNode);
        
        HRESULT ( STDMETHODCALLTYPE *SetStreamData )( 
            IRsHairStrandGeneratorAlg * This,
            /* [in] */ struct RtVertexHair *pData);
        
        HRESULT ( STDMETHODCALLTYPE *EnableCacheMode )( 
            IRsHairStrandGeneratorAlg * This,
            /* [in] */ RtBool enable);
        
        HRESULT ( STDMETHODCALLTYPE *SetCachingStrategy )( 
            IRsHairStrandGeneratorAlg * This,
            /* [in] */ RtDWORD strategy);
        
        HRESULT ( STDMETHODCALLTYPE *SetControlMatrix )( 
            IRsHairStrandGeneratorAlg * This,
            /* [in] */ const RtMatrixf *matrix);
        
        HRESULT ( STDMETHODCALLTYPE *SetHash )( 
            IRsHairStrandGeneratorAlg * This,
            /* [in] */ RtDWORD hash);
        
        HRESULT ( STDMETHODCALLTYPE *GenerateStrands )( 
            IRsHairStrandGeneratorAlg * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetOutputMesh )( 
            IRsHairStrandGeneratorAlg * This,
            /* [retval][out] */ IRdMesh **ppMesh);
        
        HRESULT ( STDMETHODCALLTYPE *SetPreviewMode )( 
            IRsHairStrandGeneratorAlg * This,
            /* [in] */ RtBool preview_mode);
        
        HRESULT ( STDMETHODCALLTYPE *SetParamProvider )( 
            IRsHairStrandGeneratorAlg * This,
            /* [in] */ IRsHairParameterProvider *pParamProvider);
        
        HRESULT ( STDMETHODCALLTYPE *SetOfflineMode )( 
            IRsHairStrandGeneratorAlg * This,
            /* [in] */ RtBool offline_mode);
        
        HRESULT ( STDMETHODCALLTYPE *GetStrandCount )( 
            IRsHairStrandGeneratorAlg * This,
            /* [out] */ RtDWORD *pStrandCount,
            /* [out] */ RtDWORD *pNodeCount);
        
        HRESULT ( STDMETHODCALLTYPE *GetStrands )( 
            IRsHairStrandGeneratorAlg * This,
            /* [out][in] */ struct RtHairStrand *pStrands,
            /* [out][in] */ struct RtHairStrandNode *pNodes);
        
        HRESULT ( STDMETHODCALLTYPE *ProjectTips )( 
            IRsHairStrandGeneratorAlg * This,
            /* [in] */ const RtMatrixf *pMatrix);
        
        HRESULT ( STDMETHODCALLTYPE *GetTipsProjections )( 
            IRsHairStrandGeneratorAlg * This,
            /* [in] */ RtVector2f *pProjections);
        
        HRESULT ( STDMETHODCALLTYPE *GenerateMeshForTriangle )( 
            IRsHairStrandGeneratorAlg * This,
            /* [in] */ RtDWORD index,
            /* [out][in] */ RtFloat *residual_count,
            /* [retval][out] */ IRdMesh **ppMesh);
        
        END_INTERFACE
    } IRsHairStrandGeneratorAlgVtbl;

    interface IRsHairStrandGeneratorAlg
    {
        CONST_VTBL struct IRsHairStrandGeneratorAlgVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsHairStrandGeneratorAlg_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsHairStrandGeneratorAlg_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsHairStrandGeneratorAlg_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsHairStrandGeneratorAlg_SetInputMesh(This,pMesh)	\
    (This)->lpVtbl -> SetInputMesh(This,pMesh)

#define IRsHairStrandGeneratorAlg_LockMesh(This)	\
    (This)->lpVtbl -> LockMesh(This)

#define IRsHairStrandGeneratorAlg_UnlockMesh(This)	\
    (This)->lpVtbl -> UnlockMesh(This)

#define IRsHairStrandGeneratorAlg_Process(This)	\
    (This)->lpVtbl -> Process(This)

#define IRsHairStrandGeneratorAlg_Configure(This,pNode)	\
    (This)->lpVtbl -> Configure(This,pNode)

#define IRsHairStrandGeneratorAlg_SetStreamData(This,pData)	\
    (This)->lpVtbl -> SetStreamData(This,pData)

#define IRsHairStrandGeneratorAlg_EnableCacheMode(This,enable)	\
    (This)->lpVtbl -> EnableCacheMode(This,enable)

#define IRsHairStrandGeneratorAlg_SetCachingStrategy(This,strategy)	\
    (This)->lpVtbl -> SetCachingStrategy(This,strategy)

#define IRsHairStrandGeneratorAlg_SetControlMatrix(This,matrix)	\
    (This)->lpVtbl -> SetControlMatrix(This,matrix)

#define IRsHairStrandGeneratorAlg_SetHash(This,hash)	\
    (This)->lpVtbl -> SetHash(This,hash)

#define IRsHairStrandGeneratorAlg_GenerateStrands(This)	\
    (This)->lpVtbl -> GenerateStrands(This)

#define IRsHairStrandGeneratorAlg_GetOutputMesh(This,ppMesh)	\
    (This)->lpVtbl -> GetOutputMesh(This,ppMesh)

#define IRsHairStrandGeneratorAlg_SetPreviewMode(This,preview_mode)	\
    (This)->lpVtbl -> SetPreviewMode(This,preview_mode)

#define IRsHairStrandGeneratorAlg_SetParamProvider(This,pParamProvider)	\
    (This)->lpVtbl -> SetParamProvider(This,pParamProvider)

#define IRsHairStrandGeneratorAlg_SetOfflineMode(This,offline_mode)	\
    (This)->lpVtbl -> SetOfflineMode(This,offline_mode)

#define IRsHairStrandGeneratorAlg_GetStrandCount(This,pStrandCount,pNodeCount)	\
    (This)->lpVtbl -> GetStrandCount(This,pStrandCount,pNodeCount)

#define IRsHairStrandGeneratorAlg_GetStrands(This,pStrands,pNodes)	\
    (This)->lpVtbl -> GetStrands(This,pStrands,pNodes)

#define IRsHairStrandGeneratorAlg_ProjectTips(This,pMatrix)	\
    (This)->lpVtbl -> ProjectTips(This,pMatrix)

#define IRsHairStrandGeneratorAlg_GetTipsProjections(This,pProjections)	\
    (This)->lpVtbl -> GetTipsProjections(This,pProjections)

#define IRsHairStrandGeneratorAlg_GenerateMeshForTriangle(This,index,residual_count,ppMesh)	\
    (This)->lpVtbl -> GenerateMeshForTriangle(This,index,residual_count,ppMesh)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsHairStrandGeneratorAlg_SetInputMesh_Proxy( 
    IRsHairStrandGeneratorAlg * This,
    /* [in] */ IRdMesh *pMesh);


void __RPC_STUB IRsHairStrandGeneratorAlg_SetInputMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairStrandGeneratorAlg_LockMesh_Proxy( 
    IRsHairStrandGeneratorAlg * This);


void __RPC_STUB IRsHairStrandGeneratorAlg_LockMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairStrandGeneratorAlg_UnlockMesh_Proxy( 
    IRsHairStrandGeneratorAlg * This);


void __RPC_STUB IRsHairStrandGeneratorAlg_UnlockMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairStrandGeneratorAlg_Process_Proxy( 
    IRsHairStrandGeneratorAlg * This);


void __RPC_STUB IRsHairStrandGeneratorAlg_Process_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairStrandGeneratorAlg_Configure_Proxy( 
    IRsHairStrandGeneratorAlg * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRsHairStrandGeneratorAlg_Configure_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairStrandGeneratorAlg_SetStreamData_Proxy( 
    IRsHairStrandGeneratorAlg * This,
    /* [in] */ struct RtVertexHair *pData);


void __RPC_STUB IRsHairStrandGeneratorAlg_SetStreamData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairStrandGeneratorAlg_EnableCacheMode_Proxy( 
    IRsHairStrandGeneratorAlg * This,
    /* [in] */ RtBool enable);


void __RPC_STUB IRsHairStrandGeneratorAlg_EnableCacheMode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairStrandGeneratorAlg_SetCachingStrategy_Proxy( 
    IRsHairStrandGeneratorAlg * This,
    /* [in] */ RtDWORD strategy);


void __RPC_STUB IRsHairStrandGeneratorAlg_SetCachingStrategy_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairStrandGeneratorAlg_SetControlMatrix_Proxy( 
    IRsHairStrandGeneratorAlg * This,
    /* [in] */ const RtMatrixf *matrix);


void __RPC_STUB IRsHairStrandGeneratorAlg_SetControlMatrix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairStrandGeneratorAlg_SetHash_Proxy( 
    IRsHairStrandGeneratorAlg * This,
    /* [in] */ RtDWORD hash);


void __RPC_STUB IRsHairStrandGeneratorAlg_SetHash_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairStrandGeneratorAlg_GenerateStrands_Proxy( 
    IRsHairStrandGeneratorAlg * This);


void __RPC_STUB IRsHairStrandGeneratorAlg_GenerateStrands_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairStrandGeneratorAlg_GetOutputMesh_Proxy( 
    IRsHairStrandGeneratorAlg * This,
    /* [retval][out] */ IRdMesh **ppMesh);


void __RPC_STUB IRsHairStrandGeneratorAlg_GetOutputMesh_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairStrandGeneratorAlg_SetPreviewMode_Proxy( 
    IRsHairStrandGeneratorAlg * This,
    /* [in] */ RtBool preview_mode);


void __RPC_STUB IRsHairStrandGeneratorAlg_SetPreviewMode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairStrandGeneratorAlg_SetParamProvider_Proxy( 
    IRsHairStrandGeneratorAlg * This,
    /* [in] */ IRsHairParameterProvider *pParamProvider);


void __RPC_STUB IRsHairStrandGeneratorAlg_SetParamProvider_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairStrandGeneratorAlg_SetOfflineMode_Proxy( 
    IRsHairStrandGeneratorAlg * This,
    /* [in] */ RtBool offline_mode);


void __RPC_STUB IRsHairStrandGeneratorAlg_SetOfflineMode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairStrandGeneratorAlg_GetStrandCount_Proxy( 
    IRsHairStrandGeneratorAlg * This,
    /* [out] */ RtDWORD *pStrandCount,
    /* [out] */ RtDWORD *pNodeCount);


void __RPC_STUB IRsHairStrandGeneratorAlg_GetStrandCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairStrandGeneratorAlg_GetStrands_Proxy( 
    IRsHairStrandGeneratorAlg * This,
    /* [out][in] */ struct RtHairStrand *pStrands,
    /* [out][in] */ struct RtHairStrandNode *pNodes);


void __RPC_STUB IRsHairStrandGeneratorAlg_GetStrands_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairStrandGeneratorAlg_ProjectTips_Proxy( 
    IRsHairStrandGeneratorAlg * This,
    /* [in] */ const RtMatrixf *pMatrix);


void __RPC_STUB IRsHairStrandGeneratorAlg_ProjectTips_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairStrandGeneratorAlg_GetTipsProjections_Proxy( 
    IRsHairStrandGeneratorAlg * This,
    /* [in] */ RtVector2f *pProjections);


void __RPC_STUB IRsHairStrandGeneratorAlg_GetTipsProjections_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsHairStrandGeneratorAlg_GenerateMeshForTriangle_Proxy( 
    IRsHairStrandGeneratorAlg * This,
    /* [in] */ RtDWORD index,
    /* [out][in] */ RtFloat *residual_count,
    /* [retval][out] */ IRdMesh **ppMesh);


void __RPC_STUB IRsHairStrandGeneratorAlg_GenerateMeshForTriangle_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsHairStrandGeneratorAlg_INTERFACE_DEFINED__ */


#ifndef __IRdHair_INTERFACE_DEFINED__
#define __IRdHair_INTERFACE_DEFINED__

/* interface IRdHair */
/* [unique][helpstring][dual][uuid][local][object] */ 


EXTERN_C const IID IID_IRdHair;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0CCB06C1-4618-42bc-88BD-13B9F2F86E31")
    IRdHair : public IDispatch
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetHairParameterProvider( 
            /* [in] */ IRsHairParameterProvider *pParamProvider) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetHairParameterProvider( 
            /* [retval][out] */ IRsHairParameterProvider **ppParamProvider) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetOfflineGenerator( 
            /* [retval][out] */ IRsHairStrandGeneratorAlg **ppGeneratorAlg) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetRealtimeGenerator( 
            /* [in] */ IRsHairStrandGeneratorAlg *pGenerator) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetRealtimeGenerator( 
            /* [retval][out] */ IRsHairStrandGeneratorAlg **ppGenerator) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateGenerator( 
            /* [retval][out] */ IRsHairStrandGeneratorAlg **ppGenerator) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CreateParameterProvider( 
            /* [retval][out] */ IRsHairParameterProvider **ppProvider) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdHairVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdHair * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdHair * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdHair * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdHair * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdHair * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdHair * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdHair * 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] */ HRESULT ( STDMETHODCALLTYPE *SetHairParameterProvider )( 
            IRdHair * This,
            /* [in] */ IRsHairParameterProvider *pParamProvider);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetHairParameterProvider )( 
            IRdHair * This,
            /* [retval][out] */ IRsHairParameterProvider **ppParamProvider);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetOfflineGenerator )( 
            IRdHair * This,
            /* [retval][out] */ IRsHairStrandGeneratorAlg **ppGeneratorAlg);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetRealtimeGenerator )( 
            IRdHair * This,
            /* [in] */ IRsHairStrandGeneratorAlg *pGenerator);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetRealtimeGenerator )( 
            IRdHair * This,
            /* [retval][out] */ IRsHairStrandGeneratorAlg **ppGenerator);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateGenerator )( 
            IRdHair * This,
            /* [retval][out] */ IRsHairStrandGeneratorAlg **ppGenerator);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CreateParameterProvider )( 
            IRdHair * This,
            /* [retval][out] */ IRsHairParameterProvider **ppProvider);
        
        END_INTERFACE
    } IRdHairVtbl;

    interface IRdHair
    {
        CONST_VTBL struct IRdHairVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdHair_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdHair_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdHair_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdHair_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdHair_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdHair_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdHair_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdHair_SetHairParameterProvider(This,pParamProvider)	\
    (This)->lpVtbl -> SetHairParameterProvider(This,pParamProvider)

#define IRdHair_GetHairParameterProvider(This,ppParamProvider)	\
    (This)->lpVtbl -> GetHairParameterProvider(This,ppParamProvider)

#define IRdHair_GetOfflineGenerator(This,ppGeneratorAlg)	\
    (This)->lpVtbl -> GetOfflineGenerator(This,ppGeneratorAlg)

#define IRdHair_SetRealtimeGenerator(This,pGenerator)	\
    (This)->lpVtbl -> SetRealtimeGenerator(This,pGenerator)

#define IRdHair_GetRealtimeGenerator(This,ppGenerator)	\
    (This)->lpVtbl -> GetRealtimeGenerator(This,ppGenerator)

#define IRdHair_CreateGenerator(This,ppGenerator)	\
    (This)->lpVtbl -> CreateGenerator(This,ppGenerator)

#define IRdHair_CreateParameterProvider(This,ppProvider)	\
    (This)->lpVtbl -> CreateParameterProvider(This,ppProvider)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdHair_SetHairParameterProvider_Proxy( 
    IRdHair * This,
    /* [in] */ IRsHairParameterProvider *pParamProvider);


void __RPC_STUB IRdHair_SetHairParameterProvider_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdHair_GetHairParameterProvider_Proxy( 
    IRdHair * This,
    /* [retval][out] */ IRsHairParameterProvider **ppParamProvider);


void __RPC_STUB IRdHair_GetHairParameterProvider_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdHair_GetOfflineGenerator_Proxy( 
    IRdHair * This,
    /* [retval][out] */ IRsHairStrandGeneratorAlg **ppGeneratorAlg);


void __RPC_STUB IRdHair_GetOfflineGenerator_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdHair_SetRealtimeGenerator_Proxy( 
    IRdHair * This,
    /* [in] */ IRsHairStrandGeneratorAlg *pGenerator);


void __RPC_STUB IRdHair_SetRealtimeGenerator_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdHair_GetRealtimeGenerator_Proxy( 
    IRdHair * This,
    /* [retval][out] */ IRsHairStrandGeneratorAlg **ppGenerator);


void __RPC_STUB IRdHair_GetRealtimeGenerator_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdHair_CreateGenerator_Proxy( 
    IRdHair * This,
    /* [retval][out] */ IRsHairStrandGeneratorAlg **ppGenerator);


void __RPC_STUB IRdHair_CreateGenerator_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdHair_CreateParameterProvider_Proxy( 
    IRdHair * This,
    /* [retval][out] */ IRsHairParameterProvider **ppProvider);


void __RPC_STUB IRdHair_CreateParameterProvider_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdHair_INTERFACE_DEFINED__ */


#ifndef __IRdDefaultPose_INTERFACE_DEFINED__
#define __IRdDefaultPose_INTERFACE_DEFINED__

/* interface IRdDefaultPose */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdDefaultPose;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("CE736038-D674-4bd8-B54F-2AE8812790D2")
    IRdDefaultPose : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddDefaultPose( 
            /* [in] */ GUID gJointId,
            /* [in] */ RtMatrixf *pDefaultTransform) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDefaultPose( 
            /* [in] */ GUID gJointId,
            /* [retval][out] */ RtMatrixf *pDefaultTransform) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdDefaultPoseVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdDefaultPose * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdDefaultPose * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdDefaultPose * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddDefaultPose )( 
            IRdDefaultPose * This,
            /* [in] */ GUID gJointId,
            /* [in] */ RtMatrixf *pDefaultTransform);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDefaultPose )( 
            IRdDefaultPose * This,
            /* [in] */ GUID gJointId,
            /* [retval][out] */ RtMatrixf *pDefaultTransform);
        
        END_INTERFACE
    } IRdDefaultPoseVtbl;

    interface IRdDefaultPose
    {
        CONST_VTBL struct IRdDefaultPoseVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdDefaultPose_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdDefaultPose_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdDefaultPose_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdDefaultPose_AddDefaultPose(This,gJointId,pDefaultTransform)	\
    (This)->lpVtbl -> AddDefaultPose(This,gJointId,pDefaultTransform)

#define IRdDefaultPose_GetDefaultPose(This,gJointId,pDefaultTransform)	\
    (This)->lpVtbl -> GetDefaultPose(This,gJointId,pDefaultTransform)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdDefaultPose_AddDefaultPose_Proxy( 
    IRdDefaultPose * This,
    /* [in] */ GUID gJointId,
    /* [in] */ RtMatrixf *pDefaultTransform);


void __RPC_STUB IRdDefaultPose_AddDefaultPose_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdDefaultPose_GetDefaultPose_Proxy( 
    IRdDefaultPose * This,
    /* [in] */ GUID gJointId,
    /* [retval][out] */ RtMatrixf *pDefaultTransform);


void __RPC_STUB IRdDefaultPose_GetDefaultPose_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdDefaultPose_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1544 */
/* [local] */ 

struct RtSkeletonColorTable
    {
    RtUlong dwJointColor;
    RtUlong dwBoneColor;
    RtUlong dwRotLockColor;
    RtUlong dwPosLockColor;
    RtUlong dwFullLockColor;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1544_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1544_v0_0_s_ifspec;

#ifndef __IRdSkeletonProperties_INTERFACE_DEFINED__
#define __IRdSkeletonProperties_INTERFACE_DEFINED__

/* interface IRdSkeletonProperties */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdSkeletonProperties;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6D59A24A-DF6A-4904-B50A-EA1E4242DF28")
    IRdSkeletonProperties : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetShapeTemplateName( 
            /* [out] */ BSTR *pszName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetShapeTemplateName( 
            /* [in] */ BSTR szName) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetJointColor( 
            /* [in] */ RtUlong dwColor) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetBoneColor( 
            /* [in] */ RtUlong dwColor) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetPosLockColor( 
            /* [in] */ RtUlong dwColor) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetRotLockColor( 
            /* [in] */ RtUlong dwColor) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetFullLockColor( 
            /* [in] */ RtUlong dwColor) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetColorTable( 
            /* [out] */ struct RtSkeletonColorTable *pColorTable) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdSkeletonPropertiesVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdSkeletonProperties * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdSkeletonProperties * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdSkeletonProperties * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetShapeTemplateName )( 
            IRdSkeletonProperties * This,
            /* [out] */ BSTR *pszName);
        
        HRESULT ( STDMETHODCALLTYPE *SetShapeTemplateName )( 
            IRdSkeletonProperties * This,
            /* [in] */ BSTR szName);
        
        HRESULT ( STDMETHODCALLTYPE *SetJointColor )( 
            IRdSkeletonProperties * This,
            /* [in] */ RtUlong dwColor);
        
        HRESULT ( STDMETHODCALLTYPE *SetBoneColor )( 
            IRdSkeletonProperties * This,
            /* [in] */ RtUlong dwColor);
        
        HRESULT ( STDMETHODCALLTYPE *SetPosLockColor )( 
            IRdSkeletonProperties * This,
            /* [in] */ RtUlong dwColor);
        
        HRESULT ( STDMETHODCALLTYPE *SetRotLockColor )( 
            IRdSkeletonProperties * This,
            /* [in] */ RtUlong dwColor);
        
        HRESULT ( STDMETHODCALLTYPE *SetFullLockColor )( 
            IRdSkeletonProperties * This,
            /* [in] */ RtUlong dwColor);
        
        HRESULT ( STDMETHODCALLTYPE *GetColorTable )( 
            IRdSkeletonProperties * This,
            /* [out] */ struct RtSkeletonColorTable *pColorTable);
        
        END_INTERFACE
    } IRdSkeletonPropertiesVtbl;

    interface IRdSkeletonProperties
    {
        CONST_VTBL struct IRdSkeletonPropertiesVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdSkeletonProperties_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdSkeletonProperties_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdSkeletonProperties_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdSkeletonProperties_GetShapeTemplateName(This,pszName)	\
    (This)->lpVtbl -> GetShapeTemplateName(This,pszName)

#define IRdSkeletonProperties_SetShapeTemplateName(This,szName)	\
    (This)->lpVtbl -> SetShapeTemplateName(This,szName)

#define IRdSkeletonProperties_SetJointColor(This,dwColor)	\
    (This)->lpVtbl -> SetJointColor(This,dwColor)

#define IRdSkeletonProperties_SetBoneColor(This,dwColor)	\
    (This)->lpVtbl -> SetBoneColor(This,dwColor)

#define IRdSkeletonProperties_SetPosLockColor(This,dwColor)	\
    (This)->lpVtbl -> SetPosLockColor(This,dwColor)

#define IRdSkeletonProperties_SetRotLockColor(This,dwColor)	\
    (This)->lpVtbl -> SetRotLockColor(This,dwColor)

#define IRdSkeletonProperties_SetFullLockColor(This,dwColor)	\
    (This)->lpVtbl -> SetFullLockColor(This,dwColor)

#define IRdSkeletonProperties_GetColorTable(This,pColorTable)	\
    (This)->lpVtbl -> GetColorTable(This,pColorTable)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRdSkeletonProperties_GetShapeTemplateName_Proxy( 
    IRdSkeletonProperties * This,
    /* [out] */ BSTR *pszName);


void __RPC_STUB IRdSkeletonProperties_GetShapeTemplateName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdSkeletonProperties_SetShapeTemplateName_Proxy( 
    IRdSkeletonProperties * This,
    /* [in] */ BSTR szName);


void __RPC_STUB IRdSkeletonProperties_SetShapeTemplateName_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdSkeletonProperties_SetJointColor_Proxy( 
    IRdSkeletonProperties * This,
    /* [in] */ RtUlong dwColor);


void __RPC_STUB IRdSkeletonProperties_SetJointColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdSkeletonProperties_SetBoneColor_Proxy( 
    IRdSkeletonProperties * This,
    /* [in] */ RtUlong dwColor);


void __RPC_STUB IRdSkeletonProperties_SetBoneColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdSkeletonProperties_SetPosLockColor_Proxy( 
    IRdSkeletonProperties * This,
    /* [in] */ RtUlong dwColor);


void __RPC_STUB IRdSkeletonProperties_SetPosLockColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdSkeletonProperties_SetRotLockColor_Proxy( 
    IRdSkeletonProperties * This,
    /* [in] */ RtUlong dwColor);


void __RPC_STUB IRdSkeletonProperties_SetRotLockColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdSkeletonProperties_SetFullLockColor_Proxy( 
    IRdSkeletonProperties * This,
    /* [in] */ RtUlong dwColor);


void __RPC_STUB IRdSkeletonProperties_SetFullLockColor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdSkeletonProperties_GetColorTable_Proxy( 
    IRdSkeletonProperties * This,
    /* [out] */ struct RtSkeletonColorTable *pColorTable);


void __RPC_STUB IRdSkeletonProperties_GetColorTable_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdSkeletonProperties_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1545 */
/* [local] */ 

struct RtSkinPoint
    {
    float x;
    float y;
    float z;
    BYTE matrix_indices[ 4 ];
    unsigned char matrix_weights[ 4 ];
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1545_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1545_v0_0_s_ifspec;

#ifndef __IRdVertexSkinStream_INTERFACE_DEFINED__
#define __IRdVertexSkinStream_INTERFACE_DEFINED__

/* interface IRdVertexSkinStream */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdVertexSkinStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("758E60C4-9BED-4ab0-B5F7-288B5FBDA351")
    IRdVertexSkinStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumVertices( 
            /* [retval][out] */ RtDWORD *dwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumVertices( 
            /* [in] */ RtDWORD dwNumVertices) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Matrix( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD dwWeight,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Matrix( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD dwWeight,
            /* [in] */ RtUlong newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Weight( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD dwWeight,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Weight( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD dwWeight,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_x( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_x( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_y( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_y( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_z( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_z( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdVertexSkinStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdVertexSkinStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdVertexSkinStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdVertexSkinStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdVertexSkinStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdVertexSkinStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdVertexSkinStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdVertexSkinStream * 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 *GetNumVertices )( 
            IRdVertexSkinStream * This,
            /* [retval][out] */ RtDWORD *dwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumVertices )( 
            IRdVertexSkinStream * This,
            /* [in] */ RtDWORD dwNumVertices);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Matrix )( 
            IRdVertexSkinStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD dwWeight,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Matrix )( 
            IRdVertexSkinStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD dwWeight,
            /* [in] */ RtUlong newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Weight )( 
            IRdVertexSkinStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD dwWeight,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Weight )( 
            IRdVertexSkinStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtDWORD dwWeight,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_x )( 
            IRdVertexSkinStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_x )( 
            IRdVertexSkinStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_y )( 
            IRdVertexSkinStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_y )( 
            IRdVertexSkinStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_z )( 
            IRdVertexSkinStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_z )( 
            IRdVertexSkinStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        END_INTERFACE
    } IRdVertexSkinStreamVtbl;

    interface IRdVertexSkinStream
    {
        CONST_VTBL struct IRdVertexSkinStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdVertexSkinStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdVertexSkinStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdVertexSkinStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdVertexSkinStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdVertexSkinStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdVertexSkinStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdVertexSkinStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdVertexSkinStream_GetNumVertices(This,dwNumVertices)	\
    (This)->lpVtbl -> GetNumVertices(This,dwNumVertices)

#define IRdVertexSkinStream_SetNumVertices(This,dwNumVertices)	\
    (This)->lpVtbl -> SetNumVertices(This,dwNumVertices)

#define IRdVertexSkinStream_get_Matrix(This,dwIndex,dwWeight,pVal)	\
    (This)->lpVtbl -> get_Matrix(This,dwIndex,dwWeight,pVal)

#define IRdVertexSkinStream_put_Matrix(This,dwIndex,dwWeight,newVal)	\
    (This)->lpVtbl -> put_Matrix(This,dwIndex,dwWeight,newVal)

#define IRdVertexSkinStream_get_Weight(This,dwIndex,dwWeight,pVal)	\
    (This)->lpVtbl -> get_Weight(This,dwIndex,dwWeight,pVal)

#define IRdVertexSkinStream_put_Weight(This,dwIndex,dwWeight,newVal)	\
    (This)->lpVtbl -> put_Weight(This,dwIndex,dwWeight,newVal)

#define IRdVertexSkinStream_get_x(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_x(This,dwIndex,pVal)

#define IRdVertexSkinStream_put_x(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_x(This,dwIndex,newVal)

#define IRdVertexSkinStream_get_y(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_y(This,dwIndex,pVal)

#define IRdVertexSkinStream_put_y(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_y(This,dwIndex,newVal)

#define IRdVertexSkinStream_get_z(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_z(This,dwIndex,pVal)

#define IRdVertexSkinStream_put_z(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_z(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexSkinStream_GetNumVertices_Proxy( 
    IRdVertexSkinStream * This,
    /* [retval][out] */ RtDWORD *dwNumVertices);


void __RPC_STUB IRdVertexSkinStream_GetNumVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexSkinStream_SetNumVertices_Proxy( 
    IRdVertexSkinStream * This,
    /* [in] */ RtDWORD dwNumVertices);


void __RPC_STUB IRdVertexSkinStream_SetNumVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexSkinStream_get_Matrix_Proxy( 
    IRdVertexSkinStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtDWORD dwWeight,
    /* [retval][out] */ RtUlong *pVal);


void __RPC_STUB IRdVertexSkinStream_get_Matrix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexSkinStream_put_Matrix_Proxy( 
    IRdVertexSkinStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtDWORD dwWeight,
    /* [in] */ RtUlong newVal);


void __RPC_STUB IRdVertexSkinStream_put_Matrix_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexSkinStream_get_Weight_Proxy( 
    IRdVertexSkinStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtDWORD dwWeight,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdVertexSkinStream_get_Weight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexSkinStream_put_Weight_Proxy( 
    IRdVertexSkinStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtDWORD dwWeight,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdVertexSkinStream_put_Weight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexSkinStream_get_x_Proxy( 
    IRdVertexSkinStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdVertexSkinStream_get_x_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexSkinStream_put_x_Proxy( 
    IRdVertexSkinStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdVertexSkinStream_put_x_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexSkinStream_get_y_Proxy( 
    IRdVertexSkinStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdVertexSkinStream_get_y_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexSkinStream_put_y_Proxy( 
    IRdVertexSkinStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdVertexSkinStream_put_y_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexSkinStream_get_z_Proxy( 
    IRdVertexSkinStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdVertexSkinStream_get_z_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexSkinStream_put_z_Proxy( 
    IRdVertexSkinStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdVertexSkinStream_put_z_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdVertexSkinStream_INTERFACE_DEFINED__ */


#ifndef __IRdSkinWeightDirect_INTERFACE_DEFINED__
#define __IRdSkinWeightDirect_INTERFACE_DEFINED__

/* interface IRdSkinWeightDirect */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdSkinWeightDirect;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("EA91E0AA-009C-4327-877F-2CC2F26DD6B7")
    IRdSkinWeightDirect : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumSkinWeights( 
            /* [retval][out] */ RtDWORD *dwNumRecords) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumSkinWeights( 
            /* [in] */ RtDWORD dwNumRecords) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_weight( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_weight( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdSkinWeightDirectVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdSkinWeightDirect * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdSkinWeightDirect * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdSkinWeightDirect * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdSkinWeightDirect * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdSkinWeightDirect * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdSkinWeightDirect * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdSkinWeightDirect * 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 *GetNumSkinWeights )( 
            IRdSkinWeightDirect * This,
            /* [retval][out] */ RtDWORD *dwNumRecords);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumSkinWeights )( 
            IRdSkinWeightDirect * This,
            /* [in] */ RtDWORD dwNumRecords);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_weight )( 
            IRdSkinWeightDirect * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_weight )( 
            IRdSkinWeightDirect * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        END_INTERFACE
    } IRdSkinWeightDirectVtbl;

    interface IRdSkinWeightDirect
    {
        CONST_VTBL struct IRdSkinWeightDirectVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdSkinWeightDirect_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdSkinWeightDirect_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdSkinWeightDirect_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdSkinWeightDirect_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdSkinWeightDirect_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdSkinWeightDirect_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdSkinWeightDirect_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdSkinWeightDirect_GetNumSkinWeights(This,dwNumRecords)	\
    (This)->lpVtbl -> GetNumSkinWeights(This,dwNumRecords)

#define IRdSkinWeightDirect_SetNumSkinWeights(This,dwNumRecords)	\
    (This)->lpVtbl -> SetNumSkinWeights(This,dwNumRecords)

#define IRdSkinWeightDirect_get_weight(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_weight(This,dwIndex,pVal)

#define IRdSkinWeightDirect_put_weight(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_weight(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSkinWeightDirect_GetNumSkinWeights_Proxy( 
    IRdSkinWeightDirect * This,
    /* [retval][out] */ RtDWORD *dwNumRecords);


void __RPC_STUB IRdSkinWeightDirect_GetNumSkinWeights_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSkinWeightDirect_SetNumSkinWeights_Proxy( 
    IRdSkinWeightDirect * This,
    /* [in] */ RtDWORD dwNumRecords);


void __RPC_STUB IRdSkinWeightDirect_SetNumSkinWeights_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdSkinWeightDirect_get_weight_Proxy( 
    IRdSkinWeightDirect * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdSkinWeightDirect_get_weight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdSkinWeightDirect_put_weight_Proxy( 
    IRdSkinWeightDirect * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdSkinWeightDirect_put_weight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdSkinWeightDirect_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1547 */
/* [local] */ 

struct RtSkinIndexedWeight
    {
    RtUlong index;
    RtFloat weight;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1547_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1547_v0_0_s_ifspec;

#ifndef __IRdSkinWeightIndexed_INTERFACE_DEFINED__
#define __IRdSkinWeightIndexed_INTERFACE_DEFINED__

/* interface IRdSkinWeightIndexed */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdSkinWeightIndexed;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B201ADE2-847D-41b0-A573-973351A5B669")
    IRdSkinWeightIndexed : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumRecords( 
            /* [retval][out] */ RtDWORD *dwNumRecords) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumRecords( 
            /* [in] */ RtDWORD dwNumRecords) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_index( 
            /* [in] */ RtDWORD dwRecord,
            /* [retval][out] */ RtUlong *pdwIndex) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_index( 
            /* [in] */ RtDWORD dwRecord,
            /* [in] */ RtUlong dwIndex) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_weight( 
            /* [in] */ RtDWORD dwRecord,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_weight( 
            /* [in] */ RtDWORD dwRecord,
            /* [in] */ RtFloat newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdSkinWeightIndexedVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdSkinWeightIndexed * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdSkinWeightIndexed * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdSkinWeightIndexed * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdSkinWeightIndexed * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdSkinWeightIndexed * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdSkinWeightIndexed * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdSkinWeightIndexed * 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 *GetNumRecords )( 
            IRdSkinWeightIndexed * This,
            /* [retval][out] */ RtDWORD *dwNumRecords);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumRecords )( 
            IRdSkinWeightIndexed * This,
            /* [in] */ RtDWORD dwNumRecords);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_index )( 
            IRdSkinWeightIndexed * This,
            /* [in] */ RtDWORD dwRecord,
            /* [retval][out] */ RtUlong *pdwIndex);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_index )( 
            IRdSkinWeightIndexed * This,
            /* [in] */ RtDWORD dwRecord,
            /* [in] */ RtUlong dwIndex);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_weight )( 
            IRdSkinWeightIndexed * This,
            /* [in] */ RtDWORD dwRecord,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_weight )( 
            IRdSkinWeightIndexed * This,
            /* [in] */ RtDWORD dwRecord,
            /* [in] */ RtFloat newVal);
        
        END_INTERFACE
    } IRdSkinWeightIndexedVtbl;

    interface IRdSkinWeightIndexed
    {
        CONST_VTBL struct IRdSkinWeightIndexedVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdSkinWeightIndexed_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdSkinWeightIndexed_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdSkinWeightIndexed_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdSkinWeightIndexed_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdSkinWeightIndexed_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdSkinWeightIndexed_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdSkinWeightIndexed_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdSkinWeightIndexed_GetNumRecords(This,dwNumRecords)	\
    (This)->lpVtbl -> GetNumRecords(This,dwNumRecords)

#define IRdSkinWeightIndexed_SetNumRecords(This,dwNumRecords)	\
    (This)->lpVtbl -> SetNumRecords(This,dwNumRecords)

#define IRdSkinWeightIndexed_get_index(This,dwRecord,pdwIndex)	\
    (This)->lpVtbl -> get_index(This,dwRecord,pdwIndex)

#define IRdSkinWeightIndexed_put_index(This,dwRecord,dwIndex)	\
    (This)->lpVtbl -> put_index(This,dwRecord,dwIndex)

#define IRdSkinWeightIndexed_get_weight(This,dwRecord,pVal)	\
    (This)->lpVtbl -> get_weight(This,dwRecord,pVal)

#define IRdSkinWeightIndexed_put_weight(This,dwRecord,newVal)	\
    (This)->lpVtbl -> put_weight(This,dwRecord,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSkinWeightIndexed_GetNumRecords_Proxy( 
    IRdSkinWeightIndexed * This,
    /* [retval][out] */ RtDWORD *dwNumRecords);


void __RPC_STUB IRdSkinWeightIndexed_GetNumRecords_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdSkinWeightIndexed_SetNumRecords_Proxy( 
    IRdSkinWeightIndexed * This,
    /* [in] */ RtDWORD dwNumRecords);


void __RPC_STUB IRdSkinWeightIndexed_SetNumRecords_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdSkinWeightIndexed_get_index_Proxy( 
    IRdSkinWeightIndexed * This,
    /* [in] */ RtDWORD dwRecord,
    /* [retval][out] */ RtUlong *pdwIndex);


void __RPC_STUB IRdSkinWeightIndexed_get_index_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdSkinWeightIndexed_put_index_Proxy( 
    IRdSkinWeightIndexed * This,
    /* [in] */ RtDWORD dwRecord,
    /* [in] */ RtUlong dwIndex);


void __RPC_STUB IRdSkinWeightIndexed_put_index_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdSkinWeightIndexed_get_weight_Proxy( 
    IRdSkinWeightIndexed * This,
    /* [in] */ RtDWORD dwRecord,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdSkinWeightIndexed_get_weight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdSkinWeightIndexed_put_weight_Proxy( 
    IRdSkinWeightIndexed * This,
    /* [in] */ RtDWORD dwRecord,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdSkinWeightIndexed_put_weight_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdSkinWeightIndexed_INTERFACE_DEFINED__ */


#ifndef __IRdProceduralSkinVertexStream_INTERFACE_DEFINED__
#define __IRdProceduralSkinVertexStream_INTERFACE_DEFINED__

/* interface IRdProceduralSkinVertexStream */
/* [unique][helpstring][object][uuid] */ 


EXTERN_C const IID IID_IRdProceduralSkinVertexStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("55CB5EF6-F38A-48c2-8A91-F4C9CC0170FC")
    IRdProceduralSkinVertexStream : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetProperties( 
            /* [in] */ IRdVertexSkinStream *spVertices,
            /* [in] */ IRdSkinMatrixStream *spMatrices) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetSkinMatrices( 
            /* [in] */ IRdSkinMatrixStream **spMatrices) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetVertexSkinStream( 
            /* [in] */ IRdVertexSkinStream **spVertices) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdProceduralSkinVertexStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdProceduralSkinVertexStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdProceduralSkinVertexStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdProceduralSkinVertexStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetProperties )( 
            IRdProceduralSkinVertexStream * This,
            /* [in] */ IRdVertexSkinStream *spVertices,
            /* [in] */ IRdSkinMatrixStream *spMatrices);
        
        HRESULT ( STDMETHODCALLTYPE *GetSkinMatrices )( 
            IRdProceduralSkinVertexStream * This,
            /* [in] */ IRdSkinMatrixStream **spMatrices);
        
        HRESULT ( STDMETHODCALLTYPE *GetVertexSkinStream )( 
            IRdProceduralSkinVertexStream * This,
            /* [in] */ IRdVertexSkinStream **spVertices);
        
        END_INTERFACE
    } IRdProceduralSkinVertexStreamVtbl;

    interface IRdProceduralSkinVertexStream
    {
        CONST_VTBL struct IRdProceduralSkinVertexStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdProceduralSkinVertexStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdProceduralSkinVertexStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdProceduralSkinVertexStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdProceduralSkinVertexStream_SetProperties(This,spVertices,spMatrices)	\
    (This)->lpVtbl -> SetProperties(This,spVertices,spMatrices)

#define IRdProceduralSkinVertexStream_GetSkinMatrices(This,spMatrices)	\
    (This)->lpVtbl -> GetSkinMatrices(This,spMatrices)

#define IRdProceduralSkinVertexStream_GetVertexSkinStream(This,spVertices)	\
    (This)->lpVtbl -> GetVertexSkinStream(This,spVertices)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRdProceduralSkinVertexStream_SetProperties_Proxy( 
    IRdProceduralSkinVertexStream * This,
    /* [in] */ IRdVertexSkinStream *spVertices,
    /* [in] */ IRdSkinMatrixStream *spMatrices);


void __RPC_STUB IRdProceduralSkinVertexStream_SetProperties_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdProceduralSkinVertexStream_GetSkinMatrices_Proxy( 
    IRdProceduralSkinVertexStream * This,
    /* [in] */ IRdSkinMatrixStream **spMatrices);


void __RPC_STUB IRdProceduralSkinVertexStream_GetSkinMatrices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdProceduralSkinVertexStream_GetVertexSkinStream_Proxy( 
    IRdProceduralSkinVertexStream * This,
    /* [in] */ IRdVertexSkinStream **spVertices);


void __RPC_STUB IRdProceduralSkinVertexStream_GetVertexSkinStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdProceduralSkinVertexStream_INTERFACE_DEFINED__ */


#ifndef __IRdVertexSkinVerticesCache_INTERFACE_DEFINED__
#define __IRdVertexSkinVerticesCache_INTERFACE_DEFINED__

/* interface IRdVertexSkinVerticesCache */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdVertexSkinVerticesCache;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("6CDAD507-9D80-44cb-9F51-7E60B220B749")
    IRdVertexSkinVerticesCache : public IDispatch
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Calculate( 
            /* [in] */ IRdProceduralSkinVertexStream *pStream) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdVertexSkinVerticesCacheVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdVertexSkinVerticesCache * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdVertexSkinVerticesCache * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdVertexSkinVerticesCache * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdVertexSkinVerticesCache * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdVertexSkinVerticesCache * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdVertexSkinVerticesCache * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdVertexSkinVerticesCache * 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);
        
        HRESULT ( STDMETHODCALLTYPE *Calculate )( 
            IRdVertexSkinVerticesCache * This,
            /* [in] */ IRdProceduralSkinVertexStream *pStream);
        
        END_INTERFACE
    } IRdVertexSkinVerticesCacheVtbl;

    interface IRdVertexSkinVerticesCache
    {
        CONST_VTBL struct IRdVertexSkinVerticesCacheVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdVertexSkinVerticesCache_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdVertexSkinVerticesCache_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdVertexSkinVerticesCache_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdVertexSkinVerticesCache_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdVertexSkinVerticesCache_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdVertexSkinVerticesCache_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdVertexSkinVerticesCache_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdVertexSkinVerticesCache_Calculate(This,pStream)	\
    (This)->lpVtbl -> Calculate(This,pStream)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRdVertexSkinVerticesCache_Calculate_Proxy( 
    IRdVertexSkinVerticesCache * This,
    /* [in] */ IRdProceduralSkinVertexStream *pStream);


void __RPC_STUB IRdVertexSkinVerticesCache_Calculate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdVertexSkinVerticesCache_INTERFACE_DEFINED__ */


#ifndef __IRdProceduralSkinNormalsStream_INTERFACE_DEFINED__
#define __IRdProceduralSkinNormalsStream_INTERFACE_DEFINED__

/* interface IRdProceduralSkinNormalsStream */
/* [unique][helpstring][object][uuid] */ 


EXTERN_C const IID IID_IRdProceduralSkinNormalsStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("45BA1364-7F88-4b39-A66F-B497092FA09A")
    IRdProceduralSkinNormalsStream : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetProperties( 
            /* [in] */ IRdTriangleStream *pTriangles,
            /* [in] */ IRdVertexStream *pVertices,
            /* [in] */ IRdTriangleNormalsStream *pNormalsIndices,
            /* [in] */ IRdNormalsSkinStream *pNormalsData) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetVertexStream( 
            /* [in] */ IRdVertexStream **ppVertices) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetTrianglesStream( 
            /* [in] */ IRdTriangleStream **ppTriangles) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNormalsIndices( 
            /* [in] */ IRdTriangleNormalsStream **ppIndices) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetNormalsData( 
            /* [in] */ IRdNormalsSkinStream **ppData) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdProceduralSkinNormalsStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdProceduralSkinNormalsStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdProceduralSkinNormalsStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdProceduralSkinNormalsStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetProperties )( 
            IRdProceduralSkinNormalsStream * This,
            /* [in] */ IRdTriangleStream *pTriangles,
            /* [in] */ IRdVertexStream *pVertices,
            /* [in] */ IRdTriangleNormalsStream *pNormalsIndices,
            /* [in] */ IRdNormalsSkinStream *pNormalsData);
        
        HRESULT ( STDMETHODCALLTYPE *GetVertexStream )( 
            IRdProceduralSkinNormalsStream * This,
            /* [in] */ IRdVertexStream **ppVertices);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrianglesStream )( 
            IRdProceduralSkinNormalsStream * This,
            /* [in] */ IRdTriangleStream **ppTriangles);
        
        HRESULT ( STDMETHODCALLTYPE *GetNormalsIndices )( 
            IRdProceduralSkinNormalsStream * This,
            /* [in] */ IRdTriangleNormalsStream **ppIndices);
        
        HRESULT ( STDMETHODCALLTYPE *GetNormalsData )( 
            IRdProceduralSkinNormalsStream * This,
            /* [in] */ IRdNormalsSkinStream **ppData);
        
        END_INTERFACE
    } IRdProceduralSkinNormalsStreamVtbl;

    interface IRdProceduralSkinNormalsStream
    {
        CONST_VTBL struct IRdProceduralSkinNormalsStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdProceduralSkinNormalsStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdProceduralSkinNormalsStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdProceduralSkinNormalsStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdProceduralSkinNormalsStream_SetProperties(This,pTriangles,pVertices,pNormalsIndices,pNormalsData)	\
    (This)->lpVtbl -> SetProperties(This,pTriangles,pVertices,pNormalsIndices,pNormalsData)

#define IRdProceduralSkinNormalsStream_GetVertexStream(This,ppVertices)	\
    (This)->lpVtbl -> GetVertexStream(This,ppVertices)

#define IRdProceduralSkinNormalsStream_GetTrianglesStream(This,ppTriangles)	\
    (This)->lpVtbl -> GetTrianglesStream(This,ppTriangles)

#define IRdProceduralSkinNormalsStream_GetNormalsIndices(This,ppIndices)	\
    (This)->lpVtbl -> GetNormalsIndices(This,ppIndices)

#define IRdProceduralSkinNormalsStream_GetNormalsData(This,ppData)	\
    (This)->lpVtbl -> GetNormalsData(This,ppData)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRdProceduralSkinNormalsStream_SetProperties_Proxy( 
    IRdProceduralSkinNormalsStream * This,
    /* [in] */ IRdTriangleStream *pTriangles,
    /* [in] */ IRdVertexStream *pVertices,
    /* [in] */ IRdTriangleNormalsStream *pNormalsIndices,
    /* [in] */ IRdNormalsSkinStream *pNormalsData);


void __RPC_STUB IRdProceduralSkinNormalsStream_SetProperties_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdProceduralSkinNormalsStream_GetVertexStream_Proxy( 
    IRdProceduralSkinNormalsStream * This,
    /* [in] */ IRdVertexStream **ppVertices);


void __RPC_STUB IRdProceduralSkinNormalsStream_GetVertexStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdProceduralSkinNormalsStream_GetTrianglesStream_Proxy( 
    IRdProceduralSkinNormalsStream * This,
    /* [in] */ IRdTriangleStream **ppTriangles);


void __RPC_STUB IRdProceduralSkinNormalsStream_GetTrianglesStream_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdProceduralSkinNormalsStream_GetNormalsIndices_Proxy( 
    IRdProceduralSkinNormalsStream * This,
    /* [in] */ IRdTriangleNormalsStream **ppIndices);


void __RPC_STUB IRdProceduralSkinNormalsStream_GetNormalsIndices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdProceduralSkinNormalsStream_GetNormalsData_Proxy( 
    IRdProceduralSkinNormalsStream * This,
    /* [in] */ IRdNormalsSkinStream **ppData);


void __RPC_STUB IRdProceduralSkinNormalsStream_GetNormalsData_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdProceduralSkinNormalsStream_INTERFACE_DEFINED__ */


#ifndef __IRdVertexSkinNormalsCache_INTERFACE_DEFINED__
#define __IRdVertexSkinNormalsCache_INTERFACE_DEFINED__

/* interface IRdVertexSkinNormalsCache */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdVertexSkinNormalsCache;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E4D73C0A-0C2C-485c-BF00-3ABBBEBA20C0")
    IRdVertexSkinNormalsCache : public IDispatch
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Calculate( 
            /* [in] */ IRdProceduralSkinNormalsStream *pStream) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdVertexSkinNormalsCacheVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdVertexSkinNormalsCache * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdVertexSkinNormalsCache * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdVertexSkinNormalsCache * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdVertexSkinNormalsCache * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdVertexSkinNormalsCache * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdVertexSkinNormalsCache * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdVertexSkinNormalsCache * 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);
        
        HRESULT ( STDMETHODCALLTYPE *Calculate )( 
            IRdVertexSkinNormalsCache * This,
            /* [in] */ IRdProceduralSkinNormalsStream *pStream);
        
        END_INTERFACE
    } IRdVertexSkinNormalsCacheVtbl;

    interface IRdVertexSkinNormalsCache
    {
        CONST_VTBL struct IRdVertexSkinNormalsCacheVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdVertexSkinNormalsCache_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdVertexSkinNormalsCache_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdVertexSkinNormalsCache_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdVertexSkinNormalsCache_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdVertexSkinNormalsCache_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdVertexSkinNormalsCache_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdVertexSkinNormalsCache_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdVertexSkinNormalsCache_Calculate(This,pStream)	\
    (This)->lpVtbl -> Calculate(This,pStream)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRdVertexSkinNormalsCache_Calculate_Proxy( 
    IRdVertexSkinNormalsCache * This,
    /* [in] */ IRdProceduralSkinNormalsStream *pStream);


void __RPC_STUB IRdVertexSkinNormalsCache_Calculate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdVertexSkinNormalsCache_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1552 */
/* [local] */ 

struct RtVertexDisplacement
    {
    RtUlong vertex_index;
    RtVector3f displacement;
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1552_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1552_v0_0_s_ifspec;

#ifndef __IRdVertexMorphStream_INTERFACE_DEFINED__
#define __IRdVertexMorphStream_INTERFACE_DEFINED__

/* interface IRdVertexMorphStream */
/* [object][unique][helpstring][dual][uuid] */ 


EXTERN_C const IID IID_IRdVertexMorphStream;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5FF72A53-FADB-4803-B1E7-83C55CFF691F")
    IRdVertexMorphStream : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetNumVertices( 
            /* [retval][out] */ RtDWORD *dwNumVertices) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetNumVertices( 
            /* [in] */ RtDWORD dwNumVertices) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_x( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_x( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_y( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_y( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_z( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_z( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_index( 
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_index( 
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdVertexMorphStreamVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdVertexMorphStream * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdVertexMorphStream * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdVertexMorphStream * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdVertexMorphStream * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdVertexMorphStream * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdVertexMorphStream * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdVertexMorphStream * 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 *GetNumVertices )( 
            IRdVertexMorphStream * This,
            /* [retval][out] */ RtDWORD *dwNumVertices);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetNumVertices )( 
            IRdVertexMorphStream * This,
            /* [in] */ RtDWORD dwNumVertices);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_x )( 
            IRdVertexMorphStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_x )( 
            IRdVertexMorphStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_y )( 
            IRdVertexMorphStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_y )( 
            IRdVertexMorphStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_z )( 
            IRdVertexMorphStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_z )( 
            IRdVertexMorphStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_index )( 
            IRdVertexMorphStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [retval][out] */ RtUlong *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_index )( 
            IRdVertexMorphStream * This,
            /* [in] */ RtDWORD dwIndex,
            /* [in] */ RtUlong newVal);
        
        END_INTERFACE
    } IRdVertexMorphStreamVtbl;

    interface IRdVertexMorphStream
    {
        CONST_VTBL struct IRdVertexMorphStreamVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdVertexMorphStream_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdVertexMorphStream_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdVertexMorphStream_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdVertexMorphStream_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdVertexMorphStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdVertexMorphStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdVertexMorphStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#define IRdVertexMorphStream_GetNumVertices(This,dwNumVertices)	\
    (This)->lpVtbl -> GetNumVertices(This,dwNumVertices)

#define IRdVertexMorphStream_SetNumVertices(This,dwNumVertices)	\
    (This)->lpVtbl -> SetNumVertices(This,dwNumVertices)

#define IRdVertexMorphStream_get_x(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_x(This,dwIndex,pVal)

#define IRdVertexMorphStream_put_x(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_x(This,dwIndex,newVal)

#define IRdVertexMorphStream_get_y(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_y(This,dwIndex,pVal)

#define IRdVertexMorphStream_put_y(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_y(This,dwIndex,newVal)

#define IRdVertexMorphStream_get_z(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_z(This,dwIndex,pVal)

#define IRdVertexMorphStream_put_z(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_z(This,dwIndex,newVal)

#define IRdVertexMorphStream_get_index(This,dwIndex,pVal)	\
    (This)->lpVtbl -> get_index(This,dwIndex,pVal)

#define IRdVertexMorphStream_put_index(This,dwIndex,newVal)	\
    (This)->lpVtbl -> put_index(This,dwIndex,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexMorphStream_GetNumVertices_Proxy( 
    IRdVertexMorphStream * This,
    /* [retval][out] */ RtDWORD *dwNumVertices);


void __RPC_STUB IRdVertexMorphStream_GetNumVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexMorphStream_SetNumVertices_Proxy( 
    IRdVertexMorphStream * This,
    /* [in] */ RtDWORD dwNumVertices);


void __RPC_STUB IRdVertexMorphStream_SetNumVertices_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexMorphStream_get_x_Proxy( 
    IRdVertexMorphStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdVertexMorphStream_get_x_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexMorphStream_put_x_Proxy( 
    IRdVertexMorphStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdVertexMorphStream_put_x_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexMorphStream_get_y_Proxy( 
    IRdVertexMorphStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdVertexMorphStream_get_y_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexMorphStream_put_y_Proxy( 
    IRdVertexMorphStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdVertexMorphStream_put_y_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexMorphStream_get_z_Proxy( 
    IRdVertexMorphStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtFloat *pVal);


void __RPC_STUB IRdVertexMorphStream_get_z_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexMorphStream_put_z_Proxy( 
    IRdVertexMorphStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtFloat newVal);


void __RPC_STUB IRdVertexMorphStream_put_z_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertexMorphStream_get_index_Proxy( 
    IRdVertexMorphStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [retval][out] */ RtUlong *pVal);


void __RPC_STUB IRdVertexMorphStream_get_index_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexMorphStream_put_index_Proxy( 
    IRdVertexMorphStream * This,
    /* [in] */ RtDWORD dwIndex,
    /* [in] */ RtUlong newVal);


void __RPC_STUB IRdVertexMorphStream_put_index_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdVertexMorphStream_INTERFACE_DEFINED__ */


#ifndef __IRdReferencedMaterialInfo_INTERFACE_DEFINED__
#define __IRdReferencedMaterialInfo_INTERFACE_DEFINED__

/* interface IRdReferencedMaterialInfo */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdReferencedMaterialInfo;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("088360A1-2DDB-4780-8867-B74229434402")
    IRdReferencedMaterialInfo : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetMaterialId( 
            /* [in] */ GUID *pgId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetMaterialId( 
            /* [in] */ GUID gId) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetMaterialInstancingMode( 
            /* [in] */ enum ReMaterialInstancingMode *pdwIm) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetMaterialInstancingMode( 
            /* [in] */ enum ReMaterialInstancingMode dwIm) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdReferencedMaterialInfoVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdReferencedMaterialInfo * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdReferencedMaterialInfo * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdReferencedMaterialInfo * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetMaterialId )( 
            IRdReferencedMaterialInfo * This,
            /* [in] */ GUID *pgId);
        
        HRESULT ( STDMETHODCALLTYPE *SetMaterialId )( 
            IRdReferencedMaterialInfo * This,
            /* [in] */ GUID gId);
        
        HRESULT ( STDMETHODCALLTYPE *GetMaterialInstancingMode )( 
            IRdReferencedMaterialInfo * This,
            /* [in] */ enum ReMaterialInstancingMode *pdwIm);
        
        HRESULT ( STDMETHODCALLTYPE *SetMaterialInstancingMode )( 
            IRdReferencedMaterialInfo * This,
            /* [in] */ enum ReMaterialInstancingMode dwIm);
        
        END_INTERFACE
    } IRdReferencedMaterialInfoVtbl;

    interface IRdReferencedMaterialInfo
    {
        CONST_VTBL struct IRdReferencedMaterialInfoVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdReferencedMaterialInfo_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdReferencedMaterialInfo_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdReferencedMaterialInfo_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdReferencedMaterialInfo_GetMaterialId(This,pgId)	\
    (This)->lpVtbl -> GetMaterialId(This,pgId)

#define IRdReferencedMaterialInfo_SetMaterialId(This,gId)	\
    (This)->lpVtbl -> SetMaterialId(This,gId)

#define IRdReferencedMaterialInfo_GetMaterialInstancingMode(This,pdwIm)	\
    (This)->lpVtbl -> GetMaterialInstancingMode(This,pdwIm)

#define IRdReferencedMaterialInfo_SetMaterialInstancingMode(This,dwIm)	\
    (This)->lpVtbl -> SetMaterialInstancingMode(This,dwIm)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRdReferencedMaterialInfo_GetMaterialId_Proxy( 
    IRdReferencedMaterialInfo * This,
    /* [in] */ GUID *pgId);


void __RPC_STUB IRdReferencedMaterialInfo_GetMaterialId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdReferencedMaterialInfo_SetMaterialId_Proxy( 
    IRdReferencedMaterialInfo * This,
    /* [in] */ GUID gId);


void __RPC_STUB IRdReferencedMaterialInfo_SetMaterialId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdReferencedMaterialInfo_GetMaterialInstancingMode_Proxy( 
    IRdReferencedMaterialInfo * This,
    /* [in] */ enum ReMaterialInstancingMode *pdwIm);


void __RPC_STUB IRdReferencedMaterialInfo_GetMaterialInstancingMode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdReferencedMaterialInfo_SetMaterialInstancingMode_Proxy( 
    IRdReferencedMaterialInfo * This,
    /* [in] */ enum ReMaterialInstancingMode dwIm);


void __RPC_STUB IRdReferencedMaterialInfo_SetMaterialInstancingMode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdReferencedMaterialInfo_INTERFACE_DEFINED__ */


#ifndef __IRnCylindricalUV_INTERFACE_DEFINED__
#define __IRnCylindricalUV_INTERFACE_DEFINED__

/* interface IRnCylindricalUV */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnCylindricalUV;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("C1F235EF-B94A-4D91-8F32-FE32D8575977")
    IRnCylindricalUV : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnCylindricalUVVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnCylindricalUV * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnCylindricalUV * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnCylindricalUV * This);
        
        END_INTERFACE
    } IRnCylindricalUVVtbl;

    interface IRnCylindricalUV
    {
        CONST_VTBL struct IRnCylindricalUVVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnCylindricalUV_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnCylindricalUV_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnCylindricalUV_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnCylindricalUV_INTERFACE_DEFINED__ */


#ifndef __IRnPlanarUV_INTERFACE_DEFINED__
#define __IRnPlanarUV_INTERFACE_DEFINED__

/* interface IRnPlanarUV */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnPlanarUV;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D85902C0-F65D-4799-A591-9294E0CB8DD8")
    IRnPlanarUV : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnPlanarUVVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnPlanarUV * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnPlanarUV * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnPlanarUV * This);
        
        END_INTERFACE
    } IRnPlanarUVVtbl;

    interface IRnPlanarUV
    {
        CONST_VTBL struct IRnPlanarUVVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnPlanarUV_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnPlanarUV_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnPlanarUV_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnPlanarUV_INTERFACE_DEFINED__ */


#ifndef __IRnPivot_INTERFACE_DEFINED__
#define __IRnPivot_INTERFACE_DEFINED__

/* interface IRnPivot */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnPivot;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("324C22C6-CD8B-4F15-A9C6-B240354EBF14")
    IRnPivot : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnPivotVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnPivot * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnPivot * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnPivot * This);
        
        END_INTERFACE
    } IRnPivotVtbl;

    interface IRnPivot
    {
        CONST_VTBL struct IRnPivotVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnPivot_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnPivot_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnPivot_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnPivot_INTERFACE_DEFINED__ */


#ifndef __IRnGridSnapping_INTERFACE_DEFINED__
#define __IRnGridSnapping_INTERFACE_DEFINED__

/* interface IRnGridSnapping */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnGridSnapping;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("841AF684-D79B-4943-9E6D-C925776ACA0F")
    IRnGridSnapping : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnGridSnappingVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnGridSnapping * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnGridSnapping * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnGridSnapping * This);
        
        END_INTERFACE
    } IRnGridSnappingVtbl;

    interface IRnGridSnapping
    {
        CONST_VTBL struct IRnGridSnappingVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnGridSnapping_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnGridSnapping_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnGridSnapping_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnGridSnapping_INTERFACE_DEFINED__ */


#ifndef __IRnAxisLock_INTERFACE_DEFINED__
#define __IRnAxisLock_INTERFACE_DEFINED__

/* interface IRnAxisLock */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnAxisLock;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("82744A8E-BE15-4BAC-8DAF-E717FDD69900")
    IRnAxisLock : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnAxisLockVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnAxisLock * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnAxisLock * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnAxisLock * This);
        
        END_INTERFACE
    } IRnAxisLockVtbl;

    interface IRnAxisLock
    {
        CONST_VTBL struct IRnAxisLockVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnAxisLock_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnAxisLock_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnAxisLock_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnAxisLock_INTERFACE_DEFINED__ */


#ifndef __IRnBoneTransform_INTERFACE_DEFINED__
#define __IRnBoneTransform_INTERFACE_DEFINED__

/* interface IRnBoneTransform */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnBoneTransform;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("24147C4D-30D0-44f5-A754-E6B278F8CF69")
    IRnBoneTransform : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnBoneTransformVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnBoneTransform * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnBoneTransform * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnBoneTransform * This);
        
        END_INTERFACE
    } IRnBoneTransformVtbl;

    interface IRnBoneTransform
    {
        CONST_VTBL struct IRnBoneTransformVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnBoneTransform_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnBoneTransform_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnBoneTransform_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnBoneTransform_INTERFACE_DEFINED__ */


#ifndef __IRdIkStyle_INTERFACE_DEFINED__
#define __IRdIkStyle_INTERFACE_DEFINED__

/* interface IRdIkStyle */
/* [unique][helpstring][dual][uuid][object] */ 


EXTERN_C const IID IID_IRdIkStyle;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("68A529CC-96D8-468b-80B7-FA5FB2D59941")
    IRdIkStyle : public IDispatch
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRdIkStyleVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdIkStyle * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdIkStyle * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdIkStyle * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdIkStyle * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdIkStyle * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdIkStyle * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdIkStyle * 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);
        
        END_INTERFACE
    } IRdIkStyleVtbl;

    interface IRdIkStyle
    {
        CONST_VTBL struct IRdIkStyleVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdIkStyle_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdIkStyle_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdIkStyle_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdIkStyle_GetTypeInfoCount(This,pctinfo)	\
    (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo)

#define IRdIkStyle_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo)

#define IRdIkStyle_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)

#define IRdIkStyle_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRdIkStyle_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1561 */
/* [local] */ 


enum RtHairCacheStrategy
    {	HCS_Neutral	= 0,
	HCS_Adding	= 1,
	HCS_Removal	= 2,
	HRC_FDW	= -1
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1561_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1561_v0_0_s_ifspec;

#ifndef __IRnHair_INTERFACE_DEFINED__
#define __IRnHair_INTERFACE_DEFINED__

/* interface IRnHair */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnHair;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("3AD973BD-6705-48c2-8EC4-0EAD53318DB2")
    IRnHair : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE EnableCache( 
            /* [in] */ RtBool enable) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetCacheStrategy( 
            /* [in] */ RtDWORD strategy) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnHairVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnHair * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnHair * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnHair * This);
        
        HRESULT ( STDMETHODCALLTYPE *EnableCache )( 
            IRnHair * This,
            /* [in] */ RtBool enable);
        
        HRESULT ( STDMETHODCALLTYPE *SetCacheStrategy )( 
            IRnHair * This,
            /* [in] */ RtDWORD strategy);
        
        END_INTERFACE
    } IRnHairVtbl;

    interface IRnHair
    {
        CONST_VTBL struct IRnHairVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnHair_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnHair_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnHair_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnHair_EnableCache(This,enable)	\
    (This)->lpVtbl -> EnableCache(This,enable)

#define IRnHair_SetCacheStrategy(This,strategy)	\
    (This)->lpVtbl -> SetCacheStrategy(This,strategy)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRnHair_EnableCache_Proxy( 
    IRnHair * This,
    /* [in] */ RtBool enable);


void __RPC_STUB IRnHair_EnableCache_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRnHair_SetCacheStrategy_Proxy( 
    IRnHair * This,
    /* [in] */ RtDWORD strategy);


void __RPC_STUB IRnHair_SetCacheStrategy_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRnHair_INTERFACE_DEFINED__ */


#ifndef __IRnVertexMorphs_INTERFACE_DEFINED__
#define __IRnVertexMorphs_INTERFACE_DEFINED__

/* interface IRnVertexMorphs */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnVertexMorphs;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("593206C5-067C-43a2-B3CE-9ACD075D3F17")
    IRnVertexMorphs : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetConBlockInvalidationStatus( 
            /* [in] */ RtBool bEnabled) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetActiveMorph( 
            /* [in] */ RtUlong dwMorphId,
            /* [in] */ IRcUndoRedoGroup *pUndoRedo) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE CreateMorphsList( 
            /* [in] */ IRdStrEnum **ppStr) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnVertexMorphsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnVertexMorphs * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnVertexMorphs * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnVertexMorphs * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetConBlockInvalidationStatus )( 
            IRnVertexMorphs * This,
            /* [in] */ RtBool bEnabled);
        
        HRESULT ( STDMETHODCALLTYPE *SetActiveMorph )( 
            IRnVertexMorphs * This,
            /* [in] */ RtUlong dwMorphId,
            /* [in] */ IRcUndoRedoGroup *pUndoRedo);
        
        HRESULT ( STDMETHODCALLTYPE *CreateMorphsList )( 
            IRnVertexMorphs * This,
            /* [in] */ IRdStrEnum **ppStr);
        
        END_INTERFACE
    } IRnVertexMorphsVtbl;

    interface IRnVertexMorphs
    {
        CONST_VTBL struct IRnVertexMorphsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnVertexMorphs_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnVertexMorphs_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnVertexMorphs_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnVertexMorphs_SetConBlockInvalidationStatus(This,bEnabled)	\
    (This)->lpVtbl -> SetConBlockInvalidationStatus(This,bEnabled)

#define IRnVertexMorphs_SetActiveMorph(This,dwMorphId,pUndoRedo)	\
    (This)->lpVtbl -> SetActiveMorph(This,dwMorphId,pUndoRedo)

#define IRnVertexMorphs_CreateMorphsList(This,ppStr)	\
    (This)->lpVtbl -> CreateMorphsList(This,ppStr)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRnVertexMorphs_SetConBlockInvalidationStatus_Proxy( 
    IRnVertexMorphs * This,
    /* [in] */ RtBool bEnabled);


void __RPC_STUB IRnVertexMorphs_SetConBlockInvalidationStatus_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRnVertexMorphs_SetActiveMorph_Proxy( 
    IRnVertexMorphs * This,
    /* [in] */ RtUlong dwMorphId,
    /* [in] */ IRcUndoRedoGroup *pUndoRedo);


void __RPC_STUB IRnVertexMorphs_SetActiveMorph_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRnVertexMorphs_CreateMorphsList_Proxy( 
    IRnVertexMorphs * This,
    /* [in] */ IRdStrEnum **ppStr);


void __RPC_STUB IRnVertexMorphs_CreateMorphsList_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRnVertexMorphs_INTERFACE_DEFINED__ */


#ifndef __IRsMeshEditorUiAgent_INTERFACE_DEFINED__
#define __IRsMeshEditorUiAgent_INTERFACE_DEFINED__

/* interface IRsMeshEditorUiAgent */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsMeshEditorUiAgent;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9A2F93D2-BDB7-4867-8030-9B7C220C1F57")
    IRsMeshEditorUiAgent : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetUiState( 
            /* [in] */ LPWSTR szEditorState,
            /* [in] */ RtBool bEnabled) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetUiState( 
            /* [in] */ LPWSTR szEditorState,
            /* [in] */ RtBool *bEnabled) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsMeshEditorUiAgentVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsMeshEditorUiAgent * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsMeshEditorUiAgent * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsMeshEditorUiAgent * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetUiState )( 
            IRsMeshEditorUiAgent * This,
            /* [in] */ LPWSTR szEditorState,
            /* [in] */ RtBool bEnabled);
        
        HRESULT ( STDMETHODCALLTYPE *GetUiState )( 
            IRsMeshEditorUiAgent * This,
            /* [in] */ LPWSTR szEditorState,
            /* [in] */ RtBool *bEnabled);
        
        END_INTERFACE
    } IRsMeshEditorUiAgentVtbl;

    interface IRsMeshEditorUiAgent
    {
        CONST_VTBL struct IRsMeshEditorUiAgentVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsMeshEditorUiAgent_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsMeshEditorUiAgent_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsMeshEditorUiAgent_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsMeshEditorUiAgent_SetUiState(This,szEditorState,bEnabled)	\
    (This)->lpVtbl -> SetUiState(This,szEditorState,bEnabled)

#define IRsMeshEditorUiAgent_GetUiState(This,szEditorState,bEnabled)	\
    (This)->lpVtbl -> GetUiState(This,szEditorState,bEnabled)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsMeshEditorUiAgent_SetUiState_Proxy( 
    IRsMeshEditorUiAgent * This,
    /* [in] */ LPWSTR szEditorState,
    /* [in] */ RtBool bEnabled);


void __RPC_STUB IRsMeshEditorUiAgent_SetUiState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsMeshEditorUiAgent_GetUiState_Proxy( 
    IRsMeshEditorUiAgent * This,
    /* [in] */ LPWSTR szEditorState,
    /* [in] */ RtBool *bEnabled);


void __RPC_STUB IRsMeshEditorUiAgent_GetUiState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsMeshEditorUiAgent_INTERFACE_DEFINED__ */


#ifndef __IRsMeshModifierNotify_INTERFACE_DEFINED__
#define __IRsMeshModifierNotify_INTERFACE_DEFINED__

/* interface IRsMeshModifierNotify */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsMeshModifierNotify;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9A2F7B0C-927E-4faf-AB95-0FE99EA72C7F")
    IRsMeshModifierNotify : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE OnMeshEditorActivate( 
            /* [in] */ IRsEditor *pMeshEditor,
            /* [in] */ IRcUndoRedoGroup *pUndoRedo) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnMeshEditorActivated( 
            /* [in] */ IRsEditor *pMeshEditor,
            /* [in] */ IRcUndoRedoGroup *pUndoRedo) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnMeshEditorDeactivate( 
            /* [in] */ IRsEditor *pMeshEditor,
            /* [in] */ IRcUndoRedoGroup *pUndoRedo) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnMeshEditorDeactivated( 
            /* [in] */ IRsEditor *pMeshEditor,
            /* [in] */ IRcUndoRedoGroup *pUndoRedo) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnModifiedNodeSelected( 
            /* [in] */ IRsMeshEditorUiAgent *pMeshEditorUiAgent) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsMeshModifierNotifyVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsMeshModifierNotify * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsMeshModifierNotify * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsMeshModifierNotify * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnMeshEditorActivate )( 
            IRsMeshModifierNotify * This,
            /* [in] */ IRsEditor *pMeshEditor,
            /* [in] */ IRcUndoRedoGroup *pUndoRedo);
        
        HRESULT ( STDMETHODCALLTYPE *OnMeshEditorActivated )( 
            IRsMeshModifierNotify * This,
            /* [in] */ IRsEditor *pMeshEditor,
            /* [in] */ IRcUndoRedoGroup *pUndoRedo);
        
        HRESULT ( STDMETHODCALLTYPE *OnMeshEditorDeactivate )( 
            IRsMeshModifierNotify * This,
            /* [in] */ IRsEditor *pMeshEditor,
            /* [in] */ IRcUndoRedoGroup *pUndoRedo);
        
        HRESULT ( STDMETHODCALLTYPE *OnMeshEditorDeactivated )( 
            IRsMeshModifierNotify * This,
            /* [in] */ IRsEditor *pMeshEditor,
            /* [in] */ IRcUndoRedoGroup *pUndoRedo);
        
        HRESULT ( STDMETHODCALLTYPE *OnModifiedNodeSelected )( 
            IRsMeshModifierNotify * This,
            /* [in] */ IRsMeshEditorUiAgent *pMeshEditorUiAgent);
        
        END_INTERFACE
    } IRsMeshModifierNotifyVtbl;

    interface IRsMeshModifierNotify
    {
        CONST_VTBL struct IRsMeshModifierNotifyVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsMeshModifierNotify_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsMeshModifierNotify_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsMeshModifierNotify_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsMeshModifierNotify_OnMeshEditorActivate(This,pMeshEditor,pUndoRedo)	\
    (This)->lpVtbl -> OnMeshEditorActivate(This,pMeshEditor,pUndoRedo)

#define IRsMeshModifierNotify_OnMeshEditorActivated(This,pMeshEditor,pUndoRedo)	\
    (This)->lpVtbl -> OnMeshEditorActivated(This,pMeshEditor,pUndoRedo)

#define IRsMeshModifierNotify_OnMeshEditorDeactivate(This,pMeshEditor,pUndoRedo)	\
    (This)->lpVtbl -> OnMeshEditorDeactivate(This,pMeshEditor,pUndoRedo)

#define IRsMeshModifierNotify_OnMeshEditorDeactivated(This,pMeshEditor,pUndoRedo)	\
    (This)->lpVtbl -> OnMeshEditorDeactivated(This,pMeshEditor,pUndoRedo)

#define IRsMeshModifierNotify_OnModifiedNodeSelected(This,pMeshEditorUiAgent)	\
    (This)->lpVtbl -> OnModifiedNodeSelected(This,pMeshEditorUiAgent)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsMeshModifierNotify_OnMeshEditorActivate_Proxy( 
    IRsMeshModifierNotify * This,
    /* [in] */ IRsEditor *pMeshEditor,
    /* [in] */ IRcUndoRedoGroup *pUndoRedo);


void __RPC_STUB IRsMeshModifierNotify_OnMeshEditorActivate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsMeshModifierNotify_OnMeshEditorActivated_Proxy( 
    IRsMeshModifierNotify * This,
    /* [in] */ IRsEditor *pMeshEditor,
    /* [in] */ IRcUndoRedoGroup *pUndoRedo);


void __RPC_STUB IRsMeshModifierNotify_OnMeshEditorActivated_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsMeshModifierNotify_OnMeshEditorDeactivate_Proxy( 
    IRsMeshModifierNotify * This,
    /* [in] */ IRsEditor *pMeshEditor,
    /* [in] */ IRcUndoRedoGroup *pUndoRedo);


void __RPC_STUB IRsMeshModifierNotify_OnMeshEditorDeactivate_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsMeshModifierNotify_OnMeshEditorDeactivated_Proxy( 
    IRsMeshModifierNotify * This,
    /* [in] */ IRsEditor *pMeshEditor,
    /* [in] */ IRcUndoRedoGroup *pUndoRedo);


void __RPC_STUB IRsMeshModifierNotify_OnMeshEditorDeactivated_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsMeshModifierNotify_OnModifiedNodeSelected_Proxy( 
    IRsMeshModifierNotify * This,
    /* [in] */ IRsMeshEditorUiAgent *pMeshEditorUiAgent);


void __RPC_STUB IRsMeshModifierNotify_OnModifiedNodeSelected_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsMeshModifierNotify_INTERFACE_DEFINED__ */


#ifndef __IRsVertexMorpher_INTERFACE_DEFINED__
#define __IRsVertexMorpher_INTERFACE_DEFINED__

/* interface IRsVertexMorpher */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsVertexMorpher;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("22FB59E9-E02E-4e2b-8749-7E99A7CACA19")
    IRsVertexMorpher : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsVertexMorpherVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsVertexMorpher * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsVertexMorpher * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsVertexMorpher * This);
        
        END_INTERFACE
    } IRsVertexMorpherVtbl;

    interface IRsVertexMorpher
    {
        CONST_VTBL struct IRsVertexMorpherVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsVertexMorpher_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsVertexMorpher_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsVertexMorpher_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsVertexMorpher_INTERFACE_DEFINED__ */


#ifndef __IRsGeometryIdentificationNotify_INTERFACE_DEFINED__
#define __IRsGeometryIdentificationNotify_INTERFACE_DEFINED__

/* interface IRsGeometryIdentificationNotify */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsGeometryIdentificationNotify;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("2FFE1F81-93EA-40a1-92A4-7A6A68152B69")
    IRsGeometryIdentificationNotify : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE OnGeometryIdentificationStreamsRemove( 
            /* [in] */ IRcUndoRedoGroup *pUndoRedo) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnGeometryIdentificationStreamsAdded( 
            /* [in] */ IRcUndoRedoGroup *pUndoRedo) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsGeometryIdentificationNotifyVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsGeometryIdentificationNotify * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsGeometryIdentificationNotify * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsGeometryIdentificationNotify * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnGeometryIdentificationStreamsRemove )( 
            IRsGeometryIdentificationNotify * This,
            /* [in] */ IRcUndoRedoGroup *pUndoRedo);
        
        HRESULT ( STDMETHODCALLTYPE *OnGeometryIdentificationStreamsAdded )( 
            IRsGeometryIdentificationNotify * This,
            /* [in] */ IRcUndoRedoGroup *pUndoRedo);
        
        END_INTERFACE
    } IRsGeometryIdentificationNotifyVtbl;

    interface IRsGeometryIdentificationNotify
    {
        CONST_VTBL struct IRsGeometryIdentificationNotifyVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsGeometryIdentificationNotify_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsGeometryIdentificationNotify_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsGeometryIdentificationNotify_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsGeometryIdentificationNotify_OnGeometryIdentificationStreamsRemove(This,pUndoRedo)	\
    (This)->lpVtbl -> OnGeometryIdentificationStreamsRemove(This,pUndoRedo)

#define IRsGeometryIdentificationNotify_OnGeometryIdentificationStreamsAdded(This,pUndoRedo)	\
    (This)->lpVtbl -> OnGeometryIdentificationStreamsAdded(This,pUndoRedo)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsGeometryIdentificationNotify_OnGeometryIdentificationStreamsRemove_Proxy( 
    IRsGeometryIdentificationNotify * This,
    /* [in] */ IRcUndoRedoGroup *pUndoRedo);


void __RPC_STUB IRsGeometryIdentificationNotify_OnGeometryIdentificationStreamsRemove_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsGeometryIdentificationNotify_OnGeometryIdentificationStreamsAdded_Proxy( 
    IRsGeometryIdentificationNotify * This,
    /* [in] */ IRcUndoRedoGroup *pUndoRedo);


void __RPC_STUB IRsGeometryIdentificationNotify_OnGeometryIdentificationStreamsAdded_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsGeometryIdentificationNotify_INTERFACE_DEFINED__ */


#ifndef __IRnVertexMorpher_INTERFACE_DEFINED__
#define __IRnVertexMorpher_INTERFACE_DEFINED__

/* interface IRnVertexMorpher */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnVertexMorpher;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("396A45F9-1272-499f-8091-E99CDACDC631")
    IRnVertexMorpher : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnVertexMorpherVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnVertexMorpher * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnVertexMorpher * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnVertexMorpher * This);
        
        END_INTERFACE
    } IRnVertexMorpherVtbl;

    interface IRnVertexMorpher
    {
        CONST_VTBL struct IRnVertexMorpherVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnVertexMorpher_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnVertexMorpher_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnVertexMorpher_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnVertexMorpher_INTERFACE_DEFINED__ */


#ifndef __IRnMaterialEditorHandler_INTERFACE_DEFINED__
#define __IRnMaterialEditorHandler_INTERFACE_DEFINED__

/* interface IRnMaterialEditorHandler */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnMaterialEditorHandler;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("708E2CCF-5ABD-48aa-BDAB-21318A2B62E0")
    IRnMaterialEditorHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE ForceSwitchMaterialEditor( 
            /* [in] */ IRcUndoRedoGroup *spUndoRedo,
            /* [in] */ BSTR szDesiredEditor) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnMaterialEditorHandlerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnMaterialEditorHandler * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnMaterialEditorHandler * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnMaterialEditorHandler * This);
        
        HRESULT ( STDMETHODCALLTYPE *ForceSwitchMaterialEditor )( 
            IRnMaterialEditorHandler * This,
            /* [in] */ IRcUndoRedoGroup *spUndoRedo,
            /* [in] */ BSTR szDesiredEditor);
        
        END_INTERFACE
    } IRnMaterialEditorHandlerVtbl;

    interface IRnMaterialEditorHandler
    {
        CONST_VTBL struct IRnMaterialEditorHandlerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnMaterialEditorHandler_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnMaterialEditorHandler_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnMaterialEditorHandler_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRnMaterialEditorHandler_ForceSwitchMaterialEditor(This,spUndoRedo,szDesiredEditor)	\
    (This)->lpVtbl -> ForceSwitchMaterialEditor(This,spUndoRedo,szDesiredEditor)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRnMaterialEditorHandler_ForceSwitchMaterialEditor_Proxy( 
    IRnMaterialEditorHandler * This,
    /* [in] */ IRcUndoRedoGroup *spUndoRedo,
    /* [in] */ BSTR szDesiredEditor);


void __RPC_STUB IRnMaterialEditorHandler_ForceSwitchMaterialEditor_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRnMaterialEditorHandler_INTERFACE_DEFINED__ */


#ifndef __IRnOfflineRenderers_INTERFACE_DEFINED__
#define __IRnOfflineRenderers_INTERFACE_DEFINED__

/* interface IRnOfflineRenderers */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnOfflineRenderers;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("497C10F4-BA76-4009-BDFF-5A6A22668767")
    IRnOfflineRenderers : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnOfflineRenderersVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnOfflineRenderers * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnOfflineRenderers * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnOfflineRenderers * This);
        
        END_INTERFACE
    } IRnOfflineRenderersVtbl;

    interface IRnOfflineRenderers
    {
        CONST_VTBL struct IRnOfflineRenderersVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnOfflineRenderers_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnOfflineRenderers_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnOfflineRenderers_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnOfflineRenderers_INTERFACE_DEFINED__ */


#ifndef __IRnMatListInspect_INTERFACE_DEFINED__
#define __IRnMatListInspect_INTERFACE_DEFINED__

/* interface IRnMatListInspect */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnMatListInspect;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("CB532A90-56BF-45c7-A454-1BCA3C3026D6")
    IRnMatListInspect : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnMatListInspectVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnMatListInspect * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnMatListInspect * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnMatListInspect * This);
        
        END_INTERFACE
    } IRnMatListInspectVtbl;

    interface IRnMatListInspect
    {
        CONST_VTBL struct IRnMatListInspectVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnMatListInspect_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnMatListInspect_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnMatListInspect_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnMatListInspect_INTERFACE_DEFINED__ */


#ifndef __IRnExpandOutMatrix_INTERFACE_DEFINED__
#define __IRnExpandOutMatrix_INTERFACE_DEFINED__

/* interface IRnExpandOutMatrix */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnExpandOutMatrix;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("393BC85A-DD4C-442F-9659-664FDF3356E4")
    IRnExpandOutMatrix : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnExpandOutMatrixVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnExpandOutMatrix * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnExpandOutMatrix * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnExpandOutMatrix * This);
        
        END_INTERFACE
    } IRnExpandOutMatrixVtbl;

    interface IRnExpandOutMatrix
    {
        CONST_VTBL struct IRnExpandOutMatrixVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnExpandOutMatrix_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnExpandOutMatrix_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnExpandOutMatrix_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnExpandOutMatrix_INTERFACE_DEFINED__ */


#ifndef __IRsDialogSettingsStore_INTERFACE_DEFINED__
#define __IRsDialogSettingsStore_INTERFACE_DEFINED__

/* interface IRsDialogSettingsStore */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsDialogSettingsStore;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("20277D9A-777F-40d7-A684-43B97353DDAF")
    IRsDialogSettingsStore : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetResponse( 
            /* [in] */ GUID gId,
            /* [retval][out] */ RtUlong *pdwResponse) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetResponse( 
            /* [in] */ GUID gId,
            /* [in] */ RtUlong dwResponse) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsDialogSettingsStoreVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsDialogSettingsStore * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsDialogSettingsStore * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsDialogSettingsStore * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetResponse )( 
            IRsDialogSettingsStore * This,
            /* [in] */ GUID gId,
            /* [retval][out] */ RtUlong *pdwResponse);
        
        HRESULT ( STDMETHODCALLTYPE *SetResponse )( 
            IRsDialogSettingsStore * This,
            /* [in] */ GUID gId,
            /* [in] */ RtUlong dwResponse);
        
        END_INTERFACE
    } IRsDialogSettingsStoreVtbl;

    interface IRsDialogSettingsStore
    {
        CONST_VTBL struct IRsDialogSettingsStoreVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsDialogSettingsStore_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsDialogSettingsStore_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsDialogSettingsStore_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsDialogSettingsStore_GetResponse(This,gId,pdwResponse)	\
    (This)->lpVtbl -> GetResponse(This,gId,pdwResponse)

#define IRsDialogSettingsStore_SetResponse(This,gId,dwResponse)	\
    (This)->lpVtbl -> SetResponse(This,gId,dwResponse)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsDialogSettingsStore_GetResponse_Proxy( 
    IRsDialogSettingsStore * This,
    /* [in] */ GUID gId,
    /* [retval][out] */ RtUlong *pdwResponse);


void __RPC_STUB IRsDialogSettingsStore_GetResponse_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsDialogSettingsStore_SetResponse_Proxy( 
    IRsDialogSettingsStore * This,
    /* [in] */ GUID gId,
    /* [in] */ RtUlong dwResponse);


void __RPC_STUB IRsDialogSettingsStore_SetResponse_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsDialogSettingsStore_INTERFACE_DEFINED__ */


#ifndef __IRnDialogSettings_INTERFACE_DEFINED__
#define __IRnDialogSettings_INTERFACE_DEFINED__

/* interface IRnDialogSettings */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnDialogSettings;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("814BC317-B7D4-42f7-A4A1-79A795B63464")
    IRnDialogSettings : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnDialogSettingsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnDialogSettings * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnDialogSettings * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnDialogSettings * This);
        
        END_INTERFACE
    } IRnDialogSettingsVtbl;

    interface IRnDialogSettings
    {
        CONST_VTBL struct IRnDialogSettingsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnDialogSettings_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnDialogSettings_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnDialogSettings_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnDialogSettings_INTERFACE_DEFINED__ */


#ifndef __IRnReferencedMaterials_INTERFACE_DEFINED__
#define __IRnReferencedMaterials_INTERFACE_DEFINED__

/* interface IRnReferencedMaterials */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnReferencedMaterials;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("AE4973F7-AD2D-452e-AEF9-532C230EED14")
    IRnReferencedMaterials : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnReferencedMaterialsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnReferencedMaterials * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnReferencedMaterials * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnReferencedMaterials * This);
        
        END_INTERFACE
    } IRnReferencedMaterialsVtbl;

    interface IRnReferencedMaterials
    {
        CONST_VTBL struct IRnReferencedMaterialsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnReferencedMaterials_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnReferencedMaterials_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnReferencedMaterials_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnReferencedMaterials_INTERFACE_DEFINED__ */


#ifndef __IRnHairPreferences_INTERFACE_DEFINED__
#define __IRnHairPreferences_INTERFACE_DEFINED__

/* interface IRnHairPreferences */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnHairPreferences;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("ADF7F20A-E13C-44fb-875F-FA798D51A6AE")
    IRnHairPreferences : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnHairPreferencesVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnHairPreferences * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnHairPreferences * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnHairPreferences * This);
        
        END_INTERFACE
    } IRnHairPreferencesVtbl;

    interface IRnHairPreferences
    {
        CONST_VTBL struct IRnHairPreferencesVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnHairPreferences_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnHairPreferences_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnHairPreferences_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnHairPreferences_INTERFACE_DEFINED__ */


#ifndef __IRnHairWigMapper_INTERFACE_DEFINED__
#define __IRnHairWigMapper_INTERFACE_DEFINED__

/* interface IRnHairWigMapper */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRnHairWigMapper;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("98B5C79F-0AD3-4116-803C-58A8FB4B0620")
    IRnHairWigMapper : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRnHairWigMapperVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnHairWigMapper * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnHairWigMapper * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnHairWigMapper * This);
        
        END_INTERFACE
    } IRnHairWigMapperVtbl;

    interface IRnHairWigMapper
    {
        CONST_VTBL struct IRnHairWigMapperVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRnHairWigMapper_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRnHairWigMapper_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRnHairWigMapper_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnHairWigMapper_INTERFACE_DEFINED__ */


#ifndef __IRdPositionSnapEventNotify_INTERFACE_DEFINED__
#define __IRdPositionSnapEventNotify_INTERFACE_DEFINED__

/* interface IRdPositionSnapEventNotify */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRdPositionSnapEventNotify;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A976FE5D-575A-4790-AFCA-5525EBFE8C8C")
    IRdPositionSnapEventNotify : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE OnObjectRemoved( 
            /* [in] */ IRsObject *pObj) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnObjectAdded( 
            /* [in] */ IRsObject *pObj) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdPositionSnapEventNotifyVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdPositionSnapEventNotify * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdPositionSnapEventNotify * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdPositionSnapEventNotify * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnObjectRemoved )( 
            IRdPositionSnapEventNotify * This,
            /* [in] */ IRsObject *pObj);
        
        HRESULT ( STDMETHODCALLTYPE *OnObjectAdded )( 
            IRdPositionSnapEventNotify * This,
            /* [in] */ IRsObject *pObj);
        
        END_INTERFACE
    } IRdPositionSnapEventNotifyVtbl;

    interface IRdPositionSnapEventNotify
    {
        CONST_VTBL struct IRdPositionSnapEventNotifyVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRdPositionSnapEventNotify_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRdPositionSnapEventNotify_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRdPositionSnapEventNotify_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRdPositionSnapEventNotify_OnObjectRemoved(This,pObj)	\
    (This)->lpVtbl -> OnObjectRemoved(This,pObj)

#define IRdPositionSnapEventNotify_OnObjectAdded(This,pObj)	\
    (This)->lpVtbl -> OnObjectAdded(This,pObj)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRdPositionSnapEventNotify_OnObjectRemoved_Proxy( 
    IRdPositionSnapEventNotify * This,
    /* [in] */ IRsObject *pObj);


void __RPC_STUB IRdPositionSnapEventNotify_OnObjectRemoved_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRdPositionSnapEventNotify_OnObjectAdded_Proxy( 
    IRdPositionSnapEventNotify * This,
    /* [in] */ IRsObject *pObj);


void __RPC_STUB IRdPositionSnapEventNotify_OnObjectAdded_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRdPositionSnapEventNotify_INTERFACE_DEFINED__ */


#ifndef __IRsBoneDependentObject_INTERFACE_DEFINED__
#define __IRsBoneDependentObject_INTERFACE_DEFINED__

/* interface IRsBoneDependentObject */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsBoneDependentObject;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E3F64E31-E37B-49ef-9AEB-60D9427C1A21")
    IRsBoneDependentObject : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ReplaceBoneId( 
            /* [in] */ GUID gId1,
            /* [in] */ GUID gId2) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsBoneDependentObjectVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsBoneDependentObject * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsBoneDependentObject * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsBoneDependentObject * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ReplaceBoneId )( 
            IRsBoneDependentObject * This,
            /* [in] */ GUID gId1,
            /* [in] */ GUID gId2);
        
        END_INTERFACE
    } IRsBoneDependentObjectVtbl;

    interface IRsBoneDependentObject
    {
        CONST_VTBL struct IRsBoneDependentObjectVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsBoneDependentObject_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsBoneDependentObject_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsBoneDependentObject_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsBoneDependentObject_ReplaceBoneId(This,gId1,gId2)	\
    (This)->lpVtbl -> ReplaceBoneId(This,gId1,gId2)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsBoneDependentObject_ReplaceBoneId_Proxy( 
    IRsBoneDependentObject * This,
    /* [in] */ GUID gId1,
    /* [in] */ GUID gId2);


void __RPC_STUB IRsBoneDependentObject_ReplaceBoneId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsBoneDependentObject_INTERFACE_DEFINED__ */


#ifndef __IRsCustomSkeletonNode_INTERFACE_DEFINED__
#define __IRsCustomSkeletonNode_INTERFACE_DEFINED__

/* interface IRsCustomSkeletonNode */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsCustomSkeletonNode;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("32803BEF-6016-42f2-81A5-D0703455D186")
    IRsCustomSkeletonNode : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

    typedef struct IRsCustomSkeletonNodeVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsCustomSkeletonNode * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsCustomSkeletonNode * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsCustomSkeletonNode * This);
        
        END_INTERFACE
    } IRsCustomSkeletonNodeVtbl;

    interface IRsCustomSkeletonNode
    {
        CONST_VTBL struct IRsCustomSkeletonNodeVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsCustomSkeletonNode_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsCustomSkeletonNode_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsCustomSkeletonNode_Release(This)	\
    (This)->lpVtbl -> Release(This)


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsCustomSkeletonNode_INTERFACE_DEFINED__ */


/* interface __MIDL_itf__Space3D_1580 */
/* [local] */ 


enum ReIkSolverFlags
    {	RIKSF_NONE	= 0,
	RIKSF_INVERT_RLOCK_CHAIN	= 1,
	RIKSF_PRESERVE_BONE_ORIENTATION	= 2,
	RIKSF_HARD_HANDLE	= 4,
	RIKSF_LOCK_CHILDREN	= 8,
	RIKSF_NO_ROTATION	= 16,
	RIKSF_NO_MOVEMENT	= 32,
	RIKSF_EDIT_MODE	= 128,
	RIKSF_JOINT_RELATIVE	= 256,
	RIKSF_NO_ROOT_UPDATE	= 512,
	RIKSF_MAKE_DWORD	= 2147483647
    } ;


extern RPC_IF_HANDLE __MIDL_itf__Space3D_1580_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf__Space3D_1580_v0_0_s_ifspec;

#ifndef __IRsIkHandle_INTERFACE_DEFINED__
#define __IRsIkHandle_INTERFACE_DEFINED__

/* interface IRsIkHandle */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsIkHandle;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5DBDF0B2-83FA-429e-A6DC-CEEE77903E2A")
    IRsIkHandle : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetIkParameters( 
            /* [out] */ IRsNode **ppBone,
            /* [out] */ IRdIkLocks **ppLocks,
            /* [out] */ IRdIkStyle **ppStype,
            /* [out] */ enum ReIkSolverFlags *pdwFlags,
            /* [out] */ RtPoint *ptMovementAnchor,
            /* [out] */ RtPoint *ptMovementTarget,
            /* [out] */ RtVector3f *pRotationAnchor,
            /* [out] */ RtVector3f *pRotationTarget,
            /* [out] */ RtFloat *pfQuality) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetSolverError( 
            /* [in] */ RtVector3f *pError) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetInvalidationBlocking( 
            /* [in] */ RtBool bBlock) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSolverError( 
            /* [out] */ RtVector3f *pError) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsIkHandleVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsIkHandle * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsIkHandle * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsIkHandle * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetIkParameters )( 
            IRsIkHandle * This,
            /* [out] */ IRsNode **ppBone,
            /* [out] */ IRdIkLocks **ppLocks,
            /* [out] */ IRdIkStyle **ppStype,
            /* [out] */ enum ReIkSolverFlags *pdwFlags,
            /* [out] */ RtPoint *ptMovementAnchor,
            /* [out] */ RtPoint *ptMovementTarget,
            /* [out] */ RtVector3f *pRotationAnchor,
            /* [out] */ RtVector3f *pRotationTarget,
            /* [out] */ RtFloat *pfQuality);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetSolverError )( 
            IRsIkHandle * This,
            /* [in] */ RtVector3f *pError);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetInvalidationBlocking )( 
            IRsIkHandle * This,
            /* [in] */ RtBool bBlock);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSolverError )( 
            IRsIkHandle * This,
            /* [out] */ RtVector3f *pError);
        
        END_INTERFACE
    } IRsIkHandleVtbl;

    interface IRsIkHandle
    {
        CONST_VTBL struct IRsIkHandleVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsIkHandle_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsIkHandle_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsIkHandle_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsIkHandle_GetIkParameters(This,ppBone,ppLocks,ppStype,pdwFlags,ptMovementAnchor,ptMovementTarget,pRotationAnchor,pRotationTarget,pfQuality)	\
    (This)->lpVtbl -> GetIkParameters(This,ppBone,ppLocks,ppStype,pdwFlags,ptMovementAnchor,ptMovementTarget,pRotationAnchor,pRotationTarget,pfQuality)

#define IRsIkHandle_SetSolverError(This,pError)	\
    (This)->lpVtbl -> SetSolverError(This,pError)

#define IRsIkHandle_SetInvalidationBlocking(This,bBlock)	\
    (This)->lpVtbl -> SetInvalidationBlocking(This,bBlock)

#define IRsIkHandle_GetSolverError(This,pError)	\
    (This)->lpVtbl -> GetSolverError(This,pError)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsIkHandle_GetIkParameters_Proxy( 
    IRsIkHandle * This,
    /* [out] */ IRsNode **ppBone,
    /* [out] */ IRdIkLocks **ppLocks,
    /* [out] */ IRdIkStyle **ppStype,
    /* [out] */ enum ReIkSolverFlags *pdwFlags,
    /* [out] */ RtPoint *ptMovementAnchor,
    /* [out] */ RtPoint *ptMovementTarget,
    /* [out] */ RtVector3f *pRotationAnchor,
    /* [out] */ RtVector3f *pRotationTarget,
    /* [out] */ RtFloat *pfQuality);


void __RPC_STUB IRsIkHandle_GetIkParameters_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsIkHandle_SetSolverError_Proxy( 
    IRsIkHandle * This,
    /* [in] */ RtVector3f *pError);


void __RPC_STUB IRsIkHandle_SetSolverError_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsIkHandle_SetInvalidationBlocking_Proxy( 
    IRsIkHandle * This,
    /* [in] */ RtBool bBlock);


void __RPC_STUB IRsIkHandle_SetInvalidationBlocking_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsIkHandle_GetSolverError_Proxy( 
    IRsIkHandle * This,
    /* [out] */ RtVector3f *pError);


void __RPC_STUB IRsIkHandle_GetSolverError_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsIkHandle_INTERFACE_DEFINED__ */


#ifndef __IRsUnknownBone_INTERFACE_DEFINED__
#define __IRsUnknownBone_INTERFACE_DEFINED__

/* interface IRsUnknownBone */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsUnknownBone;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("7D8F2E13-F8A0-4d76-8D2C-13ED51914F7C")
    IRsUnknownBone : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InvalidateJoints( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UpdateJoints( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAdjacentJointsCount( 
            /* [retval][out] */ RtUlong *pCount) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAdjacentJoint( 
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ IRsNode **pNode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetRootJoint( 
            /* [retval][out] */ IRsNode **pNode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetTransform( 
            /* [in] */ IRdMatrixf *pTransform) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSkinTransform( 
            /* [in] */ RtMatrixf *pTransform) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetSkinTransform( 
            /* [in] */ RtMatrixf *pTransform) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InvalidateFkPose( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSkeletonNode( 
            /* [retval][out] */ IRsNode **ppSkeletonNode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBoneId( 
            /* [retval][out] */ GUID *pBoneId) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetBoneId( 
            /* [in] */ GUID *pBoneId) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsUnknownBoneVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsUnknownBone * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsUnknownBone * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsUnknownBone * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InvalidateJoints )( 
            IRsUnknownBone * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UpdateJoints )( 
            IRsUnknownBone * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAdjacentJointsCount )( 
            IRsUnknownBone * This,
            /* [retval][out] */ RtUlong *pCount);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAdjacentJoint )( 
            IRsUnknownBone * This,
            /* [in] */ RtUlong dwIndex,
            /* [retval][out] */ IRsNode **pNode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetRootJoint )( 
            IRsUnknownBone * This,
            /* [retval][out] */ IRsNode **pNode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetTransform )( 
            IRsUnknownBone * This,
            /* [in] */ IRdMatrixf *pTransform);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSkinTransform )( 
            IRsUnknownBone * This,
            /* [in] */ RtMatrixf *pTransform);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetSkinTransform )( 
            IRsUnknownBone * This,
            /* [in] */ RtMatrixf *pTransform);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InvalidateFkPose )( 
            IRsUnknownBone * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSkeletonNode )( 
            IRsUnknownBone * This,
            /* [retval][out] */ IRsNode **ppSkeletonNode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBoneId )( 
            IRsUnknownBone * This,
            /* [retval][out] */ GUID *pBoneId);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetBoneId )( 
            IRsUnknownBone * This,
            /* [in] */ GUID *pBoneId);
        
        END_INTERFACE
    } IRsUnknownBoneVtbl;

    interface IRsUnknownBone
    {
        CONST_VTBL struct IRsUnknownBoneVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsUnknownBone_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsUnknownBone_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsUnknownBone_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsUnknownBone_InvalidateJoints(This)	\
    (This)->lpVtbl -> InvalidateJoints(This)

#define IRsUnknownBone_UpdateJoints(This)	\
    (This)->lpVtbl -> UpdateJoints(This)

#define IRsUnknownBone_GetAdjacentJointsCount(This,pCount)	\
    (This)->lpVtbl -> GetAdjacentJointsCount(This,pCount)

#define IRsUnknownBone_GetAdjacentJoint(This,dwIndex,pNode)	\
    (This)->lpVtbl -> GetAdjacentJoint(This,dwIndex,pNode)

#define IRsUnknownBone_GetRootJoint(This,pNode)	\
    (This)->lpVtbl -> GetRootJoint(This,pNode)

#define IRsUnknownBone_SetTransform(This,pTransform)	\
    (This)->lpVtbl -> SetTransform(This,pTransform)

#define IRsUnknownBone_GetSkinTransform(This,pTransform)	\
    (This)->lpVtbl -> GetSkinTransform(This,pTransform)

#define IRsUnknownBone_SetSkinTransform(This,pTransform)	\
    (This)->lpVtbl -> SetSkinTransform(This,pTransform)

#define IRsUnknownBone_InvalidateFkPose(This)	\
    (This)->lpVtbl -> InvalidateFkPose(This)

#define IRsUnknownBone_GetSkeletonNode(This,ppSkeletonNode)	\
    (This)->lpVtbl -> GetSkeletonNode(This,ppSkeletonNode)

#define IRsUnknownBone_GetBoneId(This,pBoneId)	\
    (This)->lpVtbl -> GetBoneId(This,pBoneId)

#define IRsUnknownBone_SetBoneId(This,pBoneId)	\
    (This)->lpVtbl -> SetBoneId(This,pBoneId)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownBone_InvalidateJoints_Proxy( 
    IRsUnknownBone * This);


void __RPC_STUB IRsUnknownBone_InvalidateJoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownBone_UpdateJoints_Proxy( 
    IRsUnknownBone * This);


void __RPC_STUB IRsUnknownBone_UpdateJoints_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownBone_GetAdjacentJointsCount_Proxy( 
    IRsUnknownBone * This,
    /* [retval][out] */ RtUlong *pCount);


void __RPC_STUB IRsUnknownBone_GetAdjacentJointsCount_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownBone_GetAdjacentJoint_Proxy( 
    IRsUnknownBone * This,
    /* [in] */ RtUlong dwIndex,
    /* [retval][out] */ IRsNode **pNode);


void __RPC_STUB IRsUnknownBone_GetAdjacentJoint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownBone_GetRootJoint_Proxy( 
    IRsUnknownBone * This,
    /* [retval][out] */ IRsNode **pNode);


void __RPC_STUB IRsUnknownBone_GetRootJoint_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownBone_SetTransform_Proxy( 
    IRsUnknownBone * This,
    /* [in] */ IRdMatrixf *pTransform);


void __RPC_STUB IRsUnknownBone_SetTransform_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownBone_GetSkinTransform_Proxy( 
    IRsUnknownBone * This,
    /* [in] */ RtMatrixf *pTransform);


void __RPC_STUB IRsUnknownBone_GetSkinTransform_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownBone_SetSkinTransform_Proxy( 
    IRsUnknownBone * This,
    /* [in] */ RtMatrixf *pTransform);


void __RPC_STUB IRsUnknownBone_SetSkinTransform_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownBone_InvalidateFkPose_Proxy( 
    IRsUnknownBone * This);


void __RPC_STUB IRsUnknownBone_InvalidateFkPose_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownBone_GetSkeletonNode_Proxy( 
    IRsUnknownBone * This,
    /* [retval][out] */ IRsNode **ppSkeletonNode);


void __RPC_STUB IRsUnknownBone_GetSkeletonNode_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownBone_GetBoneId_Proxy( 
    IRsUnknownBone * This,
    /* [retval][out] */ GUID *pBoneId);


void __RPC_STUB IRsUnknownBone_GetBoneId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownBone_SetBoneId_Proxy( 
    IRsUnknownBone * This,
    /* [in] */ GUID *pBoneId);


void __RPC_STUB IRsUnknownBone_SetBoneId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsUnknownBone_INTERFACE_DEFINED__ */


#ifndef __IRsUnknownIkLock_INTERFACE_DEFINED__
#define __IRsUnknownIkLock_INTERFACE_DEFINED__

/* interface IRsUnknownIkLock */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsUnknownIkLock;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("66E7D1BC-95C2-494e-AB81-DE215FB35AFE")
    IRsUnknownIkLock : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetSolverError( 
            /* [out] */ RtMatrixf *pError) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetSolverError( 
            /* [in] */ RtMatrixf *pError) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetInvalidationBlocking( 
            /* [in] */ RtBool bBlock) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsUnknownIkLockVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsUnknownIkLock * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsUnknownIkLock * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsUnknownIkLock * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetSolverError )( 
            IRsUnknownIkLock * This,
            /* [out] */ RtMatrixf *pError);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetSolverError )( 
            IRsUnknownIkLock * This,
            /* [in] */ RtMatrixf *pError);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetInvalidationBlocking )( 
            IRsUnknownIkLock * This,
            /* [in] */ RtBool bBlock);
        
        END_INTERFACE
    } IRsUnknownIkLockVtbl;

    interface IRsUnknownIkLock
    {
        CONST_VTBL struct IRsUnknownIkLockVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsUnknownIkLock_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsUnknownIkLock_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsUnknownIkLock_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsUnknownIkLock_GetSolverError(This,pError)	\
    (This)->lpVtbl -> GetSolverError(This,pError)

#define IRsUnknownIkLock_SetSolverError(This,pError)	\
    (This)->lpVtbl -> SetSolverError(This,pError)

#define IRsUnknownIkLock_SetInvalidationBlocking(This,bBlock)	\
    (This)->lpVtbl -> SetInvalidationBlocking(This,bBlock)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownIkLock_GetSolverError_Proxy( 
    IRsUnknownIkLock * This,
    /* [out] */ RtMatrixf *pError);


void __RPC_STUB IRsUnknownIkLock_GetSolverError_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownIkLock_SetSolverError_Proxy( 
    IRsUnknownIkLock * This,
    /* [in] */ RtMatrixf *pError);


void __RPC_STUB IRsUnknownIkLock_SetSolverError_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownIkLock_SetInvalidationBlocking_Proxy( 
    IRsUnknownIkLock * This,
    /* [in] */ RtBool bBlock);


void __RPC_STUB IRsUnknownIkLock_SetInvalidationBlocking_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsUnknownIkLock_INTERFACE_DEFINED__ */


#ifndef __IRsUnknownJoint_INTERFACE_DEFINED__
#define __IRsUnknownJoint_INTERFACE_DEFINED__

/* interface IRsUnknownJoint */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsUnknownJoint;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("11CB8368-A0A1-4b47-9A80-3565AF32A7B6")
    IRsUnknownJoint : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBone1( 
            /* [retval][out] */ IRsNode **pBoneNode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetBone2( 
            /* [retval][out] */ IRsNode **pBoneNode) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InvalidateBones( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetJointPosition( 
            /* [retval][out] */ RtPoint *pPosition) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetJointTransform( 
            /* [in] */ IRdMatrixf *pTransform) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetReferencePosition( 
            /* [retval][out] */ RtPoint *pTransform) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetReferencePosition( 
            /* [in] */ RtPoint *pTransform) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE InvalidateFkPose( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetJointId( 
            /* [in] */ GUID *pgId) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetJointId( 
            /* [in] */ GUID *pgId) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsUnknownJointVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsUnknownJoint * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsUnknownJoint * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsUnknownJoint * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBone1 )( 
            IRsUnknownJoint * This,
            /* [retval][out] */ IRsNode **pBoneNode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetBone2 )( 
            IRsUnknownJoint * This,
            /* [retval][out] */ IRsNode **pBoneNode);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InvalidateBones )( 
            IRsUnknownJoint * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetJointPosition )( 
            IRsUnknownJoint * This,
            /* [retval][out] */ RtPoint *pPosition);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetJointTransform )( 
            IRsUnknownJoint * This,
            /* [in] */ IRdMatrixf *pTransform);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetReferencePosition )( 
            IRsUnknownJoint * This,
            /* [retval][out] */ RtPoint *pTransform);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetReferencePosition )( 
            IRsUnknownJoint * This,
            /* [in] */ RtPoint *pTransform);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *InvalidateFkPose )( 
            IRsUnknownJoint * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetJointId )( 
            IRsUnknownJoint * This,
            /* [in] */ GUID *pgId);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetJointId )( 
            IRsUnknownJoint * This,
            /* [in] */ GUID *pgId);
        
        END_INTERFACE
    } IRsUnknownJointVtbl;

    interface IRsUnknownJoint
    {
        CONST_VTBL struct IRsUnknownJointVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsUnknownJoint_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsUnknownJoint_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsUnknownJoint_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsUnknownJoint_GetBone1(This,pBoneNode)	\
    (This)->lpVtbl -> GetBone1(This,pBoneNode)

#define IRsUnknownJoint_GetBone2(This,pBoneNode)	\
    (This)->lpVtbl -> GetBone2(This,pBoneNode)

#define IRsUnknownJoint_InvalidateBones(This)	\
    (This)->lpVtbl -> InvalidateBones(This)

#define IRsUnknownJoint_GetJointPosition(This,pPosition)	\
    (This)->lpVtbl -> GetJointPosition(This,pPosition)

#define IRsUnknownJoint_SetJointTransform(This,pTransform)	\
    (This)->lpVtbl -> SetJointTransform(This,pTransform)

#define IRsUnknownJoint_GetReferencePosition(This,pTransform)	\
    (This)->lpVtbl -> GetReferencePosition(This,pTransform)

#define IRsUnknownJoint_SetReferencePosition(This,pTransform)	\
    (This)->lpVtbl -> SetReferencePosition(This,pTransform)

#define IRsUnknownJoint_InvalidateFkPose(This)	\
    (This)->lpVtbl -> InvalidateFkPose(This)

#define IRsUnknownJoint_GetJointId(This,pgId)	\
    (This)->lpVtbl -> GetJointId(This,pgId)

#define IRsUnknownJoint_SetJointId(This,pgId)	\
    (This)->lpVtbl -> SetJointId(This,pgId)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownJoint_GetBone1_Proxy( 
    IRsUnknownJoint * This,
    /* [retval][out] */ IRsNode **pBoneNode);


void __RPC_STUB IRsUnknownJoint_GetBone1_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownJoint_GetBone2_Proxy( 
    IRsUnknownJoint * This,
    /* [retval][out] */ IRsNode **pBoneNode);


void __RPC_STUB IRsUnknownJoint_GetBone2_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownJoint_InvalidateBones_Proxy( 
    IRsUnknownJoint * This);


void __RPC_STUB IRsUnknownJoint_InvalidateBones_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownJoint_GetJointPosition_Proxy( 
    IRsUnknownJoint * This,
    /* [retval][out] */ RtPoint *pPosition);


void __RPC_STUB IRsUnknownJoint_GetJointPosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownJoint_SetJointTransform_Proxy( 
    IRsUnknownJoint * This,
    /* [in] */ IRdMatrixf *pTransform);


void __RPC_STUB IRsUnknownJoint_SetJointTransform_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownJoint_GetReferencePosition_Proxy( 
    IRsUnknownJoint * This,
    /* [retval][out] */ RtPoint *pTransform);


void __RPC_STUB IRsUnknownJoint_GetReferencePosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownJoint_SetReferencePosition_Proxy( 
    IRsUnknownJoint * This,
    /* [in] */ RtPoint *pTransform);


void __RPC_STUB IRsUnknownJoint_SetReferencePosition_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownJoint_InvalidateFkPose_Proxy( 
    IRsUnknownJoint * This);


void __RPC_STUB IRsUnknownJoint_InvalidateFkPose_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownJoint_GetJointId_Proxy( 
    IRsUnknownJoint * This,
    /* [in] */ GUID *pgId);


void __RPC_STUB IRsUnknownJoint_GetJointId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRsUnknownJoint_SetJointId_Proxy( 
    IRsUnknownJoint * This,
    /* [in] */ GUID *pgId);


void __RPC_STUB IRsUnknownJoint_SetJointId_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsUnknownJoint_INTERFACE_DEFINED__ */


#ifndef __IRsSkeletonEventsListener_INTERFACE_DEFINED__
#define __IRsSkeletonEventsListener_INTERFACE_DEFINED__

/* interface IRsSkeletonEventsListener */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsSkeletonEventsListener;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0C74EF71-12E3-4074-A762-A9090BD1C1A7")
    IRsSkeletonEventsListener : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE OnSkeletonRootChanged( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnSkeletonTransformChanged( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnSkeletonPoseCalculated( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnSkeletonPoseIkCalculated( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnSkeletonTopologyChanged( void) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE OnSkeletonSkinMatrixChanged( 
            /* [in] */ RtMatrixf *pfSkinDeltaMatrix) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsSkeletonEventsListenerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsSkeletonEventsListener * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsSkeletonEventsListener * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsSkeletonEventsListener * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnSkeletonRootChanged )( 
            IRsSkeletonEventsListener * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnSkeletonTransformChanged )( 
            IRsSkeletonEventsListener * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnSkeletonPoseCalculated )( 
            IRsSkeletonEventsListener * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnSkeletonPoseIkCalculated )( 
            IRsSkeletonEventsListener * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnSkeletonTopologyChanged )( 
            IRsSkeletonEventsListener * This);
        
        HRESULT ( STDMETHODCALLTYPE *OnSkeletonSkinMatrixChanged )( 
            IRsSkeletonEventsListener * This,
            /* [in] */ RtMatrixf *pfSkinDeltaMatrix);
        
        END_INTERFACE
    } IRsSkeletonEventsListenerVtbl;

    interface IRsSkeletonEventsListener
    {
        CONST_VTBL struct IRsSkeletonEventsListenerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsSkeletonEventsListener_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsSkeletonEventsListener_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsSkeletonEventsListener_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsSkeletonEventsListener_OnSkeletonRootChanged(This)	\
    (This)->lpVtbl -> OnSkeletonRootChanged(This)

#define IRsSkeletonEventsListener_OnSkeletonTransformChanged(This)	\
    (This)->lpVtbl -> OnSkeletonTransformChanged(This)

#define IRsSkeletonEventsListener_OnSkeletonPoseCalculated(This)	\
    (This)->lpVtbl -> OnSkeletonPoseCalculated(This)

#define IRsSkeletonEventsListener_OnSkeletonPoseIkCalculated(This)	\
    (This)->lpVtbl -> OnSkeletonPoseIkCalculated(This)

#define IRsSkeletonEventsListener_OnSkeletonTopologyChanged(This)	\
    (This)->lpVtbl -> OnSkeletonTopologyChanged(This)

#define IRsSkeletonEventsListener_OnSkeletonSkinMatrixChanged(This,pfSkinDeltaMatrix)	\
    (This)->lpVtbl -> OnSkeletonSkinMatrixChanged(This,pfSkinDeltaMatrix)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsSkeletonEventsListener_OnSkeletonRootChanged_Proxy( 
    IRsSkeletonEventsListener * This);


void __RPC_STUB IRsSkeletonEventsListener_OnSkeletonRootChanged_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsSkeletonEventsListener_OnSkeletonTransformChanged_Proxy( 
    IRsSkeletonEventsListener * This);


void __RPC_STUB IRsSkeletonEventsListener_OnSkeletonTransformChanged_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsSkeletonEventsListener_OnSkeletonPoseCalculated_Proxy( 
    IRsSkeletonEventsListener * This);


void __RPC_STUB IRsSkeletonEventsListener_OnSkeletonPoseCalculated_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsSkeletonEventsListener_OnSkeletonPoseIkCalculated_Proxy( 
    IRsSkeletonEventsListener * This);


void __RPC_STUB IRsSkeletonEventsListener_OnSkeletonPoseIkCalculated_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsSkeletonEventsListener_OnSkeletonTopologyChanged_Proxy( 
    IRsSkeletonEventsListener * This);


void __RPC_STUB IRsSkeletonEventsListener_OnSkeletonTopologyChanged_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRsSkeletonEventsListener_OnSkeletonSkinMatrixChanged_Proxy( 
    IRsSkeletonEventsListener * This,
    /* [in] */ RtMatrixf *pfSkinDeltaMatrix);


void __RPC_STUB IRsSkeletonEventsListener_OnSkeletonSkinMatrixChanged_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsSkeletonEventsListener_INTERFACE_DEFINED__ */


#ifndef __IRsCustomPickHandling_INTERFACE_DEFINED__
#define __IRsCustomPickHandling_INTERFACE_DEFINED__

/* interface IRsCustomPickHandling */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRsCustomPickHandling;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8288DD1C-7A90-4f93-92B4-1FD1EABFEEDC")
    IRsCustomPickHandling : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE PickObject( 
            /* [in] */ IRsNode *pViewNode,
            /* [in] */ RtPoint2f *ptScreenPoint,
            /* [in] */ IRsNode **ppPickedNode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRsCustomPickHandlingVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRsCustomPickHandling * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRsCustomPickHandling * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRsCustomPickHandling * This);
        
        HRESULT ( STDMETHODCALLTYPE *PickObject )( 
            IRsCustomPickHandling * This,
            /* [in] */ IRsNode *pViewNode,
            /* [in] */ RtPoint2f *ptScreenPoint,
            /* [in] */ IRsNode **ppPickedNode);
        
        END_INTERFACE
    } IRsCustomPickHandlingVtbl;

    interface IRsCustomPickHandling
    {
        CONST_VTBL struct IRsCustomPickHandlingVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRsCustomPickHandling_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRsCustomPickHandling_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRsCustomPickHandling_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRsCustomPickHandling_PickObject(This,pViewNode,ptScreenPoint,ppPickedNode)	\
    (This)->lpVtbl -> PickObject(This,pViewNode,ptScreenPoint,ppPickedNode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRsCustomPickHandling_PickObject_Proxy( 
    IRsCustomPickHandling * This,
    /* [in] */ IRsNode *pViewNode,
    /* [in] */ RtPoint2f *ptScreenPoint,
    /* [in] */ IRsNode **ppPickedNode);


void __RPC_STUB IRsCustomPickHandling_PickObject_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRsCustomPickHandling_INTERFACE_DEFINED__ */


#ifndef __IRcME2UpdateFromGeneric_INTERFACE_DEFINED__
#define __IRcME2UpdateFromGeneric_INTERFACE_DEFINED__

/* interface IRcME2UpdateFromGeneric */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcME2UpdateFromGeneric;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("D5A62624-7A55-44E4-8810-D96BC35471F3")
    IRcME2UpdateFromGeneric : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE CreateNewMaterialItem( 
            /* [in] */ IRdMaterialGeneric *pMatGen,
            /* [in] */ IRsNode **ppNewMatItem) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcME2UpdateFromGenericVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcME2UpdateFromGeneric * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcME2UpdateFromGeneric * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcME2UpdateFromGeneric * This);
        
        HRESULT ( STDMETHODCALLTYPE *CreateNewMaterialItem )( 
            IRcME2UpdateFromGeneric * This,
            /* [in] */ IRdMaterialGeneric *pMatGen,
            /* [in] */ IRsNode **ppNewMatItem);
        
        END_INTERFACE
    } IRcME2UpdateFromGenericVtbl;

    interface IRcME2UpdateFromGeneric
    {
        CONST_VTBL struct IRcME2UpdateFromGenericVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcME2UpdateFromGeneric_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcME2UpdateFromGeneric_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcME2UpdateFromGeneric_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcME2UpdateFromGeneric_CreateNewMaterialItem(This,pMatGen,ppNewMatItem)	\
    (This)->lpVtbl -> CreateNewMaterialItem(This,pMatGen,ppNewMatItem)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRcME2UpdateFromGeneric_CreateNewMaterialItem_Proxy( 
    IRcME2UpdateFromGeneric * This,
    /* [in] */ IRdMaterialGeneric *pMatGen,
    /* [in] */ IRsNode **ppNewMatItem);


void __RPC_STUB IRcME2UpdateFromGeneric_CreateNewMaterialItem_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcME2UpdateFromGeneric_INTERFACE_DEFINED__ */


#ifndef __IRcOpenMultiplePanels_INTERFACE_DEFINED__
#define __IRcOpenMultiplePanels_INTERFACE_DEFINED__

/* interface IRcOpenMultiplePanels */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcOpenMultiplePanels;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A5C98A2D-A1AF-4952-9F8D-732B2B1F9F24")
    IRcOpenMultiplePanels : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetSwitchStackState( 
            /* [in] */ RtBool bSwitchStack) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE SetStackViewAspect( 
            /* [in] */ RtUlong uStackViewAspect) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcOpenMultiplePanelsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcOpenMultiplePanels * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcOpenMultiplePanels * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcOpenMultiplePanels * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetSwitchStackState )( 
            IRcOpenMultiplePanels * This,
            /* [in] */ RtBool bSwitchStack);
        
        HRESULT ( STDMETHODCALLTYPE *SetStackViewAspect )( 
            IRcOpenMultiplePanels * This,
            /* [in] */ RtUlong uStackViewAspect);
        
        END_INTERFACE
    } IRcOpenMultiplePanelsVtbl;

    interface IRcOpenMultiplePanels
    {
        CONST_VTBL struct IRcOpenMultiplePanelsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcOpenMultiplePanels_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcOpenMultiplePanels_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcOpenMultiplePanels_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcOpenMultiplePanels_SetSwitchStackState(This,bSwitchStack)	\
    (This)->lpVtbl -> SetSwitchStackState(This,bSwitchStack)

#define IRcOpenMultiplePanels_SetStackViewAspect(This,uStackViewAspect)	\
    (This)->lpVtbl -> SetStackViewAspect(This,uStackViewAspect)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRcOpenMultiplePanels_SetSwitchStackState_Proxy( 
    IRcOpenMultiplePanels * This,
    /* [in] */ RtBool bSwitchStack);


void __RPC_STUB IRcOpenMultiplePanels_SetSwitchStackState_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);


HRESULT STDMETHODCALLTYPE IRcOpenMultiplePanels_SetStackViewAspect_Proxy( 
    IRcOpenMultiplePanels * This,
    /* [in] */ RtUlong uStackViewAspect);


void __RPC_STUB IRcOpenMultiplePanels_SetStackViewAspect_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcOpenMultiplePanels_INTERFACE_DEFINED__ */


#ifndef __IRcChangeActiveVertexMorph_INTERFACE_DEFINED__
#define __IRcChangeActiveVertexMorph_INTERFACE_DEFINED__

/* interface IRcChangeActiveVertexMorph */
/* [unique][helpstring][uuid][object] */ 


EXTERN_C const IID IID_IRcChangeActiveVertexMorph;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("23B2A254-50E7-4c16-AC96-959E3946C2EF")
    IRcChangeActiveVertexMorph : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetMorphSource( 
            /* [in] */ IRsNode *pNode) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRcChangeActiveVertexMorphVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRcChangeActiveVertexMorph * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRcChangeActiveVertexMorph * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRcChangeActiveVertexMorph * This);
        
        HRESULT ( STDMETHODCALLTYPE *SetMorphSource )( 
            IRcChangeActiveVertexMorph * This,
            /* [in] */ IRsNode *pNode);
        
        END_INTERFACE
    } IRcChangeActiveVertexMorphVtbl;

    interface IRcChangeActiveVertexMorph
    {
        CONST_VTBL struct IRcChangeActiveVertexMorphVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IRcChangeActiveVertexMorph_QueryInterface(This,riid,ppvObject)	\
    (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)

#define IRcChangeActiveVertexMorph_AddRef(This)	\
    (This)->lpVtbl -> AddRef(This)

#define IRcChangeActiveVertexMorph_Release(This)	\
    (This)->lpVtbl -> Release(This)


#define IRcChangeActiveVertexMorph_SetMorphSource(This,pNode)	\
    (This)->lpVtbl -> SetMorphSource(This,pNode)

#endif /* COBJMACROS */


#endif 	/* C style interface */



HRESULT STDMETHODCALLTYPE IRcChangeActiveVertexMorph_SetMorphSource_Proxy( 
    IRcChangeActiveVertexMorph * This,
    /* [in] */ IRsNode *pNode);


void __RPC_STUB IRcChangeActiveVertexMorph_SetMorphSource_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase);



#endif 	/* __IRcChangeActiveVertexMorph_INTERFACE_DEFINED__ */



#ifndef __Space3D_LIBRARY_DEFINED__
#define __Space3D_LIBRARY_DEFINED__

/* library Space3D */
/* [helpstring][uuid][version] */ 


EXTERN_C const IID LIBID_Space3D;

EXTERN_C const CLSID CLSID_CRdStreamGroup;

#ifdef __cplusplus

class DECLSPEC_UUID("8439A950-D271-40F9-9C85-4E53C7BB1BD8")
CRdStreamGroup;
#endif

EXTERN_C const CLSID CLSID_CRdMesh;

#ifdef __cplusplus

class DECLSPEC_UUID("A9C9E6A3-7BC4-4576-B202-41997D65B907")
CRdMesh;
#endif

EXTERN_C const CLSID CLSID_CRdMaterial;

#ifdef __cplusplus

class DECLSPEC_UUID("E06DA7EC-A49F-43fa-9ED6-9E721709058C")
CRdMaterial;
#endif

EXTERN_C const CLSID CLSID_CRsNodeList;

#ifdef __cplusplus

class DECLSPEC_UUID("090BEE66-AE8A-403F-AFBC-E812058535CD")
CRsNodeList;
#endif

EXTERN_C const CLSID CLSID_CRdVertexStream;

#ifdef __cplusplus

class DECLSPEC_UUID("893D835E-C50A-40bd-8C61-33B802BF0424")
CRdVertexStream;
#endif

EXTERN_C const CLSID CLSID_CRdTriangleStream;

#ifdef __cplusplus

class DECLSPEC_UUID("F4A51B9B-D4BF-483e-9732-CC3AD45D586A")
CRdTriangleStream;
#endif

EXTERN_C const CLSID CLSID_CRdNormalsStream;

#ifdef __cplusplus

class DECLSPEC_UUID("E2BA90C9-D545-4ff1-98E1-7C6B63BAE3AB")
CRdNormalsStream;
#endif

EXTERN_C const CLSID CLSID_CRdVertexNormalsStream;

#ifdef __cplusplus

class DECLSPEC_UUID("6366B7D5-A938-487a-9A5A-1DDCA4A052F6")
CRdVertexNormalsStream;
#endif

EXTERN_C const CLSID CLSID_CRdGenCustStream;

#ifdef __cplusplus

class DECLSPEC_UUID("98D54D8D-4297-4ECC-A10D-B4A598B52D0E")
CRdGenCustStream;
#endif

EXTERN_C const CLSID CLSID_CRdMaterialIndexStream;

#ifdef __cplusplus

class DECLSPEC_UUID("7839593F-EEC3-4621-B005-BBE6B20EAA99")
CRdMaterialIndexStream;
#endif

EXTERN_C const CLSID CLSID_CRdEdgeNeighborsStream;

#ifdef __cplusplus

class DECLSPEC_UUID("A3BA9D85-D0E7-481d-8F3B-EF6A438DE380")
CRdEdgeNeighborsStream;
#endif

EXTERN_C const CLSID CLSID_CRdUVTriangleStream;

#ifdef __cplusplus

class DECLSPEC_UUID("40B73790-E372-483c-A1E3-A12EA3C79AAF")
CRdUVTriangleStream;
#endif

EXTERN_C const CLSID CLSID_CRdUVCoordStream;

#ifdef __cplusplus

class DECLSPEC_UUID("FD7DA2FC-2B86-486d-9A9D-CFD7661EA1A9")
CRdUVCoordStream;
#endif

EXTERN_C const CLSID CLSID_CRdUVSecTriangleStream;

#ifdef __cplusplus

class DECLSPEC_UUID("C3CC0662-BA55-403a-8B2D-4A17C2A4E98E")
CRdUVSecTriangleStream;
#endif

EXTERN_C const CLSID CLSID_CRdUVSecCoordStream;

#ifdef __cplusplus

class DECLSPEC_UUID("A4D6D9A7-1B47-433e-BE44-A21087443BAA")
CRdUVSecCoordStream;
#endif

EXTERN_C const CLSID CLSID_CRdFacesStream;

#ifdef __cplusplus

class DECLSPEC_UUID("36ED587A-C031-465d-8602-95897544BF40")
CRdFacesStream;
#endif

EXTERN_C const CLSID CLSID_CRdFaceTrianglesStream;

#ifdef __cplusplus

class DECLSPEC_UUID("B272F7C0-B674-41d2-A9FE-95166217592E")
CRdFaceTrianglesStream;
#endif

EXTERN_C const CLSID CLSID_CRdFaceUnityStream;

#ifdef __cplusplus

class DECLSPEC_UUID("4968564E-78F3-4097-B59C-699106C36CB5")
CRdFaceUnityStream;
#endif

EXTERN_C const CLSID CLSID_CRdSuperfaceUnityStream;

#ifdef __cplusplus

class DECLSPEC_UUID("479F9709-69C8-4c1f-9649-F16F92C6F4C8")
CRdSuperfaceUnityStream;
#endif

EXTERN_C const CLSID CLSID_CRdTriangleEdgesStream;

#ifdef __cplusplus

class DECLSPEC_UUID("9E60E1D8-8338-410c-8B3F-5DA36F1BB834")
CRdTriangleEdgesStream;
#endif

EXTERN_C const CLSID CLSID_CRdTriangleNeighboursStream;

#ifdef __cplusplus

class DECLSPEC_UUID("0B24228D-7A59-4faa-A835-95C39B684D0C")
CRdTriangleNeighboursStream;
#endif

EXTERN_C const CLSID CLSID_CRdSSEdgeWeightsStream;

#ifdef __cplusplus

class DECLSPEC_UUID("04430AE4-DCA4-45b3-A8C8-52668772BD83")
CRdSSEdgeWeightsStream;
#endif

EXTERN_C const CLSID CLSID_CRdTriangleNormalsStream;

#ifdef __cplusplus

class DECLSPEC_UUID("51D4FC92-22E4-4089-87B0-5E330B184D5B")
CRdTriangleNormalsStream;
#endif

EXTERN_C const CLSID CLSID_CRdTrVertColorStream;

#ifdef __cplusplus

class DECLSPEC_UUID("D5C79794-BE82-471a-B47A-93B949318283")
CRdTrVertColorStream;
#endif

EXTERN_C const CLSID CLSID_CRdTangentSpaceStream;

#ifdef __cplusplus

class DECLSPEC_UUID("E4954678-413B-4267-9E06-653EAFC242D0")
CRdTangentSpaceStream;
#endif

EXTERN_C const CLSID CLSID_CRdTangentSpaceTriangleStream;

#ifdef __cplusplus

class DECLSPEC_UUID("1701AE4C-BBA2-40c1-8E69-02942753DF14")
CRdTangentSpaceTriangleStream;
#endif

EXTERN_C const CLSID CLSID_CRdVertexTopologyInfo;

#ifdef __cplusplus

class DECLSPEC_UUID("E0149552-5D5E-43DF-B52A-162200FC1B3A")
CRdVertexTopologyInfo;
#endif

EXTERN_C const CLSID CLSID_CRdVertexTopologyData;

#ifdef __cplusplus

class DECLSPEC_UUID("E16EE3C5-79AC-4232-B8F7-F4610A9DAD35")
CRdVertexTopologyData;
#endif

EXTERN_C const CLSID CLSID_CRdCamera;

#ifdef __cplusplus

class DECLSPEC_UUID("246812F6-769A-4794-AF9C-1E5DCAB681F5")
CRdCamera;
#endif

EXTERN_C const CLSID CLSID_CRdMaterialActiveInfo;

#ifdef __cplusplus

class DECLSPEC_UUID("2166FDF6-D1D2-4194-B8A2-E04CE67DC530")
CRdMaterialActiveInfo;
#endif

EXTERN_C const CLSID CLSID_CRdMaterialChunk;

#ifdef __cplusplus

class DECLSPEC_UUID("28721757-72B2-4482-B2DC-940E7CC43892")
CRdMaterialChunk;
#endif

EXTERN_C const CLSID CLSID_CRdMaterialList;

#ifdef __cplusplus

class DECLSPEC_UUID("5F530AC0-1C7A-4c52-8710-2F4DF5A1C6CA")
CRdMaterialList;
#endif

EXTERN_C const CLSID CLSID_CRdArrayObjInfo;

#ifdef __cplusplus

class DECLSPEC_UUID("B999D055-1022-47cf-BDA0-7F382C5A024E")
CRdArrayObjInfo;
#endif

EXTERN_C const CLSID CLSID_CRdLayersInfo;

#ifdef __cplusplus

class DECLSPEC_UUID("6E74B7A8-A51E-42db-89A6-6052C22D6FB3")
CRdLayersInfo;
#endif

EXTERN_C const CLSID CLSID_CRfObjectHelper;

#ifdef __cplusplus

class DECLSPEC_UUID("4EC4FB26-6692-4247-98FF-6D6597AF7044")
CRfObjectHelper;
#endif

EXTERN_C const CLSID CLSID_CRfSceneHelper;

#ifdef __cplusplus

class DECLSPEC_UUID("4724F838-6442-46E4-AFF4-93F9DC5B1FE9")
CRfSceneHelper;
#endif

EXTERN_C const CLSID CLSID_CRdGeometryIdentificationTableStream;

#ifdef __cplusplus

class DECLSPEC_UUID("71B5E131-1329-4584-9445-D5664007D3B0")
CRdGeometryIdentificationTableStream;
#endif

EXTERN_C const CLSID CLSID_CRfMeshSet;

#ifdef __cplusplus

class DECLSPEC_UUID("63B3315A-3D21-4cd2-83FB-74A2ABBFE96C")
CRfMeshSet;
#endif

EXTERN_C const CLSID CLSID_CRfTransformSet;

#ifdef __cplusplus

class DECLSPEC_UUID("891FEAB7-976D-4b02-A9C5-3237B4A4A9BA")
CRfTransformSet;
#endif

EXTERN_C const CLSID CLSID_CRfSkeletonSet;

#ifdef __cplusplus

class DECLSPEC_UUID("27588F8B-ED47-4d2a-AD54-DFA44AA3FB34")
CRfSkeletonSet;
#endif

EXTERN_C const CLSID CLSID_CRdMeshSelection;

#ifdef __cplusplus

class DECLSPEC_UUID("C42BB020-7023-4907-8D84-037F023EEEB1")
CRdMeshSelection;
#endif

EXTERN_C const CLSID CLSID_CRdSkinningData;

#ifdef __cplusplus

class DECLSPEC_UUID("D90C2C27-D043-4632-8986-5DB90E64D91C")
CRdSkinningData;
#endif

EXTERN_C const CLSID CLSID_CRdSkinningParameters;

#ifdef __cplusplus

class DECLSPEC_UUID("88F998CC-5EF9-4bd5-B66F-65FC400A295D")
CRdSkinningParameters;
#endif

EXTERN_C const CLSID CLSID_CRfSkinSet;

#ifdef __cplusplus

class DECLSPEC_UUID("B499EB51-296C-43a6-8647-B02693D81E53")
CRfSkinSet;
#endif

EXTERN_C const CLSID CLSID_CRsTransformOverride;

#ifdef __cplusplus

class DECLSPEC_UUID("E94987BB-EAD3-45d6-B511-C5D8C02881B8")
CRsTransformOverride;
#endif

EXTERN_C const CLSID CLSID_CRfMeshRetargetSet;

#ifdef __cplusplus

class DECLSPEC_UUID("66CDB78E-F4EA-4192-A11D-7B766FF654F4")
CRfMeshRetargetSet;
#endif

EXTERN_C const CLSID CLSID_CRfMaterialEditor;

#ifdef __cplusplus

class DECLSPEC_UUID("093CC8D7-2784-4708-A73C-782A5499F697")
CRfMaterialEditor;
#endif

EXTERN_C const CLSID CLSID_CRdVertexMorph;

#ifdef __cplusplus

class DECLSPEC_UUID("315B67B9-876F-4e9a-BD46-6CD13634D628")
CRdVertexMorph;
#endif

EXTERN_C const CLSID CLSID_CRfVertexMorphSet;

#ifdef __cplusplus

class DECLSPEC_UUID("7292BA22-B2C5-4d7f-8815-738249B1876E")
CRfVertexMorphSet;
#endif

EXTERN_C const CLSID CLSID_CRpSpace3DPck;

#ifdef __cplusplus

class DECLSPEC_UUID("CA457F3C-0322-4114-B770-DA814CBA898B")
CRpSpace3DPck;
#endif

EXTERN_C const CLSID CLSID_CRdTripleIndexArray;

#ifdef __cplusplus

class DECLSPEC_UUID("C276B424-E5B4-4602-A4B3-8D4E39E6FF8F")
CRdTripleIndexArray;
#endif

EXTERN_C const CLSID CLSID_CRdPointArray;

#ifdef __cplusplus

class DECLSPEC_UUID("C16A4A52-3EC9-4b19-884C-E63A832B8E2F")
CRdPointArray;
#endif

EXTERN_C const CLSID CLSID_CRdUvArray;

#ifdef __cplusplus

class DECLSPEC_UUID("B1A6AEDF-384D-4565-B2B5-766ADF876A4B")
CRdUvArray;
#endif

EXTERN_C const CLSID CLSID_CRdIndexArray;

#ifdef __cplusplus

class DECLSPEC_UUID("EAB88112-1EA3-402a-B3B4-0468B8378706")
CRdIndexArray;
#endif

EXTERN_C const CLSID CLSID_CRdRenderAttributes;

#ifdef __cplusplus

class DECLSPEC_UUID("EE94B3E8-D621-44d5-A75D-8CBB605D39B5")
CRdRenderAttributes;
#endif

EXTERN_C const CLSID CLSID_CRiSpaceCommand;

#ifdef __cplusplus

class DECLSPEC_UUID("F973586D-6E5F-4A9C-BE51-AF0C05C6AC29")
CRiSpaceCommand;
#endif

EXTERN_C const CLSID CLSID_CRsUVTesselation;

#ifdef __cplusplus

class DECLSPEC_UUID("1DF22381-C6E6-4b06-98D5-2216C2539FAA")
CRsUVTesselation;
#endif

EXTERN_C const CLSID CLSID_CRsWindowToolSet;

#ifdef __cplusplus

class DECLSPEC_UUID("FB897CE4-0EFC-41FC-AF4F-A1CFD4180F4F")
CRsWindowToolSet;
#endif

EXTERN_C const CLSID CLSID_CRdVertexSelectionStream;

#ifdef __cplusplus

class DECLSPEC_UUID("C7AE845F-3EFD-4121-89D1-72179557E0BC")
CRdVertexSelectionStream;
#endif

EXTERN_C const CLSID CLSID_CRdEdgeSelectionStream;

#ifdef __cplusplus

class DECLSPEC_UUID("F891A53D-33F6-4a1a-808B-5004288DA045")
CRdEdgeSelectionStream;
#endif

EXTERN_C const CLSID CLSID_CRdEdgesVisualizationStream;

#ifdef __cplusplus

class DECLSPEC_UUID("B7FE4616-FD15-4DD9-B5C9-45D71B3EA94F")
CRdEdgesVisualizationStream;
#endif

EXTERN_C const CLSID CLSID_CRdTriangleSelectionStream;

#ifdef __cplusplus

class DECLSPEC_UUID("9F61AFCD-B5FA-4149-997F-9295BC8D0C7F")
CRdTriangleSelectionStream;
#endif

EXTERN_C const CLSID CLSID_CRdGeometryIdentificationStream;

#ifdef __cplusplus

class DECLSPEC_UUID("C93A081A-F4ED-4ed0-B56D-FA896672DAF1")
CRdGeometryIdentificationStream;
#endif

EXTERN_C const CLSID CLSID_CRdGeometryIdentificationTriangleStream;

#ifdef __cplusplus

class DECLSPEC_UUID("A47AD728-C146-492c-8427-AABFDB97BAB2")
CRdGeometryIdentificationTriangleStream;
#endif

EXTERN_C const CLSID CLSID_CRdTriangleLocatorStream;

#ifdef __cplusplus

class DECLSPEC_UUID("F601C84C-74F2-406c-8360-BBB54E67BBD2")
CRdTriangleLocatorStream;
#endif

EXTERN_C const CLSID CLSID_CRdTrianglesVisStream;

#ifdef __cplusplus

class DECLSPEC_UUID("22EFE48B-80E3-48BC-9762-A8AE94FBF665")
CRdTrianglesVisStream;
#endif

EXTERN_C const CLSID CLSID_CRdTriangleTimestampStream;

#ifdef __cplusplus

class DECLSPEC_UUID("A190850A-6E98-4820-92E3-346A4F62B8F1")
CRdTriangleTimestampStream;
#endif

EXTERN_C const CLSID CLSID_CRdVertexVisualizationStream;

#ifdef __cplusplus

class DECLSPEC_UUID("901EAADA-C850-4C91-A0C1-74CC504C7C1F")
CRdVertexVisualizationStream;
#endif

EXTERN_C const CLSID CLSID_CRdHairDensityStream;

#ifdef __cplusplus

class DECLSPEC_UUID("F36C3173-8D30-4bf2-B3B6-8E054B95D5EB")
CRdHairDensityStream;
#endif

EXTERN_C const CLSID CLSID_CRdHairLengthStream;

#ifdef __cplusplus

class DECLSPEC_UUID("C21851B0-EC1C-4230-8A96-C507D0664588")
CRdHairLengthStream;
#endif

EXTERN_C const CLSID CLSID_CRdSSVertexStream;

#ifdef __cplusplus

class DECLSPEC_UUID("136BD59A-66D2-4B7C-B1EA-9FE17C8249A4")
CRdSSVertexStream;
#endif

EXTERN_C const CLSID CLSID_CRdVertexHairStream;

#ifdef __cplusplus

class DECLSPEC_UUID("F8CC4E4A-9AD2-4067-8319-2923B7AEA9EE")
CRdVertexHairStream;
#endif

EXTERN_C const CLSID CLSID_CRdObjNamesIndexStream;

#ifdef __cplusplus

class DECLSPEC_UUID("CD92A852-F684-4fa0-B574-D7366C77D51F")
CRdObjNamesIndexStream;
#endif

EXTERN_C const CLSID CLSID_CRdSurfaceIdIndexStream;

#ifdef __cplusplus

class DECLSPEC_UUID("D8E91669-DCD3-4765-A835-61F172C954E7")
CRdSurfaceIdIndexStream;
#endif

EXTERN_C const CLSID CLSID_CRdNormalsSkinStream;

#ifdef __cplusplus

class DECLSPEC_UUID("5B0C7D64-E8EB-4dff-BCC2-A72E6EF95AEB")
CRdNormalsSkinStream;
#endif

EXTERN_C const CLSID CLSID_CRdObjNamesCustStream;

#ifdef __cplusplus

class DECLSPEC_UUID("12D3D90A-530B-45fe-9819-1BBE5E569719")
CRdObjNamesCustStream;
#endif

EXTERN_C const CLSID CLSID_CRdSkinMatrixStream;

#ifdef __cplusplus

class DECLSPEC_UUID("37922F9F-FFF4-43e4-8F68-43A2BDF74493")
CRdSkinMatrixStream;
#endif

EXTERN_C const CLSID CLSID_CRdCompatibilityNormalsStream;

#ifdef __cplusplus

class DECLSPEC_UUID("917AAEB3-1BC2-4695-B0BE-B871D5B6BE70")
CRdCompatibilityNormalsStream;
#endif

EXTERN_C const CLSID CLSID_CRdEdgeSelectionDeprecated;

#ifdef __cplusplus

class DECLSPEC_UUID("BC0A39EA-383F-47AE-981C-6DE812768E15")
CRdEdgeSelectionDeprecated;
#endif

EXTERN_C const CLSID CLSID_CRdTriangleSelectionDeprecated;

#ifdef __cplusplus

class DECLSPEC_UUID("E7F3AF6F-80B0-4973-97A0-0F0B4D891D19")
CRdTriangleSelectionDeprecated;
#endif

EXTERN_C const CLSID CLSID_CRdVertexSelectionDeprecated;

#ifdef __cplusplus

class DECLSPEC_UUID("FD509AAC-DA0B-4ED2-A04F-A86D1C4EBE69")
CRdVertexSelectionDeprecated;
#endif

EXTERN_C const CLSID CLSID_CRdMESettings;

#ifdef __cplusplus

class DECLSPEC_UUID("FEAA389A-9E5E-4a9f-B1D0-31F7D927D2C9")
CRdMESettings;
#endif

EXTERN_C const CLSID CLSID_CRdCurve;

#ifdef __cplusplus

class DECLSPEC_UUID("277F25C8-8080-4CC8-9CFC-C48E04E373F8")
CRdCurve;
#endif

EXTERN_C const CLSID CLSID_CRiOfflineRender;

#ifdef __cplusplus

class DECLSPEC_UUID("DD335FEF-C066-4b6c-A91E-2E25AB517D1B")
CRiOfflineRender;
#endif

EXTERN_C const CLSID CLSID_CRdBone;

#ifdef __cplusplus

class DECLSPEC_UUID("0082AA41-8099-4f41-93ED-6D7B34D99F00")
CRdBone;
#endif

EXTERN_C const CLSID CLSID_CRdBoneTransformParameters;

#ifdef __cplusplus

class DECLSPEC_UUID("BF405796-48E4-442f-8739-4E77F5652DF5")
CRdBoneTransformParameters;
#endif

EXTERN_C const CLSID CLSID_CRdSkeleton;

#ifdef __cplusplus

class DECLSPEC_UUID("281EF3D4-FB5D-4528-AE58-ABEE52E37D40")
CRdSkeleton;
#endif

EXTERN_C const CLSID CLSID_CRdJoint;

#ifdef __cplusplus

class DECLSPEC_UUID("95B5E6AA-7ED6-4cf0-8591-3FEEF603B2D3")
CRdJoint;
#endif

EXTERN_C const CLSID CLSID_CRdSoftTissuesData;

#ifdef __cplusplus

class DECLSPEC_UUID("AFCDCEF1-E5F7-42fa-90D7-699993E62397")
CRdSoftTissuesData;
#endif

EXTERN_C const CLSID CLSID_CRdIkLocks;

#ifdef __cplusplus

class DECLSPEC_UUID("CB266A74-20E6-4c87-9FCC-A2C736B9EA9C")
CRdIkLocks;
#endif

EXTERN_C const CLSID CLSID_CRdHair;

#ifdef __cplusplus

class DECLSPEC_UUID("0DFDEFA8-7A16-4666-8779-B5FF36FA6083")
CRdHair;
#endif

EXTERN_C const CLSID CLSID_CRdSkeletonProperties;

#ifdef __cplusplus

class DECLSPEC_UUID("30B1197B-8A2E-40cf-87C3-8F034E2D8EFB")
CRdSkeletonProperties;
#endif

EXTERN_C const CLSID CLSID_CRdVertexSkinStream;

#ifdef __cplusplus

class DECLSPEC_UUID("480FD893-5CE7-48cc-AD0D-449CB822A9A4")
CRdVertexSkinStream;
#endif

EXTERN_C const CLSID CLSID_CRdSkinWeightDirect;

#ifdef __cplusplus

class DECLSPEC_UUID("DC570455-9A2E-4919-A86F-48CCA9634E76")
CRdSkinWeightDirect;
#endif

EXTERN_C const CLSID CLSID_CRdSkinWeightIndexed;

#ifdef __cplusplus

class DECLSPEC_UUID("1E6CF386-9171-4002-B77E-01BD79999DBB")
CRdSkinWeightIndexed;
#endif

EXTERN_C const CLSID CLSID_CRdProceduralSkinVertexStream;

#ifdef __cplusplus

class DECLSPEC_UUID("2FFAD768-BB29-42c6-A44A-CB5F9BE4F414")
CRdProceduralSkinVertexStream;
#endif

EXTERN_C const CLSID CLSID_CRdVertexSkinVerticesCache;

#ifdef __cplusplus

class DECLSPEC_UUID("79A1BB57-7595-4e32-8F5F-CB5F3F16CCDE")
CRdVertexSkinVerticesCache;
#endif

EXTERN_C const CLSID CLSID_CRdProceduralSkinNormalsStream;

#ifdef __cplusplus

class DECLSPEC_UUID("8F69E097-CCA9-4cd1-AFF9-B21064D0F051")
CRdProceduralSkinNormalsStream;
#endif

EXTERN_C const CLSID CLSID_CRdVertexSkinNormalsCache;

#ifdef __cplusplus

class DECLSPEC_UUID("5A12001A-BBC4-48dc-8526-B77377A2D95A")
CRdVertexSkinNormalsCache;
#endif

EXTERN_C const CLSID CLSID_CRdVertexMorphStream;

#ifdef __cplusplus

class DECLSPEC_UUID("8BCFEC84-DEBC-438d-8DD9-907D8881206F")
CRdVertexMorphStream;
#endif

EXTERN_C const CLSID CLSID_CRdMaterialGeneric;

#ifdef __cplusplus

class DECLSPEC_UUID("740954C3-6E45-4034-A6B9-DB30A07506A0")
CRdMaterialGeneric;
#endif

EXTERN_C const CLSID CLSID_CRdReferencedMaterialInfo;

#ifdef __cplusplus

class DECLSPEC_UUID("77ABF3A3-140D-4ec8-9422-2A82383EE054")
CRdReferencedMaterialInfo;
#endif

EXTERN_C const CLSID CLSID_CRdIkStyle;

#ifdef __cplusplus

class DECLSPEC_UUID("E43E0016-60EE-4828-91E5-14BBA20AB92B")
CRdIkStyle;
#endif
#endif /* __Space3D_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


