Cache::i_Primitive CGALCache::hashPrimitive(Primitive* pr) { CGALPrimitive* cg=dynamic_cast<CGALPrimitive*>(pr); if(cg) { return hashPrimitive(cg); } return Cache::hashPrimitive(pr); }
Primitive* Cache::fetch(Primitive* pr) { if(pr) { i_Primitive ip=hashPrimitive(pr); Primitive* np=allPrimitives.value(ip,NULL); if(np) { return np->copy(); } allPrimitives.insert(ip,pr->copy()); } return pr; }