#pragma once #include #include #include #include "TypeRegistry.h" class ModelInfoFactory; class ModelInfo : public virtual Framework::ReferenceCounter { private: Framework::Text modelPath; Framework::RCArray texturePaths; bool transparent; float size; public: ModelInfo(); ModelInfo(const char* modelPath, Framework::RCArray texturePaths, bool transparent, float size); void writeTo(Framework::StreamWriter* zWriter) const; void setModelPath(Framework::Text path); void addTexturePath(Framework::Text path); void setTransparent(bool transparent); void setSize(float size); Framework::Text getModelPath() const; Framework::RCArray getTexturePaths() const; bool isTransparent() const; float getSize() const; friend ModelInfoFactory; }; class ModelInfoFactory : public TypeFactory { public: ModelInfoFactory(); ModelInfo* createValue(Framework::JSON::JSONObject* zJson) const override; void fromJson( ModelInfo* zResult, Framework::JSON::JSONObject* zJson) const override; void toJson(ModelInfo* zObject, Framework::JSON::JSONObject* zResult) const override; JSONObjectValidationBuilder* addToValidator( JSONObjectValidationBuilder* builder) const override; };