15 dupli_set_.insert(dupli_ob->
ob);
18 pid_to_dupli_[dupli_pid] = dupli_ob;
19 instancer_pid_to_duplis_[dupli_pid.
instancer_pid()].insert(dupli_ob);
24 return dupli_set_.find(
object) != dupli_set_.end();
30 if (dupli_ob->
ob->
parent !=
nullptr) {
31 const DupliObject *parent = find_duplicated_parent(dupli_ob);
32 if (parent !=
nullptr) {
37 return find_instancer(dupli_ob);
48 InstancerPIDToDuplisMap::const_iterator found = instancer_pid_to_duplis_.find(parent_pid);
49 if (found == instancer_pid_to_duplis_.end()) {
54 for (
const DupliObject *potential_parent_dupli : found->second) {
55 if (potential_parent_dupli->ob != parent_ob) {
59 PersistentID potential_parent_pid(potential_parent_dupli);
60 if (potential_parent_pid.is_from_same_instancer_as(dupli_pid)) {
61 return potential_parent_dupli;
69 PersistentID dupli_pid(dupli_ob);
72 PIDToDupliMap::const_iterator found = pid_to_dupli_.find(parent_pid);
73 if (found == pid_to_dupli_.end()) {
78 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