13 #include "COLLADASWExtraTechnique.h"
14 #include "COLLADASWInputList.h"
15 #include "COLLADASWInstanceController.h"
16 #include "COLLADASWLibraryControllers.h"
17 #include "COLLADASWNode.h"
18 #include "COLLADASWStreamWriter.h"
41 BlenderContext &blender_context;
42 BCExportSettings export_settings;
49 COLLADASW::StreamWriter *
sw,
50 BCExportSettings &export_settings)
51 : COLLADASW::LibraryControllers(
sw),
52 blender_context(blender_context),
53 export_settings(export_settings)
67 std::vector<Object *> written_armatures;
69 bool already_written(
Object *ob_arm);
71 void wrote(
Object *ob_arm);
73 void find_objects_using_armature(
Object *ob_arm, std::vector<Object *> &objects,
Scene *sce);
76 std::string get_controller_id(
Object *ob_arm,
Object *ob);
78 std::string get_controller_id(
Key *key,
Object *ob);
83 void export_morph_controller(
Object *ob,
Key *key);
85 void add_joints_element(
const ListBase *defbase,
86 const std::string &joints_source_id,
87 const std::string &inv_bind_mat_source_id);
89 void add_bind_shape_mat(
Object *ob);
91 std::string add_morph_targets(
Key *key,
Object *ob);
93 std::string add_morph_weights(
Key *key,
Object *ob);
98 void add_weight_extras(
Key *key);
100 std::string add_joints_source(
Object *ob_arm,
102 const std::string &controller_id);
104 std::string add_inv_bind_mats_source(
Object *ob_arm,
106 const std::string &controller_id);
112 std::string add_weights_source(
Mesh *me,
113 const std::string &controller_id,
114 const std::list<float> &weights);
116 void add_vertex_weights_element(
const std::string &weights_source_id,
117 const std::string &joints_source_id,
118 const std::list<int> &vcount,
119 const std::list<int> &joints);
121 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()
ccl_gpu_kernel_postfix ccl_global float int int int sw