

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


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

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

/* Forward Declarations */ 

#ifndef __IRpMathPck_FWD_DEFINED__
#define __IRpMathPck_FWD_DEFINED__
typedef interface IRpMathPck IRpMathPck;
#endif 	/* __IRpMathPck_FWD_DEFINED__ */


#ifndef __IRnMathFormula_FWD_DEFINED__
#define __IRnMathFormula_FWD_DEFINED__
typedef interface IRnMathFormula IRnMathFormula;
#endif 	/* __IRnMathFormula_FWD_DEFINED__ */


#ifndef __IRcMathObjModify_FWD_DEFINED__
#define __IRcMathObjModify_FWD_DEFINED__
typedef interface IRcMathObjModify IRcMathObjModify;
#endif 	/* __IRcMathObjModify_FWD_DEFINED__ */


#ifndef __IRdComponents_FWD_DEFINED__
#define __IRdComponents_FWD_DEFINED__
typedef interface IRdComponents IRdComponents;
#endif 	/* __IRdComponents_FWD_DEFINED__ */


#ifndef __IRdVertex_FWD_DEFINED__
#define __IRdVertex_FWD_DEFINED__
typedef interface IRdVertex IRdVertex;
#endif 	/* __IRdVertex_FWD_DEFINED__ */


#ifndef __IRdVertexDisp_FWD_DEFINED__
#define __IRdVertexDisp_FWD_DEFINED__
typedef interface IRdVertexDisp IRdVertexDisp;
#endif 	/* __IRdVertexDisp_FWD_DEFINED__ */


#ifndef __IRdMatrixfDisp_FWD_DEFINED__
#define __IRdMatrixfDisp_FWD_DEFINED__
typedef interface IRdMatrixfDisp IRdMatrixfDisp;
#endif 	/* __IRdMatrixfDisp_FWD_DEFINED__ */


#ifndef __IRdMatrixf_FWD_DEFINED__
#define __IRdMatrixf_FWD_DEFINED__
typedef interface IRdMatrixf IRdMatrixf;
#endif 	/* __IRdMatrixf_FWD_DEFINED__ */


#ifndef __IRiMathCommand_FWD_DEFINED__
#define __IRiMathCommand_FWD_DEFINED__
typedef interface IRiMathCommand IRiMathCommand;
#endif 	/* __IRiMathCommand_FWD_DEFINED__ */


#ifndef __IRnBinaryOp_FWD_DEFINED__
#define __IRnBinaryOp_FWD_DEFINED__
typedef interface IRnBinaryOp IRnBinaryOp;
#endif 	/* __IRnBinaryOp_FWD_DEFINED__ */


#ifndef __IRnDecomposeMatrix_FWD_DEFINED__
#define __IRnDecomposeMatrix_FWD_DEFINED__
typedef interface IRnDecomposeMatrix IRnDecomposeMatrix;
#endif 	/* __IRnDecomposeMatrix_FWD_DEFINED__ */


#ifndef __IRnDistanceOp_FWD_DEFINED__
#define __IRnDistanceOp_FWD_DEFINED__
typedef interface IRnDistanceOp IRnDistanceOp;
#endif 	/* __IRnDistanceOp_FWD_DEFINED__ */


#ifndef __IRnLookAt_FWD_DEFINED__
#define __IRnLookAt_FWD_DEFINED__
typedef interface IRnLookAt IRnLookAt;
#endif 	/* __IRnLookAt_FWD_DEFINED__ */


#ifndef __IRnLookAt2_FWD_DEFINED__
#define __IRnLookAt2_FWD_DEFINED__
typedef interface IRnLookAt2 IRnLookAt2;
#endif 	/* __IRnLookAt2_FWD_DEFINED__ */


#ifndef __IRnPoint_FWD_DEFINED__
#define __IRnPoint_FWD_DEFINED__
typedef interface IRnPoint IRnPoint;
#endif 	/* __IRnPoint_FWD_DEFINED__ */


#ifndef __IRnReal_FWD_DEFINED__
#define __IRnReal_FWD_DEFINED__
typedef interface IRnReal IRnReal;
#endif 	/* __IRnReal_FWD_DEFINED__ */


#ifndef __IRnRealMemory_FWD_DEFINED__
#define __IRnRealMemory_FWD_DEFINED__
typedef interface IRnRealMemory IRnRealMemory;
#endif 	/* __IRnRealMemory_FWD_DEFINED__ */


#ifndef __IRnTransform2_FWD_DEFINED__
#define __IRnTransform2_FWD_DEFINED__
typedef interface IRnTransform2 IRnTransform2;
#endif 	/* __IRnTransform2_FWD_DEFINED__ */


#ifndef __IRnUnaryOp_FWD_DEFINED__
#define __IRnUnaryOp_FWD_DEFINED__
typedef interface IRnUnaryOp IRnUnaryOp;
#endif 	/* __IRnUnaryOp_FWD_DEFINED__ */


#ifndef __IRsMathNodeFactory_FWD_DEFINED__
#define __IRsMathNodeFactory_FWD_DEFINED__
typedef interface IRsMathNodeFactory IRsMathNodeFactory;
#endif 	/* __IRsMathNodeFactory_FWD_DEFINED__ */


#ifndef __IRsMathCmdFactory_FWD_DEFINED__
#define __IRsMathCmdFactory_FWD_DEFINED__
typedef interface IRsMathCmdFactory IRsMathCmdFactory;
#endif 	/* __IRsMathCmdFactory_FWD_DEFINED__ */


#ifndef __IRsMathDataObjFactory_FWD_DEFINED__
#define __IRsMathDataObjFactory_FWD_DEFINED__
typedef interface IRsMathDataObjFactory IRsMathDataObjFactory;
#endif 	/* __IRsMathDataObjFactory_FWD_DEFINED__ */


#ifndef __CRpMathPck_FWD_DEFINED__
#define __CRpMathPck_FWD_DEFINED__

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

#endif 	/* __CRpMathPck_FWD_DEFINED__ */


#ifndef __CRdComponents_FWD_DEFINED__
#define __CRdComponents_FWD_DEFINED__

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

#endif 	/* __CRdComponents_FWD_DEFINED__ */


#ifndef __CRdVertex_FWD_DEFINED__
#define __CRdVertex_FWD_DEFINED__

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

#endif 	/* __CRdVertex_FWD_DEFINED__ */


#ifndef __CRdMatrixf_FWD_DEFINED__
#define __CRdMatrixf_FWD_DEFINED__

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

#endif 	/* __CRdMatrixf_FWD_DEFINED__ */


#ifndef __CRiMathCommand_FWD_DEFINED__
#define __CRiMathCommand_FWD_DEFINED__

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

#endif 	/* __CRiMathCommand_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"

