00001 00008 /********************************************************************** 00009 *< 00010 CREATED BY: Oleg Bayborodin 00011 00012 HISTORY: created 06-19-02 00013 00014 *> Copyright (c) 2001, All Rights Reserved. 00015 **********************************************************************/ 00016 00017 #pragma once 00018 00019 #include "PFExport.h" 00020 #include "..\ifnpub.h" 00021 #include "..\tab.h" 00022 #include "..\mesh.h" 00023 00024 #define TabTVFace Tab<TVFace> 00025 00026 // standard particle channel "Tab<TVFace>" 00027 // interface ID 00028 #define PARTICLECHANNELTABTVFACER_INTERFACE Interface_ID(0x74f93c14, 0x1eb34500) 00029 #define PARTICLECHANNELTABTVFACEW_INTERFACE Interface_ID(0x74f93c14, 0x1eb34501) 00030 00031 // since it's a "type" channel there is no "GetChannel" defines 00032 //#define GetParticleChannelTabTVFaceRInterface(obj) ((IParticleChannelTabTVFaceR*)obj->GetInterface(PARTICLECHANNELTABTVFACER_INTERFACE)) 00033 //#define GetParticleChannelTabTVFaceWInterface(obj) ((IParticleChannelTabTVFaceW*)obj->GetInterface(PARTICLECHANNELTABTVFACEW_INTERFACE)) 00034 00035 class IParticleChannelTabTVFaceR : public FPMixinInterface 00036 { 00037 public: 00038 00046 virtual bool IsShared() const = 0; 00047 00051 virtual int GetValueCount() const = 0; 00052 00056 virtual int GetValueIndex(int particleIndex) const = 0; 00057 00061 virtual const TabTVFace* GetValueByIndex(int valueIndex) const = 0; 00062 00066 virtual const TabTVFace* GetValue(int particleIndex) const = 0; 00067 00071 virtual const TabTVFace* GetValue() const = 0; 00072 00076 FPInterfaceDesc* GetDesc() { return GetDescByID(PARTICLECHANNELTABTVFACER_INTERFACE); } 00077 }; 00078 00079 class IParticleChannelTabTVFaceW : public FPMixinInterface 00080 { 00081 public: 00082 00090 virtual bool SetValue(int particleIndex, const TabTVFace* value) = 0; 00091 00095 virtual bool SetValue(Tab<int>& particleIndices, const TabTVFace* value) = 0; 00096 00100 virtual bool SetValue(const TabTVFace* value) = 0; 00101 00105 virtual bool CopyValue(int fromParticle, int toParticle) = 0; 00106 00110 virtual bool CopyValue(int fromParticle, Tab<int>& toParticles) = 0; 00111 00115 virtual bool CopyValue(int fromParticle) = 0; 00116 00120 FPInterfaceDesc* GetDesc() { return GetDescByID(PARTICLECHANNELTABTVFACEW_INTERFACE); } 00121 }; 00122