#pragma once #include "terrain.h" //########################################################################## //############################# DoorFrame ################################ //########################################################################## class DoorFrame : public UnscalableTerrain { public: //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Test Instance support // Logical TestInstance() const; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Shared Data support // public: static Derivation *GetClassDerivations(); static SharedData DefaultData; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Model support // enum { BasicSubsystemCount }; public: typedef void (DoorFrame::*Performance)(Scalar time_slice); void SetPerformance(Performance performance) { Check(this); activePerformance = (Simulation::Performance)performance; } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Construction and Destruction // public: static Logical CreateMakeMessage(MakeMessage *creation_message, NotationFile *model_file, const ResourceDirectories *directories); static ResourceDescription::ResourceID CreateSubsystemStream(ResourceFile *resource_file, const char *model_name, NotationFile *model_file, const ResourceDirectories *directories); static DoorFrame* Make(MakeMessage *creation_message); DoorFrame(MakeMessage *creation_message, SharedData &virtual_data = DefaultData); ~DoorFrame(); };