home *** CD-ROM | disk | FTP | other *** search
/ Ray Dream Studio 5 / Ray Dream.iso / pc / DreamSDK / Windows / SAMPLES / PRIMITIV / TPOT / COMTPOT.H < prev    next >
Encoding:
C/C++ Source or Header  |  1997-07-11  |  2.6 KB  |  73 lines

  1. // Copyright (c)1995 Ray Dream, Inc. All Rights Reserved.
  2. /* $Id: COMTPot.h 1.5 1997/06/20 22:35:48 damien Exp $ */
  3.  
  4. //
  5. // COM Example of a Geometric Primitiv
  6. //
  7.  
  8. #ifndef __COMTPOT__
  9. #define __COMTPOT__  
  10.  
  11. #ifndef __I3DEXPRM__
  12. #include "I3DExPrm.h"
  13. #endif
  14.                   
  15. #ifndef __TPOTDLL__
  16. #include "TPOTDLL.h"
  17. #endif
  18.                     
  19. // define the TeaPot CLSID
  20. // AE640B80-86F5-101C-8BFC-F629D50D262B
  21. DEFINE_GUID(CLSID_Teapot, 0xAE640B80L, 0x86F5, 0x101C, 0x8B, 0xFC, 0xF6, 0x29, 0xD5, 0x0D, 0x26, 0x2B);
  22.  
  23.  
  24.  
  25.  
  26. // Teapot Object :
  27. #undef INTERFACE
  28. #define INTERFACE Teapot
  29. class Teapot : public I3DExGeometricPrimitive, public I3DExDataExchanger {
  30. public :  
  31.   Teapot();
  32.   ~Teapot();
  33.   
  34.   // IUnknown Interface :
  35.   STDMETHODIMP         QueryInterface(THIS_ REFIID riid, LPVOID FAR* ppvObj);
  36.   STDMETHODIMP_(ULONG) AddRef(THIS);
  37.   STDMETHODIMP_(ULONG) Release(THIS);
  38.   
  39.   // I3DExtension method :             
  40.   STDMETHODIMP_(I3DExtension*) Clone(THIS);
  41.   STDMETHODIMP                 ShellUtilitiesInit(THIS_ IShUtilities* shellUtilities);  
  42.   
  43.   // I3DExDataExchanger methods :
  44.   STDMETHODIMP_(ExtensionDataMap*) GetExtensionDataMap(THIS);
  45.   STDMETHODIMP_(void*)             GetExtensionDataBuffer(THIS);
  46.   STDMETHODIMP                     ExtensionDataChanged(THIS);
  47.   STDMETHODIMP                     HandleEvent(THIS_ ULONG sourceID);
  48.   STDMETHODIMP_(short)             GetResID(THIS);
  49.   
  50.   // I3DExGeometricPrimitiv methods
  51.   STDMETHODIMP           GetBBox(THIS_ BOX3D* bbox);
  52.   STDMETHODIMP           EnumPatches(THIS_ EnumPatchesCallback callback, void* privData);
  53.   STDMETHODIMP           EnumFacets(THIS_ EnumFacetsCallback callback, void* privData,NUM3D fidelity);
  54.     STDMETHODIMP           GetNbrLOD(short &nbrLod);
  55.     STDMETHODIMP           GetLOD(short lodIndex, NUM3D &lod);
  56.     STDMETHODIMP           MakeFacetMesh(THIS_ short index, FacetMesh &amesh);
  57.     STDMETHODIMP           MakeFacetMesh(THIS_ NUM3D lod,FacetMesh &amesh);
  58.   
  59.   STDMETHODIMP_(ULONG) GetUVSpaceCount(THIS);
  60.   STDMETHODIMP         GetUVSpace(THIS_ ULONG uvSpaceID, UVSpaceInfo* uvSpaceInfo);
  61.   STDMETHODIMP         UV2XYZ(THIS_ VECTOR2D* uv, ULONG uvSpaceID, VECTOR3D* resultPosition, BOOLEAN* inUVSpace);
  62.   
  63.   STDMETHODIMP RayHit(THIS_ BOOLEAN* didHit, Ray3D* aR, RayHitParameters* RayHitParams, RayHit3D* hit);
  64.   STDMETHODIMP GetRayHitDetails(THIS_ RayHit3D* hit);
  65.   STDMETHODIMP RayAllHits(THIS_ Ray3D* aR, NUM3D tmin, NUM3D tmax, RayHit3D* hit, RayHitCallback callback, void* privData);
  66.   
  67. private :
  68.   ULONG      fCRef;      // reference Counter
  69.   };
  70.                           
  71.  
  72. #endif // __TEAPOT__
  73.