ModelInfo.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #pragma once
  2. #include <Array.h>
  3. #include <Text.h>
  4. #include <Writer.h>
  5. #include "TypeRegistry.h"
  6. class ModelInfoFactory;
  7. class ModelInfo : public virtual Framework::ReferenceCounter
  8. {
  9. private:
  10. Framework::Text modelPath;
  11. Framework::RCArray<Framework::Text> texturePaths;
  12. bool transparent;
  13. float size;
  14. public:
  15. ModelInfo(const char* modelPath,
  16. Framework::RCArray<Framework::Text> texturePaths,
  17. bool transparent,
  18. float size);
  19. void writeTo(Framework::StreamWriter* zWriter) const;
  20. Framework::Text getModelPath() const;
  21. Framework::RCArray<Framework::Text> getTexturePaths() const;
  22. bool isTransparent() const;
  23. float getSize() const;
  24. friend ModelInfoFactory;
  25. };
  26. class ModelInfoFactory : public TypeFactory<ModelInfo>
  27. {
  28. public:
  29. ModelInfoFactory();
  30. ModelInfo* fromJson(Framework::JSON::JSONValue* zJson) const override;
  31. Framework::JSON::JSONValue* toJson(ModelInfo* zObject) const override;
  32. Framework::JSON::Validator::JSONValidator* getValidator() const override;
  33. };