shaders

Read shader files.

add_shader_callback(actor, callback)

Add a shader callback to the actor.

attribute_to_actor(actor, arr, attr_name[, deep])

Link a numpy array with vertex attribute.

dirname(p)

Returns the directory component of a pathname

load(filename)

pjoin(a, *p)

Join two or more pathname components, inserting ‘/’ as needed.

replace_shader_in_actor(actor, shader_type, code)

Set and Replace the shader template with a new one.

shader_to_actor(actor, shader_type[, …])

Apply your own substitutions to the shader creation process.

Module: shaders.base

add_shader_callback(actor, callback)

Add a shader callback to the actor.

attribute_to_actor(actor, arr, attr_name[, deep])

Link a numpy array with vertex attribute.

enable_warnings([warnings_origin])

Enable global warnings.

replace_shader_in_actor(actor, shader_type, code)

Set and Replace the shader template with a new one.

shader_to_actor(actor, shader_type[, …])

Apply your own substitutions to the shader creation process.

add_shader_callback

fury.shaders.add_shader_callback(actor, callback)[source]

Add a shader callback to the actor.

Parameters
  • actor (vtkActor) – Rendered Object

  • callback (callable) – function or class that contains 3 parameters: caller, event, calldata. This callback will be trigger at each UpdateShaderEvent event.

attribute_to_actor

fury.shaders.attribute_to_actor(actor, arr, attr_name, deep=True)[source]

Link a numpy array with vertex attribute.

Parameters
  • actor (vtkActor) – Rendered Object

  • arr (ndarray) – array to link to vertices

  • attr_name (str) – vertex attribute name. the vtk array will take the same name as the attribute.

  • deep (bool, optional) – If True a deep copy is applied. Otherwise a shallow copy is applied, by default True

dirname

fury.shaders.dirname(p)[source]

Returns the directory component of a pathname

load

fury.shaders.load(filename)[source]

pjoin

fury.shaders.pjoin(a, *p)

Join two or more pathname components, inserting ‘/’ as needed. If any component is an absolute path, all previous path components will be discarded. An empty last part will result in a path that ends with a separator.

replace_shader_in_actor

fury.shaders.replace_shader_in_actor(actor, shader_type, code)[source]

Set and Replace the shader template with a new one.

Parameters
  • actor (vtkActor) – Object where you want to set the shader code.

  • shader_type (str) – Shader type: vertex, geometry, fragment

  • code (str) – new shader template code

shader_to_actor

fury.shaders.shader_to_actor(actor, shader_type, impl_code='', decl_code='', block='valuepass', keep_default=True, replace_first=True, replace_all=False, debug=False)[source]

Apply your own substitutions to the shader creation process.

A bunch of string replacements is applied to a shader template. Using this function you can apply your own string replacements to add features you desire

Parameters
  • actor (vtkActor) – Object where you want to add the shader code.

  • shader_type (str) – Shader type: vertex, geometry, fragment

  • impl_code (str, optional) – shader implementation code, should be a string or filename

  • decl_code (str, optional) – shader declaration code, should be a string or filename by default None

  • block (str, optional) – section name to be replaced. vtk use of heavy string replacments to to insert shader and make it flexible. Each section of the shader template have a specific name. For more informations: https://vtk.org/Wiki/Shaders_In_VTK. The possible values are: position, normal, light, tcoord, color, clip, camera, prim_id, valuepass. by default valuepass

  • keep_default (bool, optional) – keep the default block tag to let VTK replace it with its default behavior. By default True

  • replace_first (bool, optional) – If True, apply this change before the standard VTK replacements by default True

  • replace_all (bool, optional) – [description], by default False

  • debug (bool, optional) – introduce a small error to debug shader code. by default False

add_shader_callback

fury.shaders.base.add_shader_callback(actor, callback)[source]

Add a shader callback to the actor.

Parameters
  • actor (vtkActor) – Rendered Object

  • callback (callable) – function or class that contains 3 parameters: caller, event, calldata. This callback will be trigger at each UpdateShaderEvent event.

attribute_to_actor

fury.shaders.base.attribute_to_actor(actor, arr, attr_name, deep=True)[source]

Link a numpy array with vertex attribute.

Parameters
  • actor (vtkActor) – Rendered Object

  • arr (ndarray) – array to link to vertices

  • attr_name (str) – vertex attribute name. the vtk array will take the same name as the attribute.

  • deep (bool, optional) – If True a deep copy is applied. Otherwise a shallow copy is applied, by default True

enable_warnings

fury.shaders.base.enable_warnings(warnings_origin=None)[source]

Enable global warnings.

Parameters

warnings_origin (list) – list origin [‘all’, ‘fury’, ‘vtk’, ‘matplotlib’, …]

replace_shader_in_actor

fury.shaders.base.replace_shader_in_actor(actor, shader_type, code)[source]

Set and Replace the shader template with a new one.

Parameters
  • actor (vtkActor) – Object where you want to set the shader code.

  • shader_type (str) – Shader type: vertex, geometry, fragment

  • code (str) – new shader template code

shader_to_actor

fury.shaders.base.shader_to_actor(actor, shader_type, impl_code='', decl_code='', block='valuepass', keep_default=True, replace_first=True, replace_all=False, debug=False)[source]

Apply your own substitutions to the shader creation process.

A bunch of string replacements is applied to a shader template. Using this function you can apply your own string replacements to add features you desire

Parameters
  • actor (vtkActor) – Object where you want to add the shader code.

  • shader_type (str) – Shader type: vertex, geometry, fragment

  • impl_code (str, optional) – shader implementation code, should be a string or filename

  • decl_code (str, optional) – shader declaration code, should be a string or filename by default None

  • block (str, optional) – section name to be replaced. vtk use of heavy string replacments to to insert shader and make it flexible. Each section of the shader template have a specific name. For more informations: https://vtk.org/Wiki/Shaders_In_VTK. The possible values are: position, normal, light, tcoord, color, clip, camera, prim_id, valuepass. by default valuepass

  • keep_default (bool, optional) – keep the default block tag to let VTK replace it with its default behavior. By default True

  • replace_first (bool, optional) – If True, apply this change before the standard VTK replacements by default True

  • replace_all (bool, optional) – [description], by default False

  • debug (bool, optional) – introduce a small error to debug shader code. by default False