void Light::writeText(FILE* file) { fprintElementStart(file); fprintfElement(file, "lightType", _lightType); fprintfElement(file, "color", _color, COLOR_SIZE); // Compute an approximate light range with Collada's attenuation parameters. // This facilitates bringing in the light nodes directly from maya to gameplay. if (_range == -1.0f) { _range = computeRange(_constantAttenuation, _linearAttenuation, _quadraticAttenuation); } if (_lightType == SpotLight) { // Compute an approximate inner angle of the spot light using Collada's outer angle. _outerAngle = _falloffAngle / 2.0f; if (_innerAngle == -1.0f) { _innerAngle = computeInnerAngle(_outerAngle); } fprintfElement(file, "range", _range); fprintfElement(file, "innerAngle", MATH_DEG_TO_RAD(_innerAngle)); fprintfElement(file, "outerAngle", MATH_DEG_TO_RAD(_outerAngle)); } else if (_lightType == PointLight) { fprintfElement(file, "range", _range); } fprintElementEnd(file); }
void Material::writeText(FILE* file) { fprintElementStart(file); //fprintfElement(file, "parameters", _parameters); //fprintfElement(file, "effect", _effect); fprintElementEnd(file); }
void MeshPart::writeText(FILE* file) { fprintElementStart(file); fprintfElement(file, "primitiveType", _primitiveType); fprintfElement(file, "indexFormat", (unsigned int)_indexFormat); fprintfElement(file, "%d ", "indices", _indices); fprintElementEnd(file); }
void AnimationChannel::writeText(FILE* file) { fprintElementStart(file); fprintfElement(file, "targetId", _targetId); fprintf(file, "<%s>%u %s</%s>\n", "targetAttrib", _targetAttrib, Transform::getPropertyString(_targetAttrib), "targetAttrib"); fprintfElement(file, "%f ", "keytimes", _keytimes); fprintfElement(file, "%f ", "values", _keyValues); fprintfElement(file, "%f ", "tangentsIn", _tangentsIn); fprintfElement(file, "%f ", "tangentsOut", _tangentsOut); fprintfElement(file, "%u ", "interpolations", _interpolations); fprintElementEnd(file); }
void Animation::writeText(FILE* file) { fprintElementStart(file); if (_channels.size() > 0 ) { for (std::vector<AnimationChannel*>::iterator i = _channels.begin(); i != _channels.end(); ++i) { (*i)->writeText(file); } } fprintElementEnd(file); }
void Scene::writeText(FILE* file) { fprintElementStart(file); for (std::list<Node*>::const_iterator i = _nodes.begin(); i != _nodes.end(); ++i) { (*i)->writeText(file); } if (_cameraNode) { fprintfElement(file, "activeCamera", _cameraNode->getId()); } fprintfElement(file, "ambientColor", _ambientColor, Light::COLOR_SIZE); fprintElementEnd(file); }
void Mesh::writeText(FILE* file) { fprintElementStart(file); // for each VertexFormat if (vertices.size() > 0 ) { for (std::vector<VertexElement>::iterator i = _vertexFormat.begin(); i != _vertexFormat.end(); i++) { i->writeText(file); } } // for each Vertex fprintf(file, "<vertices count=\"%lu\">\n", vertices.size()); for (std::vector<Vertex>::iterator i = vertices.begin(); i != vertices.end(); ++i) { i->writeText(file); } fprintf(file, "</vertices>\n"); // write bounds computeBounds(); fprintf(file, "<bounds>\n"); fprintf(file, "<min>\n"); writeVectorText(bounds.min, file); fprintf(file, "</min>\n"); fprintf(file, "<max>\n"); writeVectorText(bounds.max, file); fprintf(file, "</max>\n"); fprintf(file, "<center>\n"); writeVectorText(bounds.center, file); fprintf(file, "</center>\n"); fprintf(file, "<radius>%f</radius>\n", bounds.radius); fprintf(file, "</bounds>\n"); // for each MeshPart for (std::vector<MeshPart*>::iterator i = parts.begin(); i != parts.end(); ++i) { (*i)->writeText(file); } fprintElementEnd(file); }
void Light::writeText(FILE* file) { fprintElementStart(file); fprintfElement(file, "lightType", _lightType); fprintfElement(file, "color", _color, COLOR_SIZE); if (_lightType == SpotLight) { fprintfElement(file, "range", _range); fprintfElement(file, "innerAngle", MATH_DEG_TO_RAD(_innerAngle)); fprintfElement(file, "outerAngle", MATH_DEG_TO_RAD(_outerAngle)); } else if (_lightType == PointLight) { fprintfElement(file, "range", _range); } fprintElementEnd(file); }
void MeshSkin::writeText(FILE* file) { fprintElementStart(file); fprintf(file, "<bindShape>"); fprintfMatrix4f(file, _bindShape); fprintf(file, "</bindShape>"); fprintf(file, "<joints>"); for (std::vector<std::string>::const_iterator i = _jointNames.begin(); i != _jointNames.end(); ++i) { fprintf(file, "%s ", i->c_str()); } fprintf(file, "</joints>\n"); fprintf(file, "<bindPoses count=\"%lu\">", _bindPoses.size() * 16); for (std::vector<Matrix>::const_iterator i = _bindPoses.begin(); i != _bindPoses.end(); ++i) { for (unsigned int j = 0; j < 16; ++j) { fprintf(file, "%f ", i->m[j]); } } fprintf(file, "</bindPoses>\n"); fprintElementEnd(file); }