111 Scene *sce = blender_context.get_scene();
112 bContext *
C = blender_context.get_context();
120 COLLADASW::StreamWriter *writer;
122 writer =
new COLLADASW::StreamWriter(native_filename);
124 catch (COLLADASW::StreamWriterException &
e) {
126 fprintf(stderr,
"Collada: No Objects will be exported.\n");
131 writer->startDocument();
134 COLLADASW::Asset asset(writer);
141 std::string unitname =
"meter";
142 float linearmeasure =
RNA_float_get(&unit_settings,
"scale_length");
147 if (linearmeasure == 0.001f) {
148 unitname =
"millimeter";
150 else if (linearmeasure == 0.01f) {
151 unitname =
"centimeter";
153 else if (linearmeasure == 0.1f) {
154 unitname =
"decimeter";
156 else if (linearmeasure == 1.0f) {
159 else if (linearmeasure == 1000.0f) {
160 unitname =
"kilometer";
164 if (linearmeasure == 0.0254f) {
167 else if (linearmeasure == 0.3048f) {
170 else if (linearmeasure == 0.9144f) {
178 asset.setUnit(unitname, linearmeasure);
179 asset.setUpAxisType(COLLADASW::Asset::Z_UP);
180 asset.getContributor().mAuthor =
"Blender User";
181 char version_buf[128];
184 "Blender %s commit date:%s, commit time:%s, hash:%s",
192 asset.getContributor().mAuthoringTool = version_buf;
195 LinkNode *export_set = this->export_settings.get_export_set();
227 ArmatureExporter arm_exporter(blender_context, writer, this->export_settings);
228 ControllerExporter controller_exporter(blender_context, writer, this->export_settings);
236 SceneExporter se(blender_context, writer, &arm_exporter, this->export_settings);
238 if (this->export_settings.get_include_animations()) {
248 COLLADASW::Scene scene(writer, COLLADASW::URI(COLLADABU::Utils::EMPTY_STRING, scene_name));
252 writer->endDocument();
256 fprintf(stdout,
"Collada export to: %s\n", this->export_settings.get_filepath());
259 status =
BLI_copy(native_filename.c_str(),
this->export_settings.get_filepath());
260 BLI_delete(native_filename.c_str(),
false,
false);