Оптимизация кеша для Object Data Plugin
def GetVirtualObjects(self, op, hh):
# dirty = True если кэш изменен или данные (любые параметры) объекта изменились.
dirty = op.CheckCache(hh) or op.IsDirty(c4d.DIRTY_DATA)
# Если ничего не изменилось и кеш присутствует, верните кеш
if not dirty:
return op.GetCache(hh)
# создаем куб
return c4d.BaseObject(c4d.Ocube)class CacheTest(plugins.ObjectData):
"""CacheTest Generator"""
def __init__(self):
self.SetOptimizeCache(True)
def GetVirtualObjects(self, op, hh):
"""
Поскольку SetOptimizeCache имеет значение True в методах __init__, следующие строки больше не нужны.
Внутренние проверки по-прежнему будут выполняться, но на C++, а не на Python, что приведет к увеличению производительности.
dirty = op.CheckCache(hh) or op.IsDirty(c4d.DIRTY_DATA)
if not dirty:
return op.GetCache(hh)
"""
# Creates a cube
return c4d.BaseObject(c4d.Ocube)Last updated