30 dupli_set_.insert(dupli_ob->
ob);
33 pid_to_dupli_[dupli_pid] = dupli_ob;
34 instancer_pid_to_duplis_[dupli_pid.
instancer_pid()].insert(dupli_ob);
39 return dupli_set_.find(
object) != dupli_set_.end();
45 if (dupli_ob->
ob->
parent !=
nullptr) {
46 const DupliObject *parent = find_duplicated_parent(dupli_ob);
47 if (parent !=
nullptr) {
52 return find_instancer(dupli_ob);
63 InstancerPIDToDuplisMap::const_iterator found = instancer_pid_to_duplis_.find(parent_pid);
64 if (found == instancer_pid_to_duplis_.end()) {
69 for (
const DupliObject *potential_parent_dupli : found->second) {
70 if (potential_parent_dupli->
ob != parent_ob) {
74 PersistentID potential_parent_pid(potential_parent_dupli);
75 if (potential_parent_pid.is_from_same_instancer_as(dupli_pid)) {
76 return potential_parent_dupli;
84 PersistentID dupli_pid(dupli_ob);
87 PIDToDupliMap::const_iterator found = pid_to_dupli_.find(parent_pid);
88 if (found == pid_to_dupli_.end()) {
93 return instancer_dupli;
const DupliObject * find_suitable_export_parent(const DupliObject *dupli_ob) const
void insert(const DupliObject *dupli_ob)
bool is_duplicated(const Object *object) const
PersistentID instancer_pid() const