wiki:drawing3d
Last modified 17 months ago Last modified on 02/27/14 14:51:05

A 3D Drawing Widget for Rappture

This widget can be used for both Rappture inputs and outputs. It displays a drawing in 3 dimensions. It is *not* a 3D drawing editor. A goal is to replace images of specimens or devices with a 3D drawing that can be manipulated.

<drawing>
  <about>
    <label>...</label>
    <description>...</description>
  </about>
  <xaxis>
    <label>...</label>
    <units>...</units>
  </xaxis>
  <yaxis>
    <label>...</label>
    <units>...</units>
  </yaxis>
  <zaxis>
    <label>...</label>
    <units>...</units>
  </zaxis>
  <polydata>
    <about>
      <label>Polydata Example</label>
      <style>-color blue -opacity 0.9 -linewidth 2</style>
    </about>
    <vtk>..vtk file contents..</vtk>
  </polydata>
  <glyphs>
    <about>
      <label>Glyphs Example</label>
      <shape>sphere</shape>
      <style>-edges off -gscale 1</style>
    </about>
    <vtk>..vtk file contents..</vtk>
  </glyphs>
  <molecule>
    <about>
      <label>Molecule Example</label>
    </about>
    <pdb>..pdb file contents..</pdb>
  </molecule>
</drawing>
  • Purposes:
    • A simple device viewer. Can be rotated and zoomed.
    • Lets you build a structure with several layers.
    • View simple molecules.
  • Axes are optional.
  • Components are basic geometric types or vtk file types.
  • Individual components can be hidden.
  • Associations can be made between components/values and another Rappture input.
    • A notification is generated whenever the input changes, causing the drawing to be rendered with the new values.
  • Right now software rendering is done on the execution host. Can create client/server application on render servers.
    • This works so long as number of objects is manageable (not 1 million atoms).
  • Needs:
    • Examples of inputs and outputs.
      • Types of interactions with inputs.
      • Types of interactions with outputs.