//===========================================================================// // File: mover.hh // // Project: MUNGA Brick: Model Manager // // Contents: Interface specification for moving entity class // //---------------------------------------------------------------------------// // Date Who Modification // // -------- --- ---------------------------------------------------------- // // 01/21/95 JMA Initial coding. // //---------------------------------------------------------------------------// // Copyright (C) 1995, Virtual World Entertainment, Inc. // // All Rights reserved worldwide // // This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL // //===========================================================================// #if !defined(TERRAIN_HPP) # define TERRAIN_HPP # if !defined(ENTITY_HPP) # include # endif class BoxedSolid; //########################################################################## //##################### Terrain::MakeMessage ########################## //########################################################################## class Terrain__MakeMessage: public Entity::MakeMessage { public: Scalar localScale; Terrain__MakeMessage( Receiver::MessageID message_ID, size_t length, const EntityID &entity_ID, Entity::ClassID class_ID, ResourceDescription::ResourceID resource_ID, LWord instance_flags, const Origin &origin, Scalar scale ): Entity::MakeMessage( message_ID, length, entity_ID, class_ID, EntityID::Null, resource_ID, instance_flags, origin ), localScale(scale) {} }; //########################################################################## //########################### Terrain ################################ //########################################################################## class Terrain: public Entity { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Shared Data support // public: static Derivation ClassDerivations; static SharedData DefaultData; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Message Support // typedef Terrain__MakeMessage MakeMessage; #if 0 private: static const HandlerEntry MessageHandlerEntries[]; protected: static MessageHandlerSet MessageHandlers; #endif //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Attribute Support // public: enum { LocalScaleAttributeID = Entity::NextAttributeID, NextAttributeID }; private: static const IndexEntry AttributePointers[]; protected: static AttributeIndexSet AttributeIndex; // // public attribute declarations go here // public: Scalar localScale; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Construction and Destruction // public: static Terrain* Make(MakeMessage *creation_message); // // Warning... This function requires a properly set up strtok!!!! // static Logical CreateMakeMessage( MakeMessage *creation_message, NotationFile *model_file, const ResourceDirectories *directories ); Terrain( MakeMessage *creation_message, SharedData &virtual_data = DefaultData ); ~Terrain(); Logical TestInstance() const; protected: BoxedSolid *collisionVolumes; }; //########################################################################## //###################### UnscalableTerrain ########################### //########################################################################## class UnscalableTerrain: public Entity { //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Shared Data support // public: static Derivation ClassDerivations; static SharedData DefaultData; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Construction and Destruction // public: static UnscalableTerrain* Make(MakeMessage *creation_message); // // Warning... This function requires a properly set up strtok!!!! // static Logical CreateMakeMessage( MakeMessage *creation_message, NotationFile *model_file, const ResourceDirectories *directories ); UnscalableTerrain( MakeMessage *creation_message, SharedData &virtual_data = DefaultData ); ~UnscalableTerrain(); Logical TestInstance() const; protected: BoxedSolid *collisionVolumes; }; #endif