11#include <Alembic/AbcGeom/Visibility.h>
18using Alembic::Abc::OObject;
19using Alembic::Abc::TimeSamplingPtr;
57 if (!
args_.export_params->export_custom_properties) {
68 if (id_properties ==
nullptr || id_properties->
len == 0) {
72 custom_props_ = std::make_unique<CustomPropertiesExporter>(
this);
77 Object *
object = context.object;
78 if (object->
data ==
nullptr) {
83 return static_cast<ID *
>(
object->data)->properties;
123 const bool is_visible = context.is_object_visible(
args_.export_params->evaluation_mode);
129 abc_visibility_.set(is_visible ? Alembic::AbcGeom::kVisibilityVisible :
130 Alembic::AbcGeom::kVisibilityHidden);
General operations, lookup, etc. for blender objects.
void BKE_boundbox_init_from_minmax(BoundBox *bb, const float min[3], const float max[3])
std::optional< blender::Bounds< blender::float3 > > BKE_object_boundbox_get(const Object *ob)
#define CLOG_WARN(clg_ref,...)
Object is a sort of wrapper for general info.
virtual bool check_is_animated(const HierarchyContext &context) const
void write_visibility(const HierarchyContext &context)
ABCAbstractWriter(const ABCWriterConstructorArgs &args)
virtual void do_write(HierarchyContext &context)=0
uint32_t timesample_index() const
uint32_t timesample_index_
bool frame_has_been_written_
virtual const IDProperty * get_id_properties(const HierarchyContext &context) const
std::unique_ptr< CustomPropertiesExporter > custom_props_
virtual void ensure_custom_properties_exporter(const HierarchyContext &context)
void write(HierarchyContext &context) override
Imath::Box3d bounding_box_
const ABCWriterConstructorArgs args_
virtual bool is_supported(const HierarchyContext *context) const
virtual Alembic::Abc::OObject get_alembic_object() const =0
virtual void update_bounding_box(Object *object)
Alembic::Abc::OCharProperty abc_visibility_
const Imath::Box3d & bounding_box() const