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 "..\point3.h" 00023 00024 #define TabUVVert Tab<UVVert> 00025 00026 // standard particle channel "Tab<UVVert>" 00027 // interface ID 00028 #define PARTICLECHANNELTABUVVERTR_INTERFACE Interface_ID(0x74f93c14, 0x1eb34500) 00029 #define PARTICLECHANNELTABUVVERTW_INTERFACE Interface_ID(0x74f93c14, 0x1eb34501) 00030 00031 // since it's a "type" channel there is no "GetChannel" defines 00032 //#define GetParticleChannelTabUVVertRInterface(obj) ((IParticleChannelTabUVVertR*)obj->GetInterface(PARTICLECHANNELTABUVVERTR_INTERFACE)) 00033 //#define GetParticleChannelTabUVVertWInterface(obj) ((IParticleChannelTabUVVertW*)obj->GetInterface(PARTICLECHANNELTABUVVERTW_INTERFACE)) 00034 00035 class IParticleChannelTabUVVertR : public FPMixinInterface 00036 { 00037 public: 00046 virtual bool IsShared() const = 0; 00047 00051 virtual int GetValueCount() const = 0; 00052 00056 virtual int GetValueIndex(int particleIndex) const = 0; 00057 00066 virtual const TabUVVert* GetValue(int particleIndex) const = 0; 00067 00072 virtual const TabUVVert* GetValue() const = 0; 00073 00077 FPInterfaceDesc* GetDesc() { return GetDescByID(PARTICLECHANNELTABUVVERTR_INTERFACE); } 00078 }; 00079 00080 class IParticleChannelTabUVVertW : public FPMixinInterface 00081 { 00082 public: 00091 virtual bool SetValue(int particleIndex, const TabUVVert* value) = 0; 00092 00098 virtual bool SetValue(int particleIndex, UVVert value) = 0; 00099 00104 virtual bool SetValue(Tab<int>& particleIndices, const TabUVVert* value) = 0; 00105 00111 virtual bool SetValue(Tab<int>& particleIndices, UVVert value) = 0; 00112 00117 virtual bool SetValue(const TabUVVert* value) = 0; 00118 00124 virtual bool SetValue(UVVert value) = 0; 00125 00129 virtual bool CopyValue(int fromParticle, int toParticle) = 0; 00130 00134 virtual bool CopyValue(int fromParticle, Tab<int>& toParticles) = 0; 00135 00139 virtual bool CopyValue(int fromParticle) = 0; 00140 00144 FPInterfaceDesc* GetDesc() { return GetDescByID(PARTICLECHANNELTABUVVERTW_INTERFACE); } 00145 00148 }; 00149