#ifdef __cplusplus
extern "C"{
#endif 

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

#ifndef __IRpMathPck_INTERFACE_DEFINED__
#define __IRpMathPck_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRpMathPck;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DB32F1EA-A7C9-48FD-8CE9-DB78E45D5097")
    IRpMathPck : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

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

    interface IRpMathPck
    {
        CONST_VTBL struct IRpMathPckVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRpMathPck_INTERFACE_DEFINED__ */


#ifndef __IRnMathFormula_INTERFACE_DEFINED__
#define __IRnMathFormula_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRnMathFormula;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F672AAE0-71E9-48CA-86F2-01286E9EBEE2")
    IRnMathFormula : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CalcExp( 
            /* [out] */ RtDouble *pResult) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPrevFormula( 
            /* [out] */ BSTR *pResult) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnMathFormulaVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnMathFormula * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnMathFormula * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnMathFormula * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CalcExp )( 
            IRnMathFormula * This,
            /* [out] */ RtDouble *pResult);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPrevFormula )( 
            IRnMathFormula * This,
            /* [out] */ BSTR *pResult);
        
        END_INTERFACE
    } IRnMathFormulaVtbl;

    interface IRnMathFormula
    {
        CONST_VTBL struct IRnMathFormulaVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IRnMathFormula_CalcExp(This,pResult)	\
    (This)->lpVtbl -> CalcExp(This,pResult)

#define IRnMathFormula_GetPrevFormula(This,pResult)	\
    (This)->lpVtbl -> GetPrevFormula(This,pResult)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnMathFormula_CalcExp_Proxy( 
    IRnMathFormula * This,
    /* [out] */ RtDouble *pResult);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnMathFormula_GetPrevFormula_Proxy( 
    IRnMathFormula * This,
    /* [out] */ BSTR *pResult);


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



#endif 	/* __IRnMathFormula_INTERFACE_DEFINED__ */


#ifndef __IRcMathObjModify_INTERFACE_DEFINED__
#define __IRcMathObjModify_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRcMathObjModify;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("C27462B4-EF9E-4ca9-9DAB-A93D35186FEC")
    IRcMathObjModify : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

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

    interface IRcMathObjModify
    {
        CONST_VTBL struct IRcMathObjModifyVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRcMathObjModify_INTERFACE_DEFINED__ */


#ifndef __IRdComponents_INTERFACE_DEFINED__
#define __IRdComponents_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdComponents;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0a54d725-6c08-47dc-9eb4-4131ab40926e")
    IRdComponents : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_tx( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_tx( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ty( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ty( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_tz( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_tz( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_roll( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_roll( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_pitch( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_pitch( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_yaw( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_yaw( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_sx( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_sx( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_sy( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_sy( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_sz( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_sz( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ssx( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ssx( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ssy( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ssy( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ssz( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ssz( 
            /* [in] */ RtFloat newVal) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdComponentsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdComponents * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdComponents * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdComponents * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdComponents * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdComponents * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdComponents * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdComponents * 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_tx )( 
            IRdComponents * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_tx )( 
            IRdComponents * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ty )( 
            IRdComponents * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ty )( 
            IRdComponents * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_tz )( 
            IRdComponents * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_tz )( 
            IRdComponents * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_roll )( 
            IRdComponents * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_roll )( 
            IRdComponents * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_pitch )( 
            IRdComponents * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_pitch )( 
            IRdComponents * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_yaw )( 
            IRdComponents * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_yaw )( 
            IRdComponents * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sx )( 
            IRdComponents * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_sx )( 
            IRdComponents * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sy )( 
            IRdComponents * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_sy )( 
            IRdComponents * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_sz )( 
            IRdComponents * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_sz )( 
            IRdComponents * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ssx )( 
            IRdComponents * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ssx )( 
            IRdComponents * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ssy )( 
            IRdComponents * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ssy )( 
            IRdComponents * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ssz )( 
            IRdComponents * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ssz )( 
            IRdComponents * This,
            /* [in] */ RtFloat newVal);
        
        END_INTERFACE
    } IRdComponentsVtbl;

    interface IRdComponents
    {
        CONST_VTBL struct IRdComponentsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdComponents_get_tx(This,pVal)	\
    (This)->lpVtbl -> get_tx(This,pVal)

#define IRdComponents_put_tx(This,newVal)	\
    (This)->lpVtbl -> put_tx(This,newVal)

#define IRdComponents_get_ty(This,pVal)	\
    (This)->lpVtbl -> get_ty(This,pVal)

#define IRdComponents_put_ty(This,newVal)	\
    (This)->lpVtbl -> put_ty(This,newVal)

#define IRdComponents_get_tz(This,pVal)	\
    (This)->lpVtbl -> get_tz(This,pVal)

#define IRdComponents_put_tz(This,newVal)	\
    (This)->lpVtbl -> put_tz(This,newVal)

#define IRdComponents_get_roll(This,pVal)	\
    (This)->lpVtbl -> get_roll(This,pVal)

#define IRdComponents_put_roll(This,newVal)	\
    (This)->lpVtbl -> put_roll(This,newVal)

#define IRdComponents_get_pitch(This,pVal)	\
    (This)->lpVtbl -> get_pitch(This,pVal)

#define IRdComponents_put_pitch(This,newVal)	\
    (This)->lpVtbl -> put_pitch(This,newVal)

#define IRdComponents_get_yaw(This,pVal)	\
    (This)->lpVtbl -> get_yaw(This,pVal)

#define IRdComponents_put_yaw(This,newVal)	\
    (This)->lpVtbl -> put_yaw(This,newVal)

#define IRdComponents_get_sx(This,pVal)	\
    (This)->lpVtbl -> get_sx(This,pVal)

#define IRdComponents_put_sx(This,newVal)	\
    (This)->lpVtbl -> put_sx(This,newVal)

#define IRdComponents_get_sy(This,pVal)	\
    (This)->lpVtbl -> get_sy(This,pVal)

#define IRdComponents_put_sy(This,newVal)	\
    (This)->lpVtbl -> put_sy(This,newVal)

#define IRdComponents_get_sz(This,pVal)	\
    (This)->lpVtbl -> get_sz(This,pVal)

#define IRdComponents_put_sz(This,newVal)	\
    (This)->lpVtbl -> put_sz(This,newVal)

#define IRdComponents_get_ssx(This,pVal)	\
    (This)->lpVtbl -> get_ssx(This,pVal)

#define IRdComponents_put_ssx(This,newVal)	\
    (This)->lpVtbl -> put_ssx(This,newVal)

#define IRdComponents_get_ssy(This,pVal)	\
    (This)->lpVtbl -> get_ssy(This,pVal)

#define IRdComponents_put_ssy(This,newVal)	\
    (This)->lpVtbl -> put_ssy(This,newVal)

#define IRdComponents_get_ssz(This,pVal)	\
    (This)->lpVtbl -> get_ssz(This,pVal)

#define IRdComponents_put_ssz(This,newVal)	\
    (This)->lpVtbl -> put_ssz(This,newVal)

#endif /* COBJMACROS */


#endif 	/* C style interface */



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


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdComponents_put_tx_Proxy( 
    IRdComponents * This,
    /* [in] */ RtFloat newVal);


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


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


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdComponents_put_ty_Proxy( 
    IRdComponents * This,
    /* [in] */ RtFloat newVal);


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


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


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdComponents_put_tz_Proxy( 
    IRdComponents * This,
    /* [in] */ RtFloat newVal);


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


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


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdComponents_put_roll_Proxy( 
    IRdComponents * This,
    /* [in] */ RtFloat newVal);


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


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


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdComponents_put_pitch_Proxy( 
    IRdComponents * This,
    /* [in] */ RtFloat newVal);


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


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


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdComponents_put_yaw_Proxy( 
    IRdComponents * This,
    /* [in] */ RtFloat newVal);


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


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


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdComponents_put_sx_Proxy( 
    IRdComponents * This,
    /* [in] */ RtFloat newVal);


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


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


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdComponents_put_sy_Proxy( 
    IRdComponents * This,
    /* [in] */ RtFloat newVal);


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


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


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdComponents_put_sz_Proxy( 
    IRdComponents * This,
    /* [in] */ RtFloat newVal);


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


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


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdComponents_put_ssx_Proxy( 
    IRdComponents * This,
    /* [in] */ RtFloat newVal);


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


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


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdComponents_put_ssy_Proxy( 
    IRdComponents * This,
    /* [in] */ RtFloat newVal);


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


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


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdComponents_put_ssz_Proxy( 
    IRdComponents * This,
    /* [in] */ RtFloat newVal);


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



#endif 	/* __IRdComponents_INTERFACE_DEFINED__ */


#ifndef __IRdVertex_INTERFACE_DEFINED__
#define __IRdVertex_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdVertex;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("FF4D75F8-3846-4636-8083-BB60D44FB01A")
    IRdVertex : public IUnknown
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_Value( 
            /* [retval][out] */ RtPoint *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Value( 
            /* [in] */ RtPoint newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_x( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_x( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_y( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_y( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_z( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_z( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Normalize( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetLength( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DotProduct( 
            /* [in] */ RtFloat fCoef) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ IRdVertex *pV) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Sub( 
            /* [in] */ IRdVertex *pV) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDistanceFrom( 
            /* [in] */ IRdVertex *pV,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SProduct( 
            /* [in] */ IRdVertex *pV,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XProduct( 
            /* [in] */ IRdVertex *pV,
            /* [retval][out] */ IRdVertex **pCross) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdVertexVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdVertex * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdVertex * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdVertex * This);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Value )( 
            IRdVertex * This,
            /* [retval][out] */ RtPoint *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Value )( 
            IRdVertex * This,
            /* [in] */ RtPoint newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_x )( 
            IRdVertex * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_x )( 
            IRdVertex * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_y )( 
            IRdVertex * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_y )( 
            IRdVertex * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_z )( 
            IRdVertex * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_z )( 
            IRdVertex * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Normalize )( 
            IRdVertex * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLength )( 
            IRdVertex * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DotProduct )( 
            IRdVertex * This,
            /* [in] */ RtFloat fCoef);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            IRdVertex * This,
            /* [in] */ IRdVertex *pV);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Sub )( 
            IRdVertex * This,
            /* [in] */ IRdVertex *pV);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDistanceFrom )( 
            IRdVertex * This,
            /* [in] */ IRdVertex *pV,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SProduct )( 
            IRdVertex * This,
            /* [in] */ IRdVertex *pV,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *XProduct )( 
            IRdVertex * This,
            /* [in] */ IRdVertex *pV,
            /* [retval][out] */ IRdVertex **pCross);
        
        END_INTERFACE
    } IRdVertexVtbl;

    interface IRdVertex
    {
        CONST_VTBL struct IRdVertexVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IRdVertex_get_Value(This,pVal)	\
    (This)->lpVtbl -> get_Value(This,pVal)

#define IRdVertex_put_Value(This,newVal)	\
    (This)->lpVtbl -> put_Value(This,newVal)

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

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

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

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

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

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

#define IRdVertex_Normalize(This)	\
    (This)->lpVtbl -> Normalize(This)

#define IRdVertex_GetLength(This,pVal)	\
    (This)->lpVtbl -> GetLength(This,pVal)

#define IRdVertex_DotProduct(This,fCoef)	\
    (This)->lpVtbl -> DotProduct(This,fCoef)

#define IRdVertex_Add(This,pV)	\
    (This)->lpVtbl -> Add(This,pV)

#define IRdVertex_Sub(This,pV)	\
    (This)->lpVtbl -> Sub(This,pV)

#define IRdVertex_GetDistanceFrom(This,pV,pVal)	\
    (This)->lpVtbl -> GetDistanceFrom(This,pV,pVal)

#define IRdVertex_SProduct(This,pV,pVal)	\
    (This)->lpVtbl -> SProduct(This,pV,pVal)

#define IRdVertex_XProduct(This,pV,pCross)	\
    (This)->lpVtbl -> XProduct(This,pV,pCross)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE IRdVertex_get_Value_Proxy( 
    IRdVertex * This,
    /* [retval][out] */ RtPoint *pVal);


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertex_put_Value_Proxy( 
    IRdVertex * This,
    /* [in] */ RtPoint newVal);


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


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


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertex_put_x_Proxy( 
    IRdVertex * This,
    /* [in] */ RtFloat newVal);


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


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


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertex_put_y_Proxy( 
    IRdVertex * This,
    /* [in] */ RtFloat newVal);


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


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


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertex_put_z_Proxy( 
    IRdVertex * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertex_Normalize_Proxy( 
    IRdVertex * This);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertex_GetLength_Proxy( 
    IRdVertex * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertex_DotProduct_Proxy( 
    IRdVertex * This,
    /* [in] */ RtFloat fCoef);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertex_Add_Proxy( 
    IRdVertex * This,
    /* [in] */ IRdVertex *pV);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertex_Sub_Proxy( 
    IRdVertex * This,
    /* [in] */ IRdVertex *pV);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertex_GetDistanceFrom_Proxy( 
    IRdVertex * This,
    /* [in] */ IRdVertex *pV,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertex_SProduct_Proxy( 
    IRdVertex * This,
    /* [in] */ IRdVertex *pV,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertex_XProduct_Proxy( 
    IRdVertex * This,
    /* [in] */ IRdVertex *pV,
    /* [retval][out] */ IRdVertex **pCross);


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



#endif 	/* __IRdVertex_INTERFACE_DEFINED__ */


#ifndef __IRdVertexDisp_INTERFACE_DEFINED__
#define __IRdVertexDisp_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdVertexDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("105f8f57-060d-456c-8a38-9e07aeb89edb")
    IRdVertexDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_x( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_x( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_y( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_y( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_z( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_z( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Normalize( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetLength( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE DotProduct( 
            /* [in] */ RtFloat fCoef) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Add( 
            /* [in] */ IRdVertexDisp *pV) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Sub( 
            /* [in] */ IRdVertexDisp *pV) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetDistanceFrom( 
            /* [in] */ IRdVertexDisp *pV,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SProduct( 
            /* [in] */ IRdVertexDisp *pV,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE XProduct( 
            /* [in] */ IRdVertexDisp *pV,
            /* [retval][out] */ IRdVertexDisp **pCross) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdVertexDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdVertexDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdVertexDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdVertexDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdVertexDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdVertexDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdVertexDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdVertexDisp * 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_x )( 
            IRdVertexDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_x )( 
            IRdVertexDisp * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_y )( 
            IRdVertexDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_y )( 
            IRdVertexDisp * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_z )( 
            IRdVertexDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_z )( 
            IRdVertexDisp * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Normalize )( 
            IRdVertexDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetLength )( 
            IRdVertexDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *DotProduct )( 
            IRdVertexDisp * This,
            /* [in] */ RtFloat fCoef);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Add )( 
            IRdVertexDisp * This,
            /* [in] */ IRdVertexDisp *pV);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Sub )( 
            IRdVertexDisp * This,
            /* [in] */ IRdVertexDisp *pV);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetDistanceFrom )( 
            IRdVertexDisp * This,
            /* [in] */ IRdVertexDisp *pV,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SProduct )( 
            IRdVertexDisp * This,
            /* [in] */ IRdVertexDisp *pV,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *XProduct )( 
            IRdVertexDisp * This,
            /* [in] */ IRdVertexDisp *pV,
            /* [retval][out] */ IRdVertexDisp **pCross);
        
        END_INTERFACE
    } IRdVertexDispVtbl;

    interface IRdVertexDisp
    {
        CONST_VTBL struct IRdVertexDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


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

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

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

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

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

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

#define IRdVertexDisp_Normalize(This)	\
    (This)->lpVtbl -> Normalize(This)

#define IRdVertexDisp_GetLength(This,pVal)	\
    (This)->lpVtbl -> GetLength(This,pVal)

#define IRdVertexDisp_DotProduct(This,fCoef)	\
    (This)->lpVtbl -> DotProduct(This,fCoef)

#define IRdVertexDisp_Add(This,pV)	\
    (This)->lpVtbl -> Add(This,pV)

#define IRdVertexDisp_Sub(This,pV)	\
    (This)->lpVtbl -> Sub(This,pV)

#define IRdVertexDisp_GetDistanceFrom(This,pV,pVal)	\
    (This)->lpVtbl -> GetDistanceFrom(This,pV,pVal)

#define IRdVertexDisp_SProduct(This,pV,pVal)	\
    (This)->lpVtbl -> SProduct(This,pV,pVal)

#define IRdVertexDisp_XProduct(This,pV,pCross)	\
    (This)->lpVtbl -> XProduct(This,pV,pCross)

#endif /* COBJMACROS */


#endif 	/* C style interface */



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


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexDisp_put_x_Proxy( 
    IRdVertexDisp * This,
    /* [in] */ RtFloat newVal);


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


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


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexDisp_put_y_Proxy( 
    IRdVertexDisp * This,
    /* [in] */ RtFloat newVal);


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


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


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


/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE IRdVertexDisp_put_z_Proxy( 
    IRdVertexDisp * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexDisp_Normalize_Proxy( 
    IRdVertexDisp * This);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexDisp_GetLength_Proxy( 
    IRdVertexDisp * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexDisp_DotProduct_Proxy( 
    IRdVertexDisp * This,
    /* [in] */ RtFloat fCoef);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexDisp_Add_Proxy( 
    IRdVertexDisp * This,
    /* [in] */ IRdVertexDisp *pV);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexDisp_Sub_Proxy( 
    IRdVertexDisp * This,
    /* [in] */ IRdVertexDisp *pV);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexDisp_GetDistanceFrom_Proxy( 
    IRdVertexDisp * This,
    /* [in] */ IRdVertexDisp *pV,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexDisp_SProduct_Proxy( 
    IRdVertexDisp * This,
    /* [in] */ IRdVertexDisp *pV,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdVertexDisp_XProduct_Proxy( 
    IRdVertexDisp * This,
    /* [in] */ IRdVertexDisp *pV,
    /* [retval][out] */ IRdVertexDisp **pCross);


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



#endif 	/* __IRdVertexDisp_INTERFACE_DEFINED__ */


#ifndef __IRdMatrixfDisp_INTERFACE_DEFINED__
#define __IRdMatrixfDisp_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdMatrixfDisp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DCBC7AF6-7AD6-4b4f-B43F-1402C5CDBE34")
    IRdMatrixfDisp : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadIdentity( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LockData( 
            /* [retval][out] */ RtFloat **pMatrix) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UnlockData( void) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ RtUlong i,
            /* [in] */ RtUlong j,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetAt( 
            /* [in] */ RtUlong i,
            /* [in] */ RtUlong j,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RotationAxis( 
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z,
            /* [in] */ RtFloat angle) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Mult( 
            /* [in] */ IDispatch *pM) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PreMult( 
            /* [in] */ IDispatch *pM) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAxisX( 
            /* [retval][out] */ IDispatch **ppVect) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAxisY( 
            /* [retval][out] */ IDispatch **ppVect) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetAxisZ( 
            /* [retval][out] */ IDispatch **ppVect) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTransX( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetTransX( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTransY( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetTransY( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTransZ( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetTransZ( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetRoll( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetRoll( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetPitch( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetPitch( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetYaw( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetYaw( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetScaleX( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetScaleX( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetScaleY( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetScaleY( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetScaleZ( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetScaleZ( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetShearX( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetShearX( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetShearY( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetShearY( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetShearZ( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetShearZ( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE AddScaleShear( 
            /* [in] */ RtFloat sx,
            /* [in] */ RtFloat sy,
            /* [in] */ RtFloat sz,
            /* [in] */ RtFloat sxy,
            /* [in] */ RtFloat sxz,
            /* [in] */ RtFloat syz) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Rotate( 
            /* [in] */ IDispatch *center,
            /* [in] */ IDispatch *axes,
            /* [in] */ RtFloat angle) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Decompose( 
            /* [retval][out] */ IDispatch **ppComponents) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Compose( 
            /* [in] */ IDispatch *pComponents) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Shift( 
            /* [in] */ IDispatch *pShift) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LoadMatrix( 
            /* [in] */ IDispatch *pM) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Invert( 
            /* [retval][out] */ IDispatch **pM) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Transpose( 
            /* [retval][out] */ IDispatch **pM) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ScaleLocal( 
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Scale( 
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Shear( 
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE TranslateLocal( 
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Translate( 
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RotateEuler( 
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RotateEulerPRY( 
            /* [in] */ RtFloat fPitch,
            /* [in] */ RtFloat fRoll,
            /* [in] */ RtFloat fYaw) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RotationX( 
            /* [in] */ RtFloat x) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RotationY( 
            /* [in] */ RtFloat y) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE RotationZ( 
            /* [in] */ RtFloat z) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE TransformPoint( 
            /* [in] */ IDispatch *SourcePoint,
            /* [retval][out] */ IDispatch **pDestPoint) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE TransformVector( 
            /* [in] */ IDispatch *SourceVect,
            /* [retval][out] */ IDispatch **pDestVect) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE LookAt( 
            /* [in] */ IDispatch *pEye,
            /* [in] */ IDispatch *pAt,
            /* [in] */ IDispatch *pUp) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE MakeRotTrans( 
            /* [in] */ IDispatch *center,
            /* [in] */ IDispatch *axis,
            /* [in] */ RtFloat angle) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetTrans( 
            /* [retval][out] */ IDispatch **ppVect) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE SetTrans( 
            /* [in] */ IDispatch *pVect) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdMatrixfDispVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdMatrixfDisp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdMatrixfDisp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdMatrixfDisp * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRdMatrixfDisp * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRdMatrixfDisp * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRdMatrixfDisp * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRdMatrixfDisp * 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 *LoadIdentity )( 
            IRdMatrixfDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LockData )( 
            IRdMatrixfDisp * This,
            /* [retval][out] */ RtFloat **pMatrix);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *UnlockData )( 
            IRdMatrixfDisp * This);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtUlong i,
            /* [in] */ RtUlong j,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetAt )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtUlong i,
            /* [in] */ RtUlong j,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RotationAxis )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z,
            /* [in] */ RtFloat angle);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Mult )( 
            IRdMatrixfDisp * This,
            /* [in] */ IDispatch *pM);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PreMult )( 
            IRdMatrixfDisp * This,
            /* [in] */ IDispatch *pM);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAxisX )( 
            IRdMatrixfDisp * This,
            /* [retval][out] */ IDispatch **ppVect);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAxisY )( 
            IRdMatrixfDisp * This,
            /* [retval][out] */ IDispatch **ppVect);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetAxisZ )( 
            IRdMatrixfDisp * This,
            /* [retval][out] */ IDispatch **ppVect);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTransX )( 
            IRdMatrixfDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetTransX )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTransY )( 
            IRdMatrixfDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetTransY )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTransZ )( 
            IRdMatrixfDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetTransZ )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetRoll )( 
            IRdMatrixfDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetRoll )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetPitch )( 
            IRdMatrixfDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetPitch )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetYaw )( 
            IRdMatrixfDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetYaw )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetScaleX )( 
            IRdMatrixfDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetScaleX )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetScaleY )( 
            IRdMatrixfDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetScaleY )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetScaleZ )( 
            IRdMatrixfDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetScaleZ )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetShearX )( 
            IRdMatrixfDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetShearX )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetShearY )( 
            IRdMatrixfDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetShearY )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetShearZ )( 
            IRdMatrixfDisp * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetShearZ )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *AddScaleShear )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat sx,
            /* [in] */ RtFloat sy,
            /* [in] */ RtFloat sz,
            /* [in] */ RtFloat sxy,
            /* [in] */ RtFloat sxz,
            /* [in] */ RtFloat syz);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IRdMatrixfDisp * This,
            /* [in] */ IDispatch *center,
            /* [in] */ IDispatch *axes,
            /* [in] */ RtFloat angle);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Decompose )( 
            IRdMatrixfDisp * This,
            /* [retval][out] */ IDispatch **ppComponents);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Compose )( 
            IRdMatrixfDisp * This,
            /* [in] */ IDispatch *pComponents);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Shift )( 
            IRdMatrixfDisp * This,
            /* [in] */ IDispatch *pShift);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LoadMatrix )( 
            IRdMatrixfDisp * This,
            /* [in] */ IDispatch *pM);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Invert )( 
            IRdMatrixfDisp * This,
            /* [retval][out] */ IDispatch **pM);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Transpose )( 
            IRdMatrixfDisp * This,
            /* [retval][out] */ IDispatch **pM);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ScaleLocal )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Scale )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Shear )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TranslateLocal )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Translate )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RotateEuler )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RotateEulerPRY )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat fPitch,
            /* [in] */ RtFloat fRoll,
            /* [in] */ RtFloat fYaw);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RotationX )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat x);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RotationY )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat y);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *RotationZ )( 
            IRdMatrixfDisp * This,
            /* [in] */ RtFloat z);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformPoint )( 
            IRdMatrixfDisp * This,
            /* [in] */ IDispatch *SourcePoint,
            /* [retval][out] */ IDispatch **pDestPoint);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *TransformVector )( 
            IRdMatrixfDisp * This,
            /* [in] */ IDispatch *SourceVect,
            /* [retval][out] */ IDispatch **pDestVect);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *LookAt )( 
            IRdMatrixfDisp * This,
            /* [in] */ IDispatch *pEye,
            /* [in] */ IDispatch *pAt,
            /* [in] */ IDispatch *pUp);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *MakeRotTrans )( 
            IRdMatrixfDisp * This,
            /* [in] */ IDispatch *center,
            /* [in] */ IDispatch *axis,
            /* [in] */ RtFloat angle);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *GetTrans )( 
            IRdMatrixfDisp * This,
            /* [retval][out] */ IDispatch **ppVect);
        
        /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *SetTrans )( 
            IRdMatrixfDisp * This,
            /* [in] */ IDispatch *pVect);
        
        END_INTERFACE
    } IRdMatrixfDispVtbl;

    interface IRdMatrixfDisp
    {
        CONST_VTBL struct IRdMatrixfDispVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRdMatrixfDisp_LoadIdentity(This)	\
    (This)->lpVtbl -> LoadIdentity(This)

#define IRdMatrixfDisp_LockData(This,pMatrix)	\
    (This)->lpVtbl -> LockData(This,pMatrix)

#define IRdMatrixfDisp_UnlockData(This)	\
    (This)->lpVtbl -> UnlockData(This)

#define IRdMatrixfDisp_GetAt(This,i,j,pVal)	\
    (This)->lpVtbl -> GetAt(This,i,j,pVal)

#define IRdMatrixfDisp_SetAt(This,i,j,newVal)	\
    (This)->lpVtbl -> SetAt(This,i,j,newVal)

#define IRdMatrixfDisp_RotationAxis(This,x,y,z,angle)	\
    (This)->lpVtbl -> RotationAxis(This,x,y,z,angle)

#define IRdMatrixfDisp_Mult(This,pM)	\
    (This)->lpVtbl -> Mult(This,pM)

#define IRdMatrixfDisp_PreMult(This,pM)	\
    (This)->lpVtbl -> PreMult(This,pM)

#define IRdMatrixfDisp_GetAxisX(This,ppVect)	\
    (This)->lpVtbl -> GetAxisX(This,ppVect)

#define IRdMatrixfDisp_GetAxisY(This,ppVect)	\
    (This)->lpVtbl -> GetAxisY(This,ppVect)

#define IRdMatrixfDisp_GetAxisZ(This,ppVect)	\
    (This)->lpVtbl -> GetAxisZ(This,ppVect)

#define IRdMatrixfDisp_GetTransX(This,pVal)	\
    (This)->lpVtbl -> GetTransX(This,pVal)

#define IRdMatrixfDisp_SetTransX(This,newVal)	\
    (This)->lpVtbl -> SetTransX(This,newVal)

#define IRdMatrixfDisp_GetTransY(This,pVal)	\
    (This)->lpVtbl -> GetTransY(This,pVal)

#define IRdMatrixfDisp_SetTransY(This,newVal)	\
    (This)->lpVtbl -> SetTransY(This,newVal)

#define IRdMatrixfDisp_GetTransZ(This,pVal)	\
    (This)->lpVtbl -> GetTransZ(This,pVal)

#define IRdMatrixfDisp_SetTransZ(This,newVal)	\
    (This)->lpVtbl -> SetTransZ(This,newVal)

#define IRdMatrixfDisp_GetRoll(This,pVal)	\
    (This)->lpVtbl -> GetRoll(This,pVal)

#define IRdMatrixfDisp_SetRoll(This,newVal)	\
    (This)->lpVtbl -> SetRoll(This,newVal)

#define IRdMatrixfDisp_GetPitch(This,pVal)	\
    (This)->lpVtbl -> GetPitch(This,pVal)

#define IRdMatrixfDisp_SetPitch(This,newVal)	\
    (This)->lpVtbl -> SetPitch(This,newVal)

#define IRdMatrixfDisp_GetYaw(This,pVal)	\
    (This)->lpVtbl -> GetYaw(This,pVal)

#define IRdMatrixfDisp_SetYaw(This,newVal)	\
    (This)->lpVtbl -> SetYaw(This,newVal)

#define IRdMatrixfDisp_GetScaleX(This,pVal)	\
    (This)->lpVtbl -> GetScaleX(This,pVal)

#define IRdMatrixfDisp_SetScaleX(This,newVal)	\
    (This)->lpVtbl -> SetScaleX(This,newVal)

#define IRdMatrixfDisp_GetScaleY(This,pVal)	\
    (This)->lpVtbl -> GetScaleY(This,pVal)

#define IRdMatrixfDisp_SetScaleY(This,newVal)	\
    (This)->lpVtbl -> SetScaleY(This,newVal)

#define IRdMatrixfDisp_GetScaleZ(This,pVal)	\
    (This)->lpVtbl -> GetScaleZ(This,pVal)

#define IRdMatrixfDisp_SetScaleZ(This,newVal)	\
    (This)->lpVtbl -> SetScaleZ(This,newVal)

#define IRdMatrixfDisp_GetShearX(This,pVal)	\
    (This)->lpVtbl -> GetShearX(This,pVal)

#define IRdMatrixfDisp_SetShearX(This,newVal)	\
    (This)->lpVtbl -> SetShearX(This,newVal)

#define IRdMatrixfDisp_GetShearY(This,pVal)	\
    (This)->lpVtbl -> GetShearY(This,pVal)

#define IRdMatrixfDisp_SetShearY(This,newVal)	\
    (This)->lpVtbl -> SetShearY(This,newVal)

#define IRdMatrixfDisp_GetShearZ(This,pVal)	\
    (This)->lpVtbl -> GetShearZ(This,pVal)

#define IRdMatrixfDisp_SetShearZ(This,newVal)	\
    (This)->lpVtbl -> SetShearZ(This,newVal)

#define IRdMatrixfDisp_AddScaleShear(This,sx,sy,sz,sxy,sxz,syz)	\
    (This)->lpVtbl -> AddScaleShear(This,sx,sy,sz,sxy,sxz,syz)

#define IRdMatrixfDisp_Rotate(This,center,axes,angle)	\
    (This)->lpVtbl -> Rotate(This,center,axes,angle)

#define IRdMatrixfDisp_Decompose(This,ppComponents)	\
    (This)->lpVtbl -> Decompose(This,ppComponents)

#define IRdMatrixfDisp_Compose(This,pComponents)	\
    (This)->lpVtbl -> Compose(This,pComponents)

#define IRdMatrixfDisp_Shift(This,pShift)	\
    (This)->lpVtbl -> Shift(This,pShift)

#define IRdMatrixfDisp_LoadMatrix(This,pM)	\
    (This)->lpVtbl -> LoadMatrix(This,pM)

#define IRdMatrixfDisp_Invert(This,pM)	\
    (This)->lpVtbl -> Invert(This,pM)

#define IRdMatrixfDisp_Transpose(This,pM)	\
    (This)->lpVtbl -> Transpose(This,pM)

#define IRdMatrixfDisp_ScaleLocal(This,x,y,z)	\
    (This)->lpVtbl -> ScaleLocal(This,x,y,z)

#define IRdMatrixfDisp_Scale(This,x,y,z)	\
    (This)->lpVtbl -> Scale(This,x,y,z)

#define IRdMatrixfDisp_Shear(This,x,y,z)	\
    (This)->lpVtbl -> Shear(This,x,y,z)

#define IRdMatrixfDisp_TranslateLocal(This,x,y,z)	\
    (This)->lpVtbl -> TranslateLocal(This,x,y,z)

#define IRdMatrixfDisp_Translate(This,x,y,z)	\
    (This)->lpVtbl -> Translate(This,x,y,z)

#define IRdMatrixfDisp_RotateEuler(This,x,y,z)	\
    (This)->lpVtbl -> RotateEuler(This,x,y,z)

#define IRdMatrixfDisp_RotateEulerPRY(This,fPitch,fRoll,fYaw)	\
    (This)->lpVtbl -> RotateEulerPRY(This,fPitch,fRoll,fYaw)

#define IRdMatrixfDisp_RotationX(This,x)	\
    (This)->lpVtbl -> RotationX(This,x)

#define IRdMatrixfDisp_RotationY(This,y)	\
    (This)->lpVtbl -> RotationY(This,y)

#define IRdMatrixfDisp_RotationZ(This,z)	\
    (This)->lpVtbl -> RotationZ(This,z)

#define IRdMatrixfDisp_TransformPoint(This,SourcePoint,pDestPoint)	\
    (This)->lpVtbl -> TransformPoint(This,SourcePoint,pDestPoint)

#define IRdMatrixfDisp_TransformVector(This,SourceVect,pDestVect)	\
    (This)->lpVtbl -> TransformVector(This,SourceVect,pDestVect)

#define IRdMatrixfDisp_LookAt(This,pEye,pAt,pUp)	\
    (This)->lpVtbl -> LookAt(This,pEye,pAt,pUp)

#define IRdMatrixfDisp_MakeRotTrans(This,center,axis,angle)	\
    (This)->lpVtbl -> MakeRotTrans(This,center,axis,angle)

#define IRdMatrixfDisp_GetTrans(This,ppVect)	\
    (This)->lpVtbl -> GetTrans(This,ppVect)

#define IRdMatrixfDisp_SetTrans(This,pVect)	\
    (This)->lpVtbl -> SetTrans(This,pVect)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_LoadIdentity_Proxy( 
    IRdMatrixfDisp * This);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_LockData_Proxy( 
    IRdMatrixfDisp * This,
    /* [retval][out] */ RtFloat **pMatrix);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_UnlockData_Proxy( 
    IRdMatrixfDisp * This);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_GetAt_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtUlong i,
    /* [in] */ RtUlong j,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_SetAt_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtUlong i,
    /* [in] */ RtUlong j,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_RotationAxis_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat x,
    /* [in] */ RtFloat y,
    /* [in] */ RtFloat z,
    /* [in] */ RtFloat angle);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_Mult_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ IDispatch *pM);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_PreMult_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ IDispatch *pM);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_GetAxisX_Proxy( 
    IRdMatrixfDisp * This,
    /* [retval][out] */ IDispatch **ppVect);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_GetAxisY_Proxy( 
    IRdMatrixfDisp * This,
    /* [retval][out] */ IDispatch **ppVect);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_GetAxisZ_Proxy( 
    IRdMatrixfDisp * This,
    /* [retval][out] */ IDispatch **ppVect);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_GetTransX_Proxy( 
    IRdMatrixfDisp * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_SetTransX_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_GetTransY_Proxy( 
    IRdMatrixfDisp * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_SetTransY_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_GetTransZ_Proxy( 
    IRdMatrixfDisp * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_SetTransZ_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_GetRoll_Proxy( 
    IRdMatrixfDisp * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_SetRoll_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_GetPitch_Proxy( 
    IRdMatrixfDisp * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_SetPitch_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_GetYaw_Proxy( 
    IRdMatrixfDisp * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_SetYaw_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_GetScaleX_Proxy( 
    IRdMatrixfDisp * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_SetScaleX_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_GetScaleY_Proxy( 
    IRdMatrixfDisp * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_SetScaleY_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_GetScaleZ_Proxy( 
    IRdMatrixfDisp * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_SetScaleZ_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_GetShearX_Proxy( 
    IRdMatrixfDisp * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_SetShearX_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_GetShearY_Proxy( 
    IRdMatrixfDisp * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_SetShearY_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_GetShearZ_Proxy( 
    IRdMatrixfDisp * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_SetShearZ_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_AddScaleShear_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat sx,
    /* [in] */ RtFloat sy,
    /* [in] */ RtFloat sz,
    /* [in] */ RtFloat sxy,
    /* [in] */ RtFloat sxz,
    /* [in] */ RtFloat syz);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_Rotate_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ IDispatch *center,
    /* [in] */ IDispatch *axes,
    /* [in] */ RtFloat angle);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_Decompose_Proxy( 
    IRdMatrixfDisp * This,
    /* [retval][out] */ IDispatch **ppComponents);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_Compose_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ IDispatch *pComponents);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_Shift_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ IDispatch *pShift);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_LoadMatrix_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ IDispatch *pM);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_Invert_Proxy( 
    IRdMatrixfDisp * This,
    /* [retval][out] */ IDispatch **pM);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_Transpose_Proxy( 
    IRdMatrixfDisp * This,
    /* [retval][out] */ IDispatch **pM);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_ScaleLocal_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat x,
    /* [in] */ RtFloat y,
    /* [in] */ RtFloat z);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_Scale_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat x,
    /* [in] */ RtFloat y,
    /* [in] */ RtFloat z);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_Shear_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat x,
    /* [in] */ RtFloat y,
    /* [in] */ RtFloat z);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_TranslateLocal_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat x,
    /* [in] */ RtFloat y,
    /* [in] */ RtFloat z);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_Translate_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat x,
    /* [in] */ RtFloat y,
    /* [in] */ RtFloat z);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_RotateEuler_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat x,
    /* [in] */ RtFloat y,
    /* [in] */ RtFloat z);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_RotateEulerPRY_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat fPitch,
    /* [in] */ RtFloat fRoll,
    /* [in] */ RtFloat fYaw);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_RotationX_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat x);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_RotationY_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat y);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_RotationZ_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ RtFloat z);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_TransformPoint_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ IDispatch *SourcePoint,
    /* [retval][out] */ IDispatch **pDestPoint);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_TransformVector_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ IDispatch *SourceVect,
    /* [retval][out] */ IDispatch **pDestVect);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_LookAt_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ IDispatch *pEye,
    /* [in] */ IDispatch *pAt,
    /* [in] */ IDispatch *pUp);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_MakeRotTrans_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ IDispatch *center,
    /* [in] */ IDispatch *axis,
    /* [in] */ RtFloat angle);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_GetTrans_Proxy( 
    IRdMatrixfDisp * This,
    /* [retval][out] */ IDispatch **ppVect);


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


/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRdMatrixfDisp_SetTrans_Proxy( 
    IRdMatrixfDisp * This,
    /* [in] */ IDispatch *pVect);


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



#endif 	/* __IRdMatrixfDisp_INTERFACE_DEFINED__ */


#ifndef __IRdMatrixf_INTERFACE_DEFINED__
#define __IRdMatrixf_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRdMatrixf;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("CA305E60-1E32-4565-A388-7BF97C40C707")
    IRdMatrixf : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LoadIdentity( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LockData( 
            /* [retval][out] */ RtFloat **pMatrix) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnlockData( void) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetAt( 
            /* [in] */ RtUlong i,
            /* [in] */ RtUlong j,
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetAt( 
            /* [in] */ RtUlong i,
            /* [in] */ RtUlong j,
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RotationAxis( 
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z,
            /* [in] */ RtFloat angle) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Mult( 
            /* [in] */ RtMatrixf *pM) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE PreMult( 
            /* [in] */ RtMatrixf *pM) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetAxisX( 
            /* [retval][out] */ IRdVertex **ppVect) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetAxisY( 
            /* [retval][out] */ IRdVertex **ppVect) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetAxisZ( 
            /* [retval][out] */ IRdVertex **ppVect) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetTransX( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetTransX( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetTransY( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetTransY( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetTransZ( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetTransZ( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetRoll( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetRoll( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPitch( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetPitch( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetYaw( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetYaw( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetScaleX( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetScaleX( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetScaleY( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetScaleY( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetScaleZ( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetScaleZ( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetShearX( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetShearX( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetShearY( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetShearY( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetShearZ( 
            /* [retval][out] */ RtFloat *pVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetShearZ( 
            /* [in] */ RtFloat newVal) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE AddScaleShear( 
            /* [in] */ RtFloat sx,
            /* [in] */ RtFloat sy,
            /* [in] */ RtFloat sz,
            /* [in] */ RtFloat sxy,
            /* [in] */ RtFloat sxz,
            /* [in] */ RtFloat syz) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Rotate( 
            /* [in] */ IRdVertex *center,
            /* [in] */ IRdVertex *axes,
            /* [in] */ RtFloat angle) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Decompose( 
            /* [out] */ RtMatrixf *pM,
            /* [out] */ RtFloat *ss) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Shift( 
            /* [in] */ IRdVertex *pShift) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LoadMatrix( 
            /* [in] */ RtMatrixf *pM) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Invert( 
            /* [out] */ RtMatrixf *pM) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Transpose( 
            /* [in] */ RtMatrixf *pM) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE ScaleLocal( 
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Scale( 
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Shear( 
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE TranslateLocal( 
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE Translate( 
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RotateEuler( 
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RotateEulerPRY( 
            /* [in] */ RtFloat fPitch,
            /* [in] */ RtFloat fRoll,
            /* [in] */ RtFloat fYaw) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RotationX( 
            /* [in] */ RtFloat x) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RotationY( 
            /* [in] */ RtFloat y) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RotationZ( 
            /* [in] */ RtFloat 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;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE LookAt( 
            /* [in] */ RtVector3f *pEye,
            /* [in] */ RtVector3f *pAt,
            /* [in] */ RtVector3f *pUp) = 0;
        
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE MakeRotTrans( 
            /* [in] */ RtPoint center,
            /* [in] */ RtPoint axis,
            /* [in] */ RtFloat angle) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRdMatrixfVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRdMatrixf * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRdMatrixf * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRdMatrixf * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LoadIdentity )( 
            IRdMatrixf * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LockData )( 
            IRdMatrixf * This,
            /* [retval][out] */ RtFloat **pMatrix);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnlockData )( 
            IRdMatrixf * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAt )( 
            IRdMatrixf * This,
            /* [in] */ RtUlong i,
            /* [in] */ RtUlong j,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetAt )( 
            IRdMatrixf * This,
            /* [in] */ RtUlong i,
            /* [in] */ RtUlong j,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RotationAxis )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z,
            /* [in] */ RtFloat angle);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Mult )( 
            IRdMatrixf * This,
            /* [in] */ RtMatrixf *pM);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *PreMult )( 
            IRdMatrixf * This,
            /* [in] */ RtMatrixf *pM);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAxisX )( 
            IRdMatrixf * This,
            /* [retval][out] */ IRdVertex **ppVect);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAxisY )( 
            IRdMatrixf * This,
            /* [retval][out] */ IRdVertex **ppVect);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetAxisZ )( 
            IRdMatrixf * This,
            /* [retval][out] */ IRdVertex **ppVect);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTransX )( 
            IRdMatrixf * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetTransX )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTransY )( 
            IRdMatrixf * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetTransY )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetTransZ )( 
            IRdMatrixf * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetTransZ )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetRoll )( 
            IRdMatrixf * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetRoll )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPitch )( 
            IRdMatrixf * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetPitch )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetYaw )( 
            IRdMatrixf * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetYaw )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetScaleX )( 
            IRdMatrixf * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetScaleX )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetScaleY )( 
            IRdMatrixf * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetScaleY )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetScaleZ )( 
            IRdMatrixf * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetScaleZ )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetShearX )( 
            IRdMatrixf * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetShearX )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetShearY )( 
            IRdMatrixf * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetShearY )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetShearZ )( 
            IRdMatrixf * This,
            /* [retval][out] */ RtFloat *pVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetShearZ )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat newVal);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *AddScaleShear )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat sx,
            /* [in] */ RtFloat sy,
            /* [in] */ RtFloat sz,
            /* [in] */ RtFloat sxy,
            /* [in] */ RtFloat sxz,
            /* [in] */ RtFloat syz);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Rotate )( 
            IRdMatrixf * This,
            /* [in] */ IRdVertex *center,
            /* [in] */ IRdVertex *axes,
            /* [in] */ RtFloat angle);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Decompose )( 
            IRdMatrixf * This,
            /* [out] */ RtMatrixf *pM,
            /* [out] */ RtFloat *ss);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Shift )( 
            IRdMatrixf * This,
            /* [in] */ IRdVertex *pShift);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LoadMatrix )( 
            IRdMatrixf * This,
            /* [in] */ RtMatrixf *pM);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Invert )( 
            IRdMatrixf * This,
            /* [out] */ RtMatrixf *pM);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Transpose )( 
            IRdMatrixf * This,
            /* [in] */ RtMatrixf *pM);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *ScaleLocal )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Scale )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Shear )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *TranslateLocal )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *Translate )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RotateEuler )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat x,
            /* [in] */ RtFloat y,
            /* [in] */ RtFloat z);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RotateEulerPRY )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat fPitch,
            /* [in] */ RtFloat fRoll,
            /* [in] */ RtFloat fYaw);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RotationX )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat x);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RotationY )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat y);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RotationZ )( 
            IRdMatrixf * This,
            /* [in] */ RtFloat z);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *TransformPoint )( 
            IRdMatrixf * This,
            /* [in] */ RtPoint SourcePoint,
            /* [out] */ RtPoint *pDestPoint);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *TransformVector )( 
            IRdMatrixf * This,
            /* [in] */ RtPoint SourceVect,
            /* [out] */ RtPoint *pDestVect);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *LookAt )( 
            IRdMatrixf * This,
            /* [in] */ RtVector3f *pEye,
            /* [in] */ RtVector3f *pAt,
            /* [in] */ RtVector3f *pUp);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *MakeRotTrans )( 
            IRdMatrixf * This,
            /* [in] */ RtPoint center,
            /* [in] */ RtPoint axis,
            /* [in] */ RtFloat angle);
        
        END_INTERFACE
    } IRdMatrixfVtbl;

    interface IRdMatrixf
    {
        CONST_VTBL struct IRdMatrixfVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IRdMatrixf_LoadIdentity(This)	\
    (This)->lpVtbl -> LoadIdentity(This)

#define IRdMatrixf_LockData(This,pMatrix)	\
    (This)->lpVtbl -> LockData(This,pMatrix)

#define IRdMatrixf_UnlockData(This)	\
    (This)->lpVtbl -> UnlockData(This)

#define IRdMatrixf_GetAt(This,i,j,pVal)	\
    (This)->lpVtbl -> GetAt(This,i,j,pVal)

#define IRdMatrixf_SetAt(This,i,j,newVal)	\
    (This)->lpVtbl -> SetAt(This,i,j,newVal)

#define IRdMatrixf_RotationAxis(This,x,y,z,angle)	\
    (This)->lpVtbl -> RotationAxis(This,x,y,z,angle)

#define IRdMatrixf_Mult(This,pM)	\
    (This)->lpVtbl -> Mult(This,pM)

#define IRdMatrixf_PreMult(This,pM)	\
    (This)->lpVtbl -> PreMult(This,pM)

#define IRdMatrixf_GetAxisX(This,ppVect)	\
    (This)->lpVtbl -> GetAxisX(This,ppVect)

#define IRdMatrixf_GetAxisY(This,ppVect)	\
    (This)->lpVtbl -> GetAxisY(This,ppVect)

#define IRdMatrixf_GetAxisZ(This,ppVect)	\
    (This)->lpVtbl -> GetAxisZ(This,ppVect)

#define IRdMatrixf_GetTransX(This,pVal)	\
    (This)->lpVtbl -> GetTransX(This,pVal)

#define IRdMatrixf_SetTransX(This,newVal)	\
    (This)->lpVtbl -> SetTransX(This,newVal)

#define IRdMatrixf_GetTransY(This,pVal)	\
    (This)->lpVtbl -> GetTransY(This,pVal)

#define IRdMatrixf_SetTransY(This,newVal)	\
    (This)->lpVtbl -> SetTransY(This,newVal)

#define IRdMatrixf_GetTransZ(This,pVal)	\
    (This)->lpVtbl -> GetTransZ(This,pVal)

#define IRdMatrixf_SetTransZ(This,newVal)	\
    (This)->lpVtbl -> SetTransZ(This,newVal)

#define IRdMatrixf_GetRoll(This,pVal)	\
    (This)->lpVtbl -> GetRoll(This,pVal)

#define IRdMatrixf_SetRoll(This,newVal)	\
    (This)->lpVtbl -> SetRoll(This,newVal)

#define IRdMatrixf_GetPitch(This,pVal)	\
    (This)->lpVtbl -> GetPitch(This,pVal)

#define IRdMatrixf_SetPitch(This,newVal)	\
    (This)->lpVtbl -> SetPitch(This,newVal)

#define IRdMatrixf_GetYaw(This,pVal)	\
    (This)->lpVtbl -> GetYaw(This,pVal)

#define IRdMatrixf_SetYaw(This,newVal)	\
    (This)->lpVtbl -> SetYaw(This,newVal)

#define IRdMatrixf_GetScaleX(This,pVal)	\
    (This)->lpVtbl -> GetScaleX(This,pVal)

#define IRdMatrixf_SetScaleX(This,newVal)	\
    (This)->lpVtbl -> SetScaleX(This,newVal)

#define IRdMatrixf_GetScaleY(This,pVal)	\
    (This)->lpVtbl -> GetScaleY(This,pVal)

#define IRdMatrixf_SetScaleY(This,newVal)	\
    (This)->lpVtbl -> SetScaleY(This,newVal)

#define IRdMatrixf_GetScaleZ(This,pVal)	\
    (This)->lpVtbl -> GetScaleZ(This,pVal)

#define IRdMatrixf_SetScaleZ(This,newVal)	\
    (This)->lpVtbl -> SetScaleZ(This,newVal)

#define IRdMatrixf_GetShearX(This,pVal)	\
    (This)->lpVtbl -> GetShearX(This,pVal)

#define IRdMatrixf_SetShearX(This,newVal)	\
    (This)->lpVtbl -> SetShearX(This,newVal)

#define IRdMatrixf_GetShearY(This,pVal)	\
    (This)->lpVtbl -> GetShearY(This,pVal)

#define IRdMatrixf_SetShearY(This,newVal)	\
    (This)->lpVtbl -> SetShearY(This,newVal)

#define IRdMatrixf_GetShearZ(This,pVal)	\
    (This)->lpVtbl -> GetShearZ(This,pVal)

#define IRdMatrixf_SetShearZ(This,newVal)	\
    (This)->lpVtbl -> SetShearZ(This,newVal)

#define IRdMatrixf_AddScaleShear(This,sx,sy,sz,sxy,sxz,syz)	\
    (This)->lpVtbl -> AddScaleShear(This,sx,sy,sz,sxy,sxz,syz)

#define IRdMatrixf_Rotate(This,center,axes,angle)	\
    (This)->lpVtbl -> Rotate(This,center,axes,angle)

#define IRdMatrixf_Decompose(This,pM,ss)	\
    (This)->lpVtbl -> Decompose(This,pM,ss)

#define IRdMatrixf_Shift(This,pShift)	\
    (This)->lpVtbl -> Shift(This,pShift)

#define IRdMatrixf_LoadMatrix(This,pM)	\
    (This)->lpVtbl -> LoadMatrix(This,pM)

#define IRdMatrixf_Invert(This,pM)	\
    (This)->lpVtbl -> Invert(This,pM)

#define IRdMatrixf_Transpose(This,pM)	\
    (This)->lpVtbl -> Transpose(This,pM)

#define IRdMatrixf_ScaleLocal(This,x,y,z)	\
    (This)->lpVtbl -> ScaleLocal(This,x,y,z)

#define IRdMatrixf_Scale(This,x,y,z)	\
    (This)->lpVtbl -> Scale(This,x,y,z)

#define IRdMatrixf_Shear(This,x,y,z)	\
    (This)->lpVtbl -> Shear(This,x,y,z)

#define IRdMatrixf_TranslateLocal(This,x,y,z)	\
    (This)->lpVtbl -> TranslateLocal(This,x,y,z)

#define IRdMatrixf_Translate(This,x,y,z)	\
    (This)->lpVtbl -> Translate(This,x,y,z)

#define IRdMatrixf_RotateEuler(This,x,y,z)	\
    (This)->lpVtbl -> RotateEuler(This,x,y,z)

#define IRdMatrixf_RotateEulerPRY(This,fPitch,fRoll,fYaw)	\
    (This)->lpVtbl -> RotateEulerPRY(This,fPitch,fRoll,fYaw)

#define IRdMatrixf_RotationX(This,x)	\
    (This)->lpVtbl -> RotationX(This,x)

#define IRdMatrixf_RotationY(This,y)	\
    (This)->lpVtbl -> RotationY(This,y)

#define IRdMatrixf_RotationZ(This,z)	\
    (This)->lpVtbl -> RotationZ(This,z)

#define IRdMatrixf_TransformPoint(This,SourcePoint,pDestPoint)	\
    (This)->lpVtbl -> TransformPoint(This,SourcePoint,pDestPoint)

#define IRdMatrixf_TransformVector(This,SourceVect,pDestVect)	\
    (This)->lpVtbl -> TransformVector(This,SourceVect,pDestVect)

#define IRdMatrixf_LookAt(This,pEye,pAt,pUp)	\
    (This)->lpVtbl -> LookAt(This,pEye,pAt,pUp)

#define IRdMatrixf_MakeRotTrans(This,center,axis,angle)	\
    (This)->lpVtbl -> MakeRotTrans(This,center,axis,angle)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_LoadIdentity_Proxy( 
    IRdMatrixf * This);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_LockData_Proxy( 
    IRdMatrixf * This,
    /* [retval][out] */ RtFloat **pMatrix);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_UnlockData_Proxy( 
    IRdMatrixf * This);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_GetAt_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtUlong i,
    /* [in] */ RtUlong j,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_SetAt_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtUlong i,
    /* [in] */ RtUlong j,
    /* [in] */ RtFloat newVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_RotationAxis_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat x,
    /* [in] */ RtFloat y,
    /* [in] */ RtFloat z,
    /* [in] */ RtFloat angle);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_Mult_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtMatrixf *pM);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_PreMult_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtMatrixf *pM);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_GetAxisX_Proxy( 
    IRdMatrixf * This,
    /* [retval][out] */ IRdVertex **ppVect);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_GetAxisY_Proxy( 
    IRdMatrixf * This,
    /* [retval][out] */ IRdVertex **ppVect);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_GetAxisZ_Proxy( 
    IRdMatrixf * This,
    /* [retval][out] */ IRdVertex **ppVect);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_GetTransX_Proxy( 
    IRdMatrixf * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_SetTransX_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_GetTransY_Proxy( 
    IRdMatrixf * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_SetTransY_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_GetTransZ_Proxy( 
    IRdMatrixf * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_SetTransZ_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_GetRoll_Proxy( 
    IRdMatrixf * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_SetRoll_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_GetPitch_Proxy( 
    IRdMatrixf * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_SetPitch_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_GetYaw_Proxy( 
    IRdMatrixf * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_SetYaw_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_GetScaleX_Proxy( 
    IRdMatrixf * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_SetScaleX_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_GetScaleY_Proxy( 
    IRdMatrixf * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_SetScaleY_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_GetScaleZ_Proxy( 
    IRdMatrixf * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_SetScaleZ_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_GetShearX_Proxy( 
    IRdMatrixf * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_SetShearX_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_GetShearY_Proxy( 
    IRdMatrixf * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_SetShearY_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_GetShearZ_Proxy( 
    IRdMatrixf * This,
    /* [retval][out] */ RtFloat *pVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_SetShearZ_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat newVal);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_AddScaleShear_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat sx,
    /* [in] */ RtFloat sy,
    /* [in] */ RtFloat sz,
    /* [in] */ RtFloat sxy,
    /* [in] */ RtFloat sxz,
    /* [in] */ RtFloat syz);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_Rotate_Proxy( 
    IRdMatrixf * This,
    /* [in] */ IRdVertex *center,
    /* [in] */ IRdVertex *axes,
    /* [in] */ RtFloat angle);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_Decompose_Proxy( 
    IRdMatrixf * This,
    /* [out] */ RtMatrixf *pM,
    /* [out] */ RtFloat *ss);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_Shift_Proxy( 
    IRdMatrixf * This,
    /* [in] */ IRdVertex *pShift);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_LoadMatrix_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtMatrixf *pM);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_Invert_Proxy( 
    IRdMatrixf * This,
    /* [out] */ RtMatrixf *pM);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_Transpose_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtMatrixf *pM);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_ScaleLocal_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat x,
    /* [in] */ RtFloat y,
    /* [in] */ RtFloat z);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_Scale_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat x,
    /* [in] */ RtFloat y,
    /* [in] */ RtFloat z);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_Shear_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat x,
    /* [in] */ RtFloat y,
    /* [in] */ RtFloat z);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_TranslateLocal_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat x,
    /* [in] */ RtFloat y,
    /* [in] */ RtFloat z);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_Translate_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat x,
    /* [in] */ RtFloat y,
    /* [in] */ RtFloat z);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_RotateEuler_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat x,
    /* [in] */ RtFloat y,
    /* [in] */ RtFloat z);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_RotateEulerPRY_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat fPitch,
    /* [in] */ RtFloat fRoll,
    /* [in] */ RtFloat fYaw);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_RotationX_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat x);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_RotationY_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat y);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_RotationZ_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtFloat z);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_TransformPoint_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtPoint SourcePoint,
    /* [out] */ RtPoint *pDestPoint);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_TransformVector_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtPoint SourceVect,
    /* [out] */ RtPoint *pDestVect);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_LookAt_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtVector3f *pEye,
    /* [in] */ RtVector3f *pAt,
    /* [in] */ RtVector3f *pUp);


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


