30 float parent_mat[4][4],
31 BCExportSettings &export_settings,
45 if (!has_restmat && export_settings.get_apply_global_orientation()) {
53 node.addMatrix(
"transform", dmat);
56 float loc[3],
rot[3], scale[3];
58 add_transform(
node, loc,
rot, scale);
64 BCExportSettings &export_settings)
66 bool limit_precision = export_settings.get_limit_precision();
73 if (export_settings.get_apply_global_orientation()) {
80 switch (export_settings.get_object_transformation_type()) {
85 if (limit_precision) {
88 node.addMatrix(
"transform", d_obmat);
92 float loc[3],
rot[3], scale[3];
94 if (limit_precision) {
99 add_transform(
node, loc,
rot, scale);
106 BCExportSettings &export_settings)
109 export_settings.get_object_transformation_type();
110 switch (transformation_type) {
115 node.addMatrix(
"transform", d_obmat);
119 float loc[3] = {0.0f, 0.0f, 0.0f};
120 float scale[3] = {1.0f, 1.0f, 1.0f};
121 float rot[3] = {0.0f, 0.0f, 0.0f};
122 add_transform(
node, loc,
rot, scale);
128 void TransformWriter::add_transform(COLLADASW::Node &
node,
131 const float scale[3])
133 node.addScale(
"scale", scale[0], scale[1], scale[2]);
137 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, const bool transposed=false, const 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