Source code for yt_idv.scene_data.base_data
import traitlets
from yt_idv.opengl_support import Texture, VertexArray
[docs]class SceneData(traitlets.HasTraits):
"""A class that defines a collection of GPU-managed data.
This class contains the largest common set of features that can be used
OpenGL rendering: a set of vertices and a set of vertex attributes. Note
that this is distinct from the shader, which can be swapped out and
provided with these items.
"""
name = traitlets.Unicode()
vertex_array = traitlets.Instance(VertexArray)
textures = traitlets.List(trait=traitlets.Instance(Texture))
min_val = traitlets.CFloat(0.0)
max_val = traitlets.CFloat(1.0)
def _normalize_by_min_max(self, data):
# linear normalization of data across full data range
return (data - self.min_val) / self.val_range
@property
def val_range(self):
# the data range (max - min) across all data.
# note: not using traitlets here because it seemed overkill to
# observe min_val and max_val
return self.max_val - self.min_val