/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRdMatrixf_MakeRotTrans_Proxy( 
    IRdMatrixf * This,
    /* [in] */ RtPoint center,
    /* [in] */ RtPoint axis,
    /* [in] */ RtFloat angle);


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



#endif 	/* __IRdMatrixf_INTERFACE_DEFINED__ */


#ifndef __IRiMathCommand_INTERFACE_DEFINED__
#define __IRiMathCommand_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRiMathCommand;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("B84AB8E5-7F95-4b91-B9AB-C5CBB303630A")
    IRiMathCommand : public IDispatch
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE MathObjModify( 
            /* [in] */ BSTR bNodeName,
            /* [in] */ BSTR bFormula) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRiMathCommandVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRiMathCommand * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRiMathCommand * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRiMathCommand * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IRiMathCommand * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IRiMathCommand * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IRiMathCommand * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IRiMathCommand * 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 *MathObjModify )( 
            IRiMathCommand * This,
            /* [in] */ BSTR bNodeName,
            /* [in] */ BSTR bFormula);
        
        END_INTERFACE
    } IRiMathCommandVtbl;

    interface IRiMathCommand
    {
        CONST_VTBL struct IRiMathCommandVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


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

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

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

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


#define IRiMathCommand_MathObjModify(This,bNodeName,bFormula)	\
    (This)->lpVtbl -> MathObjModify(This,bNodeName,bFormula)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE IRiMathCommand_MathObjModify_Proxy( 
    IRiMathCommand * This,
    /* [in] */ BSTR bNodeName,
    /* [in] */ BSTR bFormula);


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



#endif 	/* __IRiMathCommand_INTERFACE_DEFINED__ */


#ifndef __IRnBinaryOp_INTERFACE_DEFINED__
#define __IRnBinaryOp_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRnBinaryOp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8F2C5380-7220-4A7E-B2E1-1C0D8CCD9695")
    IRnBinaryOp : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CalculateExpresion( 
            /* [in] */ RtDouble a,
            /* [in] */ RtDouble b,
            /* [in] */ LPWSTR szExpresion,
            /* [out] */ RtDouble *pResult) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnBinaryOpVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnBinaryOp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnBinaryOp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnBinaryOp * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CalculateExpresion )( 
            IRnBinaryOp * This,
            /* [in] */ RtDouble a,
            /* [in] */ RtDouble b,
            /* [in] */ LPWSTR szExpresion,
            /* [out] */ RtDouble *pResult);
        
        END_INTERFACE
    } IRnBinaryOpVtbl;

    interface IRnBinaryOp
    {
        CONST_VTBL struct IRnBinaryOpVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IRnBinaryOp_CalculateExpresion(This,a,b,szExpresion,pResult)	\
    (This)->lpVtbl -> CalculateExpresion(This,a,b,szExpresion,pResult)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnBinaryOp_CalculateExpresion_Proxy( 
    IRnBinaryOp * This,
    /* [in] */ RtDouble a,
    /* [in] */ RtDouble b,
    /* [in] */ LPWSTR szExpresion,
    /* [out] */ RtDouble *pResult);


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



#endif 	/* __IRnBinaryOp_INTERFACE_DEFINED__ */


#ifndef __IRnDecomposeMatrix_INTERFACE_DEFINED__
#define __IRnDecomposeMatrix_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRnDecomposeMatrix;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("77311424-EEAB-40B4-B574-94B75DD50895")
    IRnDecomposeMatrix : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

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

    interface IRnDecomposeMatrix
    {
        CONST_VTBL struct IRnDecomposeMatrixVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnDecomposeMatrix_INTERFACE_DEFINED__ */


#ifndef __IRnDistanceOp_INTERFACE_DEFINED__
#define __IRnDistanceOp_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRnDistanceOp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("BE530EE9-54B5-455D-AD21-32DF68528D30")
    IRnDistanceOp : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

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

    interface IRnDistanceOp
    {
        CONST_VTBL struct IRnDistanceOpVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnDistanceOp_INTERFACE_DEFINED__ */


#ifndef __IRnLookAt_INTERFACE_DEFINED__
#define __IRnLookAt_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRnLookAt;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("757E2379-7BD1-45D2-9CDA-87CBEE70DCCB")
    IRnLookAt : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

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

    interface IRnLookAt
    {
        CONST_VTBL struct IRnLookAtVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnLookAt_INTERFACE_DEFINED__ */


#ifndef __IRnLookAt2_INTERFACE_DEFINED__
#define __IRnLookAt2_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRnLookAt2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0A84B3F0-DF23-4bba-ACCD-670B428BE25A")
    IRnLookAt2 : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

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

    interface IRnLookAt2
    {
        CONST_VTBL struct IRnLookAt2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnLookAt2_INTERFACE_DEFINED__ */


#ifndef __IRnPoint_INTERFACE_DEFINED__
#define __IRnPoint_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRnPoint;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("11383ED3-BCB2-4C23-B0FD-6FD9D7892105")
    IRnPoint : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

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

    interface IRnPoint
    {
        CONST_VTBL struct IRnPointVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnPoint_INTERFACE_DEFINED__ */


#ifndef __IRnReal_INTERFACE_DEFINED__
#define __IRnReal_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRnReal;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("EFABC2BB-67D5-41B4-98C2-46772CC570BB")
    IRnReal : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

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

    interface IRnReal
    {
        CONST_VTBL struct IRnRealVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnReal_INTERFACE_DEFINED__ */


#ifndef __IRnRealMemory_INTERFACE_DEFINED__
#define __IRnRealMemory_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRnRealMemory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("503D9B88-AF85-4a79-961C-1E569FCD8ACD")
    IRnRealMemory : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

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

    interface IRnRealMemory
    {
        CONST_VTBL struct IRnRealMemoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnRealMemory_INTERFACE_DEFINED__ */


#ifndef __IRnTransform2_INTERFACE_DEFINED__
#define __IRnTransform2_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRnTransform2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A41C3732-F335-4372-9DF1-76F00FC2C6C0")
    IRnTransform2 : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

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

    interface IRnTransform2
    {
        CONST_VTBL struct IRnTransform2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRnTransform2_INTERFACE_DEFINED__ */


#ifndef __IRnUnaryOp_INTERFACE_DEFINED__
#define __IRnUnaryOp_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRnUnaryOp;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("16934DEE-CD11-4473-887F-5161AC9F1971")
    IRnUnaryOp : public IUnknown
    {
    public:
        virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE CalculateUnaryExpresion( 
            /* [in] */ RtDouble a,
            /* [in] */ LPWSTR szExpresion,
            /* [out] */ RtDouble *pResult) = 0;
        
    };
    
#else 	/* C style interface */

    typedef struct IRnUnaryOpVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IRnUnaryOp * This,
            /* [in] */ REFIID riid,
            /* [iid_is][out] */ void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IRnUnaryOp * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IRnUnaryOp * This);
        
        /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *CalculateUnaryExpresion )( 
            IRnUnaryOp * This,
            /* [in] */ RtDouble a,
            /* [in] */ LPWSTR szExpresion,
            /* [out] */ RtDouble *pResult);
        
        END_INTERFACE
    } IRnUnaryOpVtbl;

    interface IRnUnaryOp
    {
        CONST_VTBL struct IRnUnaryOpVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#define IRnUnaryOp_CalculateUnaryExpresion(This,a,szExpresion,pResult)	\
    (This)->lpVtbl -> CalculateUnaryExpresion(This,a,szExpresion,pResult)

#endif /* COBJMACROS */


#endif 	/* C style interface */



/* [helpstring] */ HRESULT STDMETHODCALLTYPE IRnUnaryOp_CalculateUnaryExpresion_Proxy( 
    IRnUnaryOp * This,
    /* [in] */ RtDouble a,
    /* [in] */ LPWSTR szExpresion,
    /* [out] */ RtDouble *pResult);


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



#endif 	/* __IRnUnaryOp_INTERFACE_DEFINED__ */


#ifndef __IRsMathNodeFactory_INTERFACE_DEFINED__
#define __IRsMathNodeFactory_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRsMathNodeFactory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("8D9BE9ED-9CFE-4A7E-AB86-9193FB9AE899")
    IRsMathNodeFactory : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

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

    interface IRsMathNodeFactory
    {
        CONST_VTBL struct IRsMathNodeFactoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsMathNodeFactory_INTERFACE_DEFINED__ */


#ifndef __IRsMathCmdFactory_INTERFACE_DEFINED__
#define __IRsMathCmdFactory_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRsMathCmdFactory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("9BE51320-4CDB-47FC-95F0-9C4C1297082C")
    IRsMathCmdFactory : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

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

    interface IRsMathCmdFactory
    {
        CONST_VTBL struct IRsMathCmdFactoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsMathCmdFactory_INTERFACE_DEFINED__ */


#ifndef __IRsMathDataObjFactory_INTERFACE_DEFINED__
#define __IRsMathDataObjFactory_INTERFACE_DEFINED__

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


EXTERN_C const IID IID_IRsMathDataObjFactory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("0A94053C-670A-4821-B1B5-EA68F73C3325")
    IRsMathDataObjFactory : public IUnknown
    {
    public:
    };
    
#else 	/* C style interface */

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

    interface IRsMathDataObjFactory
    {
        CONST_VTBL struct IRsMathDataObjFactoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


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

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

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


#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IRsMathDataObjFactory_INTERFACE_DEFINED__ */



#ifndef __Math_LIBRARY_DEFINED__
#define __Math_LIBRARY_DEFINED__

/* library Math */
/* [helpstring][uuid][version] */ 


EXTERN_C const IID LIBID_Math;

EXTERN_C const CLSID CLSID_CRpMathPck;

#ifdef __cplusplus

class DECLSPEC_UUID("D0B73D3A-A411-4CDB-BC9A-0904358099E0")
CRpMathPck;
#endif

EXTERN_C const CLSID CLSID_CRdComponents;

#ifdef __cplusplus

class DECLSPEC_UUID("8feaa6e2-9212-4cb7-bcc8-b6133a54de9d")
CRdComponents;
#endif

EXTERN_C const CLSID CLSID_CRdVertex;

#ifdef __cplusplus

class DECLSPEC_UUID("C9E8BFDC-09B2-4bd7-BA94-87932313FCD2")
CRdVertex;
#endif

EXTERN_C const CLSID CLSID_CRdMatrixf;

#ifdef __cplusplus

class DECLSPEC_UUID("0CCBC311-54BE-4a2d-B8CA-C3983ACAA91B")
CRdMatrixf;
#endif

EXTERN_C const CLSID CLSID_CRiMathCommand;

#ifdef __cplusplus

class DECLSPEC_UUID("F973586D-6E5F-4A9C-BE51-AFCC05C6AC29")
CRiMathCommand;
#endif
#endif /* __Math_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 * ); 

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


