19 float parent_mat[4][4],
20 BCExportSettings &export_settings,
34 if (!has_restmat && export_settings.get_apply_global_orientation()) {
42 node.addMatrix(
"transform", dmat);
45 float loc[3],
rot[3], scale[3];
47 add_transform(node, loc,
rot, scale);
53 BCExportSettings &export_settings)
55 bool limit_precision = export_settings.get_limit_precision();
62 if (export_settings.get_apply_global_orientation()) {
69 switch (export_settings.get_object_transformation_type()) {
74 if (limit_precision) {
77 node.addMatrix(
"transform", d_obmat);
81 float loc[3],
rot[3], scale[3];
83 if (limit_precision) {
88 add_transform(node, loc,
rot, scale);
95 BCExportSettings &export_settings)
98 export_settings.get_object_transformation_type();
99 switch (transformation_type) {
104 node.addMatrix(
"transform", d_obmat);
108 float loc[3] = {0.0f, 0.0f, 0.0f};
109 float scale[3] = {1.0f, 1.0f, 1.0f};
110 float rot[3] = {0.0f, 0.0f, 0.0f};
111 add_transform(node, loc,
rot, scale);
117void TransformWriter::add_transform(COLLADASW::Node &node,
120 const float scale[3])
122 node.addScale(
"scale", scale[0], scale[1], scale[2]);
126 node.addTranslate(
"location", loc[0], loc[1], loc[2]);
General operations, lookup, etc. for blender objects.
void BKE_object_matrix_local_get(Object *ob, float r_mat[4][4])
void mul_m4_m4m4(float R[4][4], const float A[4][4], const float B[4][4])
void copy_m4_m4(float m1[4][4], const float m2[4][4])
bool invert_m4_m4(float inverse[4][4], const float mat[4][4])
BC_export_transformation_type
@ BC_TRANSFORMATION_TYPE_MATRIX
@ BC_TRANSFORMATION_TYPE_DECOMPOSED
void get_matrix(DMatrix &matrix, bool transposed=false, int precision=-1) const
static void sanitize(Matrix &matrix, int precision)
static void mat4_to_dae_double(double out[4][4], float in[4][4])
void bc_add_global_transform(Matrix &to_mat, const Matrix &from_mat, const BCMatrix &global_transform, const bool invert)
void bc_sanitize_v3(float v[3], int precision)
void bc_apply_global_transform(Matrix &to_mat, const BCMatrix &global_transform, const bool invert)
void bc_decompose(float mat[4][4], float *loc, float eul[3], float quat[4], float *size)
constexpr int LIMITTED_PRECISION