eradiate.kernel.KernelSceneParameterMap

class eradiate.kernel.KernelSceneParameterMap(data=NOTHING)[source]

Bases: UserDict

A dict-like structure which contains the structure of a Mitsuba scene parameter update map.

Each entry maps a string key to a SceneParameter instance that implements an update protocol for a Mitsuba scene parameter.

clear() None.  Remove all items from D.
get(k[, d]) D[k] if k in D, else d.  d defaults to None.
items() a set-like object providing a view on D's items
keys() a set-like object providing a view on D's keys
pop(k[, d]) v, remove specified key and return the corresponding value.

If key is not found, d is returned if given, otherwise KeyError is raised.

popitem() (k, v), remove and return some (key, value) pair

as a 2-tuple; but raise KeyError if D is empty.

render(ctx, flags=<KernelSceneParameterFlags.ALL: 3>, drop=False)[source]

Evaluate the parameter map for a given kernel context and for selected flags.

Parameters:
  • ctx (KernelContext) – A kernel dictionary context.

  • flags (ParamFlags) – Parameter flags. Only parameters with at least one of the specified will pass the filter.

  • drop (bool, optional) – If True, drop unused parameters. Parameters may be unused either because they were filtered out by the flags or because context information implied it. If False, any unused parameter will raise an exception.

Returns:

params (dict) – A mapping that can be used to update values in a mitsuba.SceneParameters.

Raises:
setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in D
update([E, ]**F) None.  Update D from mapping/iterable E and F.

If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v

values() an object providing a view on D's values