Source code for honeybee_radiance.modifier.material.prism1
"""Radiance Prism1 Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Prism1
"""
from .materialbase import Material
# TODO: Implement the class. It's currently only a generic Radiance Primitive
[docs]
class Prism1(Material):
"""Radiance Prism1 Material.
The prism1 material is for general light redirection from prismatic glazings,
generating virtual light sources. It can only be used to modify a planar surface
(i.e., a polygon or disk) and should not result in either light concentration or
scattering. The new direction of the ray can be on either side of the material, and
the definitions must have the correct bidirectional properties to work properly with
virtual light sources. The arguments give the coefficient for the redirected light
and its direction.
.. code-block:: shell
mod prism1 id
5+ coef dx dy dz funcfile transform
0
n A1 A2 .. An
The new direction variables dx, dy and dz need not produce a normalized vector. For
convenience, the variables DxA, DyA and DzA are defined as the normalized direction
to the target light source.
Args:
identifier: Text string for a unique Material ID. Must not contain spaces
or special characters. This will be used to identify the object across
a model and in the exported Radiance files.
modifier: Modifier. It can be primitive, mixture, texture or pattern.
(Default: None).
values: An array 3 arrays for primitive data. Each of the 3 sub-arrays
refer to a line number in the radiance primitive definitions and the
values in each array correspond to values occurring within each line.
is_opaque: A boolean to indicate whether this primitive is opaque.
dependencies: A list of primitives that this primitive depends on. This
argument is only useful for defining advanced primitives that are
defined based on other primitives. (Default: []).
Properties:
* identifier
* display_name
* values
* modifier
* dependencies
* is_modifier
* is_material
* is_opaque
"""
__slots__ = ()
pass