From e33e19d0587146859d48a134ec9fd94e7b7ba5cd Mon Sep 17 00:00:00 2001 From: "FWoltermann@gmail.com" Date: Thu, 8 Dec 2011 14:53:40 +0000 Subject: Initial upload --- nGenEx/Skin.h | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 nGenEx/Skin.h (limited to 'nGenEx/Skin.h') diff --git a/nGenEx/Skin.h b/nGenEx/Skin.h new file mode 100644 index 0000000..888c76b --- /dev/null +++ b/nGenEx/Skin.h @@ -0,0 +1,92 @@ +/* Project nGenEx + Destroyer Studios LLC + Copyright © 1997-2004. All Rights Reserved. + + SUBSYSTEM: nGenEx.lib + FILE: Skin.h + AUTHOR: John DiCamillo + + + OVERVIEW + ======== + Classes for managing run-time selectable skins on solid objects +*/ + +#ifndef Skin_h +#define Skin_h + +#include "Polygon.h" +#include "Graphic.h" +#include "Video.h" +#include "List.h" + +// +--------------------------------------------------------------------+ + +class Solid; +class Model; +class Surface; +class Segment; + +class Skin; +class SkinCell; + +// +--------------------------------------------------------------------+ + +class Skin +{ +public: + static const char* TYPENAME() { return "Skin"; } + enum { NAMELEN=64 }; + + Skin(const char* name = 0); + virtual ~Skin(); + + // operations + void ApplyTo(Model* model) const; + void Restore(Model* model) const; + + // accessors / mutators + const char* Name() const { return name; } + const char* Path() const { return path; } + int NumCells() const { return cells.size(); } + + void SetName(const char* n); + void SetPath(const char* n); + void AddMaterial(const Material* mtl); + +protected: + char name[NAMELEN]; + char path[256]; + List cells; +}; + +// +--------------------------------------------------------------------+ + +class SkinCell +{ + friend class Skin; + +public: + static const char* TYPENAME() { return "SkinCell"; } + + SkinCell(const Material* mtl=0); + ~SkinCell(); + + int operator == (const SkinCell& other) const; + + const char* Name() const; + const Material* Skin() const { return skin; } + const Material* Orig() const { return orig; } + + void SetSkin(const Material* mtl); + void SetOrig(const Material* mtl); + +private: + const Material* skin; + const Material* orig; +}; + +// +--------------------------------------------------------------------+ + +#endif Skin_h + -- cgit v1.1