home *** CD-ROM | disk | FTP | other *** search
- // Copyright (c)1995 Ray Dream, Inc. All Rights Reserved.
- /* $Id: COMTPot.h 1.5 1997/06/20 22:35:48 damien Exp $ */
-
- //
- // COM Example of a Geometric Primitiv
- //
-
- #ifndef __COMTPOT__
- #define __COMTPOT__
-
- #ifndef __I3DEXPRM__
- #include "I3DExPrm.h"
- #endif
-
- #ifndef __TPOTDLL__
- #include "TPOTDLL.h"
- #endif
-
- // define the TeaPot CLSID
- // AE640B80-86F5-101C-8BFC-F629D50D262B
- DEFINE_GUID(CLSID_Teapot, 0xAE640B80L, 0x86F5, 0x101C, 0x8B, 0xFC, 0xF6, 0x29, 0xD5, 0x0D, 0x26, 0x2B);
-
-
-
-
- // Teapot Object :
- #undef INTERFACE
- #define INTERFACE Teapot
- class Teapot : public I3DExGeometricPrimitive, public I3DExDataExchanger {
- public :
- Teapot();
- ~Teapot();
-
- // IUnknown Interface :
- STDMETHODIMP QueryInterface(THIS_ REFIID riid, LPVOID FAR* ppvObj);
- STDMETHODIMP_(ULONG) AddRef(THIS);
- STDMETHODIMP_(ULONG) Release(THIS);
-
- // I3DExtension method :
- STDMETHODIMP_(I3DExtension*) Clone(THIS);
- STDMETHODIMP ShellUtilitiesInit(THIS_ IShUtilities* shellUtilities);
-
- // I3DExDataExchanger methods :
- STDMETHODIMP_(ExtensionDataMap*) GetExtensionDataMap(THIS);
- STDMETHODIMP_(void*) GetExtensionDataBuffer(THIS);
- STDMETHODIMP ExtensionDataChanged(THIS);
- STDMETHODIMP HandleEvent(THIS_ ULONG sourceID);
- STDMETHODIMP_(short) GetResID(THIS);
-
- // I3DExGeometricPrimitiv methods
- STDMETHODIMP GetBBox(THIS_ BOX3D* bbox);
- STDMETHODIMP EnumPatches(THIS_ EnumPatchesCallback callback, void* privData);
- STDMETHODIMP EnumFacets(THIS_ EnumFacetsCallback callback, void* privData,NUM3D fidelity);
- STDMETHODIMP GetNbrLOD(short &nbrLod);
- STDMETHODIMP GetLOD(short lodIndex, NUM3D &lod);
- STDMETHODIMP MakeFacetMesh(THIS_ short index, FacetMesh &amesh);
- STDMETHODIMP MakeFacetMesh(THIS_ NUM3D lod,FacetMesh &amesh);
-
- STDMETHODIMP_(ULONG) GetUVSpaceCount(THIS);
- STDMETHODIMP GetUVSpace(THIS_ ULONG uvSpaceID, UVSpaceInfo* uvSpaceInfo);
- STDMETHODIMP UV2XYZ(THIS_ VECTOR2D* uv, ULONG uvSpaceID, VECTOR3D* resultPosition, BOOLEAN* inUVSpace);
-
- STDMETHODIMP RayHit(THIS_ BOOLEAN* didHit, Ray3D* aR, RayHitParameters* RayHitParams, RayHit3D* hit);
- STDMETHODIMP GetRayHitDetails(THIS_ RayHit3D* hit);
- STDMETHODIMP RayAllHits(THIS_ Ray3D* aR, NUM3D tmin, NUM3D tmax, RayHit3D* hit, RayHitCallback callback, void* privData);
-
- private :
- ULONG fCRef; // reference Counter
- };
-
-
- #endif // __TEAPOT__
-