Source code for honeybee_radiance.modifier.material.plasdata
"""Radiance Plasdata Material.
http://radsite.lbl.gov/radiance/refer/ray.html#Plasdata
"""
from .materialbase import Material
# TODO: Implement the class. It's currently only a generic Radiance Primitive
[docs]
class Plasdata(Material):
"""Radiance Plasdata Material.
Plasdata is used for arbitrary BRDF's that are most conveniently given as
interpolated data. The arguments to this material are the data file and coordinate
index functions, as well as a function to optionally modify the data values.
.. code-block:: shell
mod plasdata id
3+n+
func datafile
funcfile x1 x2 .. xn transform
0
4+ red green blue spec A5 ..
The coordinate indices (x1, x2, etc.) are themselves functions of the x, y and z
direction to the incident light, plus the solid angle subtended by the light source
(usually ignored). The data function (func) takes five variables, the interpolated
value from the n-dimensional data file, followed by the x, y and z direction to the
incident light and the solid angle of the source. The light source direction and
size may of course be ignored by the function.
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