166 Scene *sce = blender_context.get_scene();
167 bContext *C = blender_context.get_context();
175 COLLADASW::StreamWriter *writer;
177 writer =
new COLLADASW::StreamWriter(native_filename);
179 catch (COLLADASW::StreamWriterException &
e) {
181 fprintf(stderr,
"Collada: No Objects will be exported.\n");
186 writer->startDocument();
189 COLLADASW::Asset asset(writer);
196 std::string unitname =
"meter";
197 float linearmeasure =
RNA_float_get(&unit_settings,
"scale_length");
202 if (linearmeasure == 0.001f) {
203 unitname =
"millimeter";
205 else if (linearmeasure == 0.01f) {
206 unitname =
"centimeter";
208 else if (linearmeasure == 0.1f) {
209 unitname =
"decimeter";
211 else if (linearmeasure == 1.0f) {
214 else if (linearmeasure == 1000.0f) {
215 unitname =
"kilometer";
219 if (linearmeasure == 0.0254f) {
222 else if (linearmeasure == 0.3048f) {
225 else if (linearmeasure == 0.9144f) {
233 asset.setUnit(unitname, linearmeasure);
234 asset.setUpAxisType(COLLADASW::Asset::Z_UP);
235 asset.getContributor().mAuthor =
"Blender User";
236 char version_buf[128];
239 "Blender %s commit date:%s, commit time:%s, hash:%s",
247 asset.getContributor().mAuthoringTool = version_buf;
250 LinkNode *export_set = this->export_settings.get_export_set();
282 ArmatureExporter arm_exporter(blender_context, writer, this->export_settings);
283 ControllerExporter controller_exporter(blender_context, writer, this->export_settings);
291 SceneExporter se(blender_context, writer, &arm_exporter, this->export_settings);
293 if (this->export_settings.get_include_animations()) {
303 COLLADASW::Scene
scene(writer, COLLADASW::URI(COLLADABU::Utils::EMPTY_STRING, scene_name));
307 writer->endDocument();
311 fprintf(stdout,
"Collada export to: %s\n", this->export_settings.get_filepath());
312 int status =
BLI_rename_overwrite(native_filename.c_str(), this->export_settings.get_filepath());
314 status =
BLI_copy(native_filename.c_str(), this->export_settings.get_filepath());
315 BLI_delete(native_filename.c_str(),
false,
false);