//==========================================================================// // File: gosFX_Shape.hpp // // Project: gosFX // // Contents: Shape Component // //--------------------------------------------------------------------------// // Date Who Modification // // 09/28/98 JTR Created // // // //--------------------------------------------------------------------------// // Copyright (C) 1997-1998, Virtual World Entertainment, Inc. // // All Rights reserved worldwide // // This unpublished sourcecode is PROPRIETARY and CONFIDENTIAL // //==========================================================================// // #pragma once #include "gosFX.hpp" #include "Singleton.hpp" #include namespace MidLevelRenderer {class MLRShape;} namespace gosFX { //############################################################################ //######################## Shape__Specification ############################# //############################################################################ class Shape; class Shape__Specification: public Singleton__Specification { friend class Shape; //---------------------------------------------------------------------- // Constructors/Destructors // protected: Shape__Specification( Stuff::MemoryStream *stream, int gfx_version ); public: typedef Singleton__Specification BaseClass; Shape__Specification(); ~Shape__Specification(); void Save(Stuff::MemoryStream *stream); static Shape__Specification* Make( Stuff::MemoryStream *stream, int gfx_version ); void Copy(Shape__Specification *spec); void SetShape(Stuff::MString &shape); protected: MidLevelRenderer::MLRShape *m_shape; Stuff::Scalar m_radius; Stuff::MString m_shapeFile; }; //############################################################################ //############################# Shape ################################# //############################################################################ class Shape : public Singleton { //---------------------------------------------------------------------------- // Class Registration Support // public: typedef Singleton BaseClass; static void InitializeClass(); static void TerminateClass(); typedef Shape__Specification Specification; //---------------------------------------------------------------------------- // Class Data Support // protected: Shape( Specification *spec, unsigned flags ); public: static Shape* Make( Specification *spec, unsigned flags ); Specification* GetSpecification() { Check_Object(this); return Cast_Object(Specification*, m_specification); } static ClassData *DefaultData; //---------------------------------------------------------------------------- // Testing // public: void TestInstance() const; //---------------------------------------------------------------------------- // API // public: void Start(ExecuteInfo *info); void Draw(DrawInfo *info); }; }