14#include <Alembic/AbcGeom/Visibility.h>
21using Alembic::Abc::OObject;
22using Alembic::Abc::TimeSamplingPtr;
60 if (!
args_.export_params->export_custom_properties) {
71 if (id_properties ==
nullptr || id_properties->
len == 0) {
75 custom_props_ = std::make_unique<CustomPropertiesExporter>(
this);
80 Object *
object = context.object;
81 if (object->
data ==
nullptr) {
86 return static_cast<ID *
>(
object->data)->properties;
125 const bool is_visible = context.is_object_visible(
args_.export_params->evaluation_mode);
131 abc_visibility_.set(is_visible ? Alembic::AbcGeom::kVisibilityVisible :
132 Alembic::AbcGeom::kVisibilityHidden);
General operations, lookup, etc. for blender objects.
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
std::array< VecBase< T, 3 >, 8 > corners(const Bounds< VecBase< T, 3 > > &bounds)