// Override from SoField to check node pointer. SbBool SoSFNode::referencesCopy(void) const { if (inherited::referencesCopy()) return TRUE; SoBase * n = this->getValue(); if (!n) return FALSE; if (n->isOfType(SoNode::getClassTypeId()) || n->isOfType(SoEngine::getClassTypeId())) { if (SoFieldContainer::checkCopy(coin_assert_cast<SoFieldContainer *>(n))) return TRUE; } else if (n->isOfType(SoPath::getClassTypeId())) { SoPath * p = coin_assert_cast<SoPath *>(n); if (p->getHead() == NULL) return FALSE; if (SoFieldContainer::checkCopy(p->getHead())) return TRUE; } else { assert(0 && "strange internal error"); } return FALSE; }