IParticleChannelTabTVFace.h

Go to the documentation of this file.
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