Source code for honeybee_radiance.geometry.instance
"""Radiance Transfunc Instance.
http://radsite.lbl.gov/radiance/refer/ray.html#Instance
"""
from .geometrybase import Geometry
# TODO(): Implement the class. It's currently creates this geometry as generic Radiance
# geometry
[docs]
class Instance(Geometry):
"""Radiance Instance.
An instance is a compound surface, given by the contents of an octree file (created
by oconv).
.. code-block:: shell
mod instance id
1+ octree transform
0
0
If the modifier is "void", then surfaces will use the modifiers given in the original
description. Otherwise, the modifier specified is used in their place. The transform
moves the octree to the desired location in the scene. Multiple instances using the
same octree take little extra memory, hence very complex descriptions can be rendered
using this primitive.
There are a number of important limitations to be aware of when using instances.
First, the scene description used to generate the octree must stand on its own,
without referring to modifiers in the parent description. This is necessary for
oconv to create the octree. Second, light sources in the octree will not be
incorporated correctly in the calculation, and they are not recommended. Finally,
there is no advantage (other than convenience) to using a single instance of an
octree, or an octree containing only a few surfaces. An xform command on the
subordinate description is preferred in such cases.
"""
__slots__ = ()
pass