| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- #include "Model.h"
- namespace gameplay
- {
- Model::Model(void) :
- _ref(NULL),
- _meshSkin(NULL)
- {
- }
- Model::~Model(void)
- {
- }
- unsigned int Model::getTypeId(void) const
- {
- return MODEL_ID;
- }
- const char* Model::getElementName(void) const
- {
- return "Model";
- }
- void Model::writeBinary(FILE* file)
- {
- Object::writeBinary(file);
- // xref:Mesh
- if (_ref != NULL)
- {
- _ref->writeBinaryXref(file);
- }
- else
- {
- write((unsigned int)0, file);
- }
- // _meshSkin
- // Write one unsigned char to indicate if this model has a skin
- if (_meshSkin != NULL)
- {
- write((bool)true, file); // has a skin
- _meshSkin->writeBinary(file);
- }
- else
- {
- write((bool)false, file); // doesn't have a skin
- }
- // materials[]
- writeBinaryObjects(_materials, file);
- }
- void Model::writeText(FILE* file)
- {
- // Compute mesh bounds before writing
- fprintElementStart(file);
- if (_ref != NULL)
- {
- fprintfElement(file, "ref", _ref->getId());
- }
- if (_meshSkin != NULL)
- {
- _meshSkin->writeText(file);
- }
- fprintElementEnd(file);
- }
- MeshSkin* Model::getSkin()
- {
- return _meshSkin;
- }
- void Model::setMesh(Mesh* mesh)
- {
- _ref = mesh;
- if (mesh)
- {
- mesh->model = this;
- }
- if (_ref && _meshSkin)
- {
- _meshSkin->_mesh = _ref;
- }
- }
- void Model::setSkin(MeshSkin* skin)
- {
- _meshSkin = skin;
- if (_meshSkin)
- {
- _meshSkin->_mesh = _ref;
- }
- }
- }
|