180 static EnsuredWriter
empty();
187 operator bool()
const;
219bool operator==(
const ObjectIdentifier &obj_ident_a,
const ObjectIdentifier &obj_ident_b);
294 void debug_print_export_graph(
const ExportGraph &graph)
const;
296 void export_graph_construct();
297 void connect_loose_objects();
298 void export_graph_prune();
299 void export_graph_clear();
301 void visit_object(
Object *
object,
Object *export_parent,
bool weak_export);
302 void visit_dupli_object(
const DupliObject *dupli_object,
310 bool determine_duplication_references(
const HierarchyContext *parent_context,
311 const std::string &indent);
316 void make_writers_particle_systems(
const HierarchyContext *transform_context);
323 std::string get_object_name(
const Object *
object)
const;
324 std::string get_object_name(
const Object *
object,
const Object *parent);
325 std::string get_object_data_name(
const Object *
object)
const;
327 using create_writer_func =
339 const std::string &child_path)
const;
BPy_StructRNA * depsgraph
unsigned long long int uint64_t
virtual ObjectIdentifier determine_graph_index_object(const HierarchyContext *context)
virtual bool should_visit_dupli_object(const DupliObject *dupli_object) const
virtual ~AbstractHierarchyIterator()
virtual bool include_child_writers(const HierarchyContext *) const
blender::Map< std::string, blender::Set< std::string > > ExportUsedNameMap
virtual void release_writer(AbstractHierarchyWriter *writer)=0
ExportChildren * graph_children(const HierarchyContext *context)
virtual bool mark_as_weak_export(const Object *object) const
void set_export_subset(ExportSubset export_subset)
ExportGraph export_graph_
DupliSources duplisources_
virtual std::string get_id_name(const ID *id) const
blender::Map< ObjectIdentifier, ExportChildren > ExportGraph
virtual AbstractHierarchyWriter * create_particle_writer(const HierarchyContext *context)=0
blender::Map< ID *, std::string > ExportPathMap
ExportPathMap duplisource_export_path_
virtual AbstractHierarchyWriter * create_transform_writer(const HierarchyContext *context)=0
AbstractHierarchyIterator(Main *bmain, Depsgraph *depsgraph)
virtual void iterate_and_write()
virtual std::string make_unique_name(const std::string &original_name, Set< std::string > &used_names)
virtual std::string path_concatenate(const std::string &parent_path, const std::string &child_path) const
virtual ObjectIdentifier determine_graph_index_dupli(const HierarchyContext *context, const DupliObject *dupli_object, const DupliParentFinder &dupli_parent_finder)
AbstractHierarchyWriter * get_writer(const std::string &export_path) const
virtual AbstractHierarchyWriter * create_data_writer(const HierarchyContext *context)=0
virtual AbstractHierarchyWriter * create_hair_writer(const HierarchyContext *context)=0
ExportUsedNameMap used_names_
blender::Map< std::string, AbstractHierarchyWriter * > WriterMap
blender::Set< ID * > DupliSources
virtual std::string make_valid_name(const std::string &name) const
ExportSubset export_subset_
blender::Set< HierarchyContext * > ExportChildren
virtual std::string get_object_data_path(const HierarchyContext *context) const
virtual bool include_data_writers(const HierarchyContext *) const
virtual bool check_is_animated(const HierarchyContext &context) const
virtual void write(HierarchyContext &context)=0
static bool check_has_deforming_physics(const HierarchyContext &context)
virtual ~AbstractHierarchyWriter()=default
static bool check_has_physics(const HierarchyContext &context)
bool is_newly_created() const
static EnsuredWriter empty()
static EnsuredWriter existing(AbstractHierarchyWriter *writer)
static EnsuredWriter newly_created(AbstractHierarchyWriter *writer)
AbstractHierarchyWriter * operator->()
static ObjectIdentifier for_graph_root()
static ObjectIdentifier for_duplicated_object(const DupliObject *dupli_object, Object *duplicated_by)
PersistentID persistent_id
static ObjectIdentifier for_real_object(Object *object)
static ObjectIdentifier for_hierarchy_context(const HierarchyContext *context)
ObjectIdentifier(Object *object, Object *duplicated_by, const PersistentID &persistent_id)
bool operator==(const PersistentID &persistent_id_a, const PersistentID &persistent_id_b)
uint64_t get_default_hash(const T &v, const Args &...args)
static PyObject * create_func(PyObject *, PyObject *args)
bool animation_check_include_parent
bool is_prototype() const
bool is_point_instancer() const
bool is_object_visible(enum eEvaluationMode evaluation_mode) const
void mark_as_not_instanced()
float parent_matrix_inv_world[4][4]
std::string original_export_path
static const HierarchyContext * root()
bool is_object_data_context
ParticleSystem * particle_system
std::string higher_up_export_path
PersistentID persistent_id
void mark_as_instance_of(const std::string &reference_export_path)
bool has_point_instance_ancestor