27 #include "COLLADASWExtraTechnique.h"
28 #include "COLLADASWInputList.h"
29 #include "COLLADASWInstanceController.h"
30 #include "COLLADASWLibraryControllers.h"
31 #include "COLLADASWNode.h"
32 #include "COLLADASWStreamWriter.h"
55 BlenderContext &blender_context;
56 BCExportSettings export_settings;
63 COLLADASW::StreamWriter *sw,
64 BCExportSettings &export_settings)
65 : COLLADASW::LibraryControllers(sw),
66 blender_context(blender_context),
67 export_settings(export_settings)
81 std::vector<Object *> written_armatures;
83 bool already_written(
Object *ob_arm);
85 void wrote(
Object *ob_arm);
87 void find_objects_using_armature(
Object *ob_arm, std::vector<Object *> &objects,
Scene *sce);
90 std::string get_controller_id(
Object *ob_arm,
Object *ob);
92 std::string get_controller_id(
Key *key,
Object *ob);
98 void export_morph_controller(
Object *ob,
Key *key);
100 void add_joints_element(
ListBase *defbase,
101 const std::string &joints_source_id,
102 const std::string &inv_bind_mat_source_id);
104 void add_bind_shape_mat(
Object *ob);
106 std::string add_morph_targets(
Key *key,
Object *ob);
108 std::string add_morph_weights(
Key *key,
Object *ob);
110 void add_weight_extras(
Key *key);
112 std::string add_joints_source(
Object *ob_arm,
114 const std::string &controller_id);
116 std::string add_inv_bind_mats_source(
Object *ob_arm,
118 const std::string &controller_id);
124 std::string add_weights_source(
Mesh *me,
125 const std::string &controller_id,
126 const std::list<float> &weights);
128 void add_vertex_weights_element(
const std::string &weights_source_id,
129 const std::string &joints_source_id,
130 const std::list<int> &vcount,
131 const std::list<int> &joints);
133 void write_bone_URLs(COLLADASW::InstanceController &ins,
Object *ob_arm,
Bone *bone);
These structs are the foundation for all linked lists in the library system.
Object is a sort of wrapper for general info.
ControllerExporter(BlenderContext &blender_context, COLLADASW::StreamWriter *sw, BCExportSettings &export_settings)
bool add_instance_controller(Object *ob)
void operator()(Object *ob)
bool is_skinned_mesh(Object *ob)
void export_controllers()