16 float parent_mat[4][4],
17 BCExportSettings &export_settings,
31 if (!has_restmat && export_settings.get_apply_global_orientation()) {
39 node.addMatrix(
"transform", dmat);
42 float loc[3],
rot[3], scale[3];
44 add_transform(
node, loc,
rot, scale);
50 BCExportSettings &export_settings)
52 bool limit_precision = export_settings.get_limit_precision();
59 if (export_settings.get_apply_global_orientation()) {
66 switch (export_settings.get_object_transformation_type()) {
71 if (limit_precision) {
74 node.addMatrix(
"transform", d_obmat);
78 float loc[3],
rot[3], scale[3];
80 if (limit_precision) {
85 add_transform(
node, loc,
rot, scale);
92 BCExportSettings &export_settings)
95 export_settings.get_object_transformation_type();
96 switch (transformation_type) {
101 node.addMatrix(
"transform", d_obmat);
105 float loc[3] = {0.0f, 0.0f, 0.0f};
106 float scale[3] = {1.0f, 1.0f, 1.0f};
107 float rot[3] = {0.0f, 0.0f, 0.0f};
108 add_transform(
node, loc,
rot, scale);
114 void TransformWriter::add_transform(COLLADASW::Node &
node,
117 const float scale[3])
119 node.addScale(
"scale", scale[0], scale[1], scale[2]);
123 node.addTranslate(
"location", loc[0], loc[1], loc[2]);
General operations, lookup, etc. for blender objects.
void BKE_object_matrix_local_get(struct 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])
bool invert_m4_m4(float R[4][4], const float A[4][4])
void copy_m4_m4(float m1[4][4], const float m2[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