26using Alembic::Abc::OObject;
27using Alembic::AbcGeom::OXform;
28using Alembic::AbcGeom::OXformSchema;
29using Alembic::AbcGeom::XformSample;
41 abc_xform_schema_ = abc_xform_.getSchema();
51 const Object *
object = context.object;
52 return object->id.properties;
57 float parent_relative_matrix[4][4];
58 mul_m4_m4m4(parent_relative_matrix, context.parent_matrix_inv_world, context.matrix_world);
64 bool is_root_object = context.export_parent ==
nullptr;
65 if (!is_root_object && context.export_parent->type ==
OB_CAMERA) {
68 mul_m4_m4m4(parent_relative_matrix, rot_mat, parent_relative_matrix);
75 mul_m4_m4m4(parent_relative_matrix, parent_relative_matrix, rot_mat);
80 float scale_mat[4][4];
82 scale_mat[3][3] =
args_.export_params->global_scale;
83 mul_m4_m4m4(parent_relative_matrix, parent_relative_matrix, scale_mat);
84 parent_relative_matrix[3][3] /=
85 args_.export_params->global_scale;
88 XformSample xform_sample;
90 xform_sample.setInheritsXforms(
true);
91 abc_xform_schema_.set(xform_sample);
103 if (context.duplicator !=
nullptr) {
General operations, lookup, etc. for blender objects.
bool BKE_object_moves_in_time(const Object *object, bool recurse_parent)
void mul_m4_m4m4(float R[4][4], const float A[4][4], const float B[4][4])
void scale_m4_fl(float R[4][4], float scale)
void axis_angle_to_mat4_single(float R[4][4], char axis, float angle)
#define CLOG_DEBUG(clg_ref,...)
Object is a sort of wrapper for general info.
static bool check_has_physics(const HierarchyContext &context)
void write_visibility(const HierarchyContext &context)
ABCAbstractWriter(const ABCWriterConstructorArgs &args)
Alembic::Abc::OCompoundProperty abc_schema_prop_for_custom_props(T abc_schema)
uint32_t timesample_index_
const ABCWriterConstructorArgs args_
void copy_m44_axis_swap(float dst_mat[4][4], float src_mat[4][4], AbcAxisSwapMode mode)
Imath::M44d convert_matrix_datatype(const float mat[4][4])