//===========================================================================// // File: rndorgn.hh // // Project: MUNGA Brick: Interest Manager // // Contents: Interface specifications for interest manager // //---------------------------------------------------------------------------// // Date Who Modification // // -------- --- -----------------------------------------------------------// // 01/18/95 ECH Initial coding. // //---------------------------------------------------------------------------// // Copyright (C) 1995, Virtual World Entertainment, Inc. // // All Rights reserved worldwide // // This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL // //===========================================================================// #if !defined(RNDORGN_HPP) # define RNDORGN_HPP # if !defined(INTORGN_HPP) # include # endif # if !defined(SCHAIN_HPP) # include # endif //########################################################################## //####################### RendererOrigin ############################# //########################################################################## class Renderer; class Entity; class RendererOrigin: public InterestOrigin { friend class RendererOrigin__InterestingEntityIterator; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Public types // public: typedef RendererOrigin__InterestingEntityIterator InterestingEntityIterator; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Constructor, Destructor, and Testing // public: RendererOrigin( Renderer *renderer, Entity *entity, InterestType interest_type, InterestDepth depth_calibration ); ~RendererOrigin(); Logical TestInstance() const; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Interest Manager support // private: void AddInterestingEntity(Entity *interesting_entity); void RemoveUninterestingEntity(Entity *uninteresting_entity); void RemoveUninterestingEntities(); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Private data // private: Renderer* renderer; SChainOf interestingEntitySocket; }; //~~~~~~~~~~~~~~~~~ RendererOrigin__InterestingEntityIterator ~~~~~~~~~~~~~~ class RendererOrigin__InterestingEntityIterator: public SChainIteratorOf { public: RendererOrigin__InterestingEntityIterator(RendererOrigin *renderer_origin); ~RendererOrigin__InterestingEntityIterator(); }; #if 0 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RendererOrigin ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // //-------------------------------------------------------------------- // RendererOrigin // // Represent a renderers origin of interest. //-------------------------------------------------------------------- // class RendererOrigin: public InterestOrigin { public: // //-------------------------------------------------------------------- // Constructor, Destructor, and Testing //-------------------------------------------------------------------- // RendererOrigin( const EntityID &entity_ID, InterestType interest_type, InterestDepth depth_calibration, Renderer *renderer ); ~RendererOrigin(); Logical TestInstance() const; // //-------------------------------------------------------------------- // Interest Manager support //-------------------------------------------------------------------- // void AddInterestingEntity(Entity *interesting_entity); void RemoveUninterestingEntity(Entity *uninteresting_entity); void RemoveUninterestingEntities(); protected: // //-------------------------------------------------------------------- // Protected data //-------------------------------------------------------------------- // SlotOf rendererSocket; }; #endif #endif