Пример #1
0
Cache::i_Primitive CGALCache::hashPrimitive(Primitive* pr)
{
    CGALPrimitive* cg=dynamic_cast<CGALPrimitive*>(pr);
    if(cg) {
        return hashPrimitive(cg);
    }
    return Cache::hashPrimitive(pr);
}
Пример #2
0
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;
}