IParticleChannelAngAxis.h

Go to the documentation of this file.
00001 
00005 /**********************************************************************
00006  *<
00007     CREATED BY: Oleg Bayborodin
00008 
00009     HISTORY: created 01-09-02
00010 
00011  *> Copyright (c) 2001, All Rights Reserved.
00012  **********************************************************************/
00013 
00014 #pragma once
00015 
00016 #include "PFExport.h"
00017 #include "..\ifnpub.h"
00018 
00019 // generic particle channel "AngAxis"
00020 // interface ID
00021 #define PARTICLECHANNELANGAXISR_INTERFACE Interface_ID(0x74f93c0d, 0x1eb34500)
00022 #define PARTICLECHANNELANGAXISW_INTERFACE Interface_ID(0x74f93c0d, 0x1eb34501)
00023 
00024 // since it's a "type" channel there is no "GetChannel" defines
00025 //#define GetParticleChannelAngAxisRInterface(obj) ((IParticleChannelAngAxisR*)obj->GetInterface(PARTICLECHANNELANGAXISR_INTERFACE))
00026 //#define GetParticleChannelAngAxisWInterface(obj) ((IParticleChannelAngAxisW*)obj->GetInterface(PARTICLECHANNELANGAXISW_INTERFACE))
00027 
00028 
00029 class IParticleChannelAngAxisR : public FPMixinInterface
00030 {
00031 public:
00032 
00033     // function IDs Read
00034     enum {  kGetValue,
00035             kIsGlobal,
00036             kGetValueGlobal
00037     };
00038 
00039     // Function Map for Function Publish System
00040     //***********************************
00041     BEGIN_FUNCTION_MAP
00042 
00043     FN_1(kGetValue, TYPE_ANGAXIS_BR, GetValue, TYPE_INT);
00044     FN_0(kIsGlobal, TYPE_bool, IsGlobal);
00045     FN_0(kGetValueGlobal, TYPE_ANGAXIS_BR, GetValue);
00046 
00047     END_FUNCTION_MAP
00048 
00056     virtual const AngAxis&  GetValue(int index) const = 0;
00057 
00061     virtual bool            IsGlobal() const = 0;
00062 
00067     virtual const AngAxis&  GetValue() const = 0;
00068 
00072     FPInterfaceDesc* GetDesc() { return GetDescByID(PARTICLECHANNELANGAXISR_INTERFACE); }
00073 };
00074 
00075 class IParticleChannelAngAxisW : public FPMixinInterface
00076 {
00077 public:
00078 
00079     // function IDs Write
00080     enum {  kSetValue,
00081             kSetValueGlobal,
00082     };
00083 
00084     // Function Map for Function Publish System
00085     //***********************************
00086     BEGIN_FUNCTION_MAP
00087 
00088     VFN_2(kSetValue, SetValue, TYPE_INT, TYPE_ANGAXIS_BR);
00089     VFN_1(kSetValueGlobal, SetValue, TYPE_ANGAXIS_BR);
00090 
00091     END_FUNCTION_MAP
00092 
00100     virtual void    SetValue(int index, const AngAxis& v) = 0;
00101 
00105     virtual void    SetValue(const AngAxis& v) = 0;
00106 
00110     FPInterfaceDesc* GetDesc() { return GetDescByID(PARTICLECHANNELANGAXISW_INTERFACE); }
00111 };
00112