39 class AbstractHierarchyWriter;
40 class DupliParentFinder;
155 operator bool()
const;
195 typedef std::map<std::string, AbstractHierarchyWriter *>
WriterMap;
250 void export_graph_construct();
251 void connect_loose_objects();
252 void export_graph_prune();
253 void export_graph_clear();
255 void visit_object(
Object *
object,
Object *export_parent,
bool weak_export);
261 const ExportGraph::key_type &graph_index)
const;
264 void determine_duplication_references(
const HierarchyContext *parent_context,
277 std::string get_object_name(
const Object *
object)
const;
278 std::string get_object_data_name(
const Object *
object)
const;
292 const std::string &child_path)
const;
struct Depsgraph Depsgraph
std::map< ObjectIdentifier, ExportChildren > ExportGraph
virtual ExportGraph::key_type determine_graph_index_object(const HierarchyContext *context)
virtual bool should_visit_dupli_object(const DupliObject *dupli_object) const
virtual ~AbstractHierarchyIterator()
virtual AbstractHierarchyWriter * create_data_writer(const HierarchyContext *context)=0
virtual void release_writer(AbstractHierarchyWriter *writer)=0
virtual AbstractHierarchyWriter * create_transform_writer(const HierarchyContext *context)=0
virtual AbstractHierarchyWriter * create_particle_writer(const HierarchyContext *context)=0
virtual bool mark_as_weak_export(const Object *object) const
ExportGraph export_graph_
virtual std::string get_id_name(const ID *id) const
ExportPathMap duplisource_export_path_
std::map< std::string, AbstractHierarchyWriter * > WriterMap
AbstractHierarchyIterator(Main *bmain, Depsgraph *depsgraph)
virtual AbstractHierarchyWriter * create_hair_writer(const HierarchyContext *context)=0
void set_export_subset(ExportSubset export_subset_)
virtual void iterate_and_write()
ExportChildren & graph_children(const HierarchyContext *parent_context)
virtual std::string path_concatenate(const std::string &parent_path, const std::string &child_path) const
std::map< ID *, std::string > ExportPathMap
AbstractHierarchyWriter * get_writer(const std::string &export_path) const
virtual std::string make_valid_name(const std::string &name) const
ExportSubset export_subset_
virtual ExportGraph::key_type determine_graph_index_dupli(const HierarchyContext *context, const DupliObject *dupli_object, const DupliParentFinder &dupli_parent_finder)
virtual std::string get_object_data_path(const HierarchyContext *context) const
std::set< HierarchyContext * > ExportChildren
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)
const Depsgraph * depsgraph
bool operator<(const PersistentID &persistent_id_a, const PersistentID &persistent_id_b)
bool operator==(const PersistentID &persistent_id_a, const PersistentID &persistent_id_b)
static PyObject * create_func(PyObject *, PyObject *args)
bool animation_check_include_parent
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()
ParticleSystem * particle_system
std::string higher_up_export_path
bool operator<(const HierarchyContext &other) const
PersistentID persistent_id
void mark_as_instance_of(const std::string &reference_export_path)