14 dupli_set_.insert(dupli_ob->
ob);
17 pid_to_dupli_[dupli_pid] = dupli_ob;
18 instancer_pid_to_duplis_[dupli_pid.
instancer_pid()].insert(dupli_ob);
23 return dupli_set_.find(
object) != dupli_set_.end();
29 if (dupli_ob->
ob->
parent !=
nullptr) {
30 const DupliObject *parent = find_duplicated_parent(dupli_ob);
31 if (parent !=
nullptr) {
36 return find_instancer(dupli_ob);
47 InstancerPIDToDuplisMap::const_iterator found = instancer_pid_to_duplis_.find(parent_pid);
48 if (found == instancer_pid_to_duplis_.end()) {
53 for (
const DupliObject *potential_parent_dupli : found->second) {
54 if (potential_parent_dupli->
ob != parent_ob) {
58 PersistentID potential_parent_pid(potential_parent_dupli);
59 if (potential_parent_pid.is_from_same_instancer_as(dupli_pid)) {
60 return potential_parent_dupli;
68 PersistentID dupli_pid(dupli_ob);
71 PIDToDupliMap::const_iterator found = pid_to_dupli_.find(parent_pid);
72 if (found == pid_to_dupli_.end()) {
77 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