/* ** Copyright (C) 1996, 1997 Microsoft Corporation. All Rights Reserved. ** ** File: buoyIGC.h ** ** Author: ** ** Description: ** Header for the CbuoyIGC class. This file was initially created by ** the ATL wizard. ** ** History: */ // buoyIGC.h : Declaration of the CbuoyIGC #ifndef __BUOYIGC_H_ #define __BUOYIGC_H_ #include "modelIGC.h" class CbuoyIGC : public TmodelIGC { public: CbuoyIGC(void); ~CbuoyIGC(void); public: // IbaseIGC virtual HRESULT Initialize(ImissionIGC* pMission, Time now, const void* data, int dataSize); virtual void Terminate(void); virtual int Export(void* data) const; virtual ObjectType GetObjectType(void) const { return OT_buoy; } virtual ObjectID GetObjectID(void) const { return m_buoyID; } // ImodelIGC virtual void SetCluster(IclusterIGC* cluster) { AddRef(); { IclusterIGC* c = GetCluster(); if (c) c->DeleteModel(this); } TmodelIGC::SetCluster(cluster); if (cluster) cluster->AddModel(this); Release(); } virtual void SetVisibleF(bool vf) const { } virtual bool GetVisibleF(void) const { return (m_nConsumers > 0); } virtual void SetRender(unsigned char render) { } // IbuoyIGC virtual void AddConsumer(void) { m_nConsumers++; } virtual void ReleaseConsumer(void) { m_nConsumers--; assert (m_nConsumers >= 0); if (m_nConsumers == 0) Terminate(); } virtual BuoyType GetBuoyType(void) { return m_type; } private: short m_nConsumers; BuoyID m_buoyID; BuoyType m_type; }; #endif //__BUOYIGC_H_