IParticleChannelMeshMap.h

Go to the documentation of this file.
00001 
00006 /**********************************************************************
00007  *<
00008     CREATED BY: Oleg Bayborodin
00009 
00010     HISTORY: created 06-17-02
00011 
00012  *> Copyright (c) 2001, All Rights Reserved.
00013  **********************************************************************/
00014 
00015 #pragma once
00016 
00017 #include "PFExport.h"
00018 #include "..\ifnpub.h"
00019 #include "IParticleChannelMap.h"
00020 
00021 // standard particle channel "Mesh Map"
00022 // interface ID
00023 #define PARTICLECHANNELMESHMAPR_INTERFACE Interface_ID(0x74f93c17, 0x1eb34500)
00024 #define PARTICLECHANNELMESHMAPW_INTERFACE Interface_ID(0x74f93c17, 0x1eb34501)
00025 
00026 #define GetParticleChannelMeshMapRInterface(obj) ((IParticleChannelMeshMapR*)obj->GetInterface(PARTICLECHANNELMESHMAPR_INTERFACE))
00027 #define GetParticleChannelMeshMapWInterface(obj) ((IParticleChannelMeshMapW*)obj->GetInterface(PARTICLECHANNELMESHMAPW_INTERFACE))
00028 
00029 class IParticleChannelMeshMapR : public FPMixinInterface
00030 {
00031 public:
00032 
00033     // function IDs Read
00034     enum {  kGetNumMaps,
00035             kMapSupport,
00036             kGetMapReadChannel
00037     };
00038 
00039     BEGIN_FUNCTION_MAP
00040 
00041     FN_0(kGetNumMaps, TYPE_INT, GetNumMaps);
00042     FN_1(kMapSupport, TYPE_bool, MapSupport, TYPE_INT);
00043     FN_1(kGetMapReadChannel, TYPE_INTERFACE, GetMapReadChannel, TYPE_INT);
00044 
00045     END_FUNCTION_MAP
00046 
00054     virtual int GetNumMaps() const = 0;
00055 
00060     virtual bool MapSupport(int mp) const = 0;
00061 
00066     virtual IParticleChannelMapR* GetMapReadChannel(int mp) = 0;
00067 
00071     FPInterfaceDesc* GetDesc() { return GetDescByID(PARTICLECHANNELMESHMAPR_INTERFACE); }
00072 };
00073 
00074 
00075 class IParticleChannelMeshMapW : public FPMixinInterface
00076 {
00077 public:
00078 
00079     // function IDs Write
00080     enum {  kSetNumMaps,
00081             kSetMapSupport,
00082             kGetMapChannel,
00083             kGetMapChannelObject
00084     };
00085 
00086     BEGIN_FUNCTION_MAP
00087 
00088     VFN_2(kSetNumMaps, SetNumMaps, TYPE_INT, TYPE_bool);
00089     VFN_2(kSetMapSupport, SetMapSupport, TYPE_INT, TYPE_bool);
00090     FN_1(kGetMapChannel, TYPE_INTERFACE, GetMapChannel, TYPE_INT);
00091     FN_1(kGetMapChannelObject, TYPE_IOBJECT, GetMapChannelObject, TYPE_INT);
00092 
00093     END_FUNCTION_MAP
00094 
00104     virtual void SetNumMaps(int ct, bool keep=false) = 0;
00105 
00111     virtual void SetMapSupport(int mp, bool support=true) = 0;
00112 
00117     virtual IParticleChannelMapW* GetMapChannel(int mp) = 0;
00118 
00123     virtual IObject* GetMapChannelObject(int mp) const = 0;
00124 
00128     FPInterfaceDesc* GetDesc() { return GetDescByID(PARTICLECHANNELMESHMAPW_INTERFACE); }
00129 };
00130 
00131