1. 22 Apr, 2020 1 commit
    • Hans Johnson's avatar
      STYLE: Prefer = default to explicitly trivial implementations · f118a65a
      Hans Johnson authored
      This check replaces default bodies of special member functions with
      = default;. The explicitly defaulted function declarations enable more
      opportunities in optimization, because the compiler might treat
      explicitly defaulted functions as trivial.
      
      Additionally, the C++11 use of = default more clearly expreses the
      intent for the special member functions.
      f118a65a
  2. 18 Nov, 2019 1 commit
    • Kitware Robot's avatar
      clang-format: reformat using clang-format-8 · ac76fe16
      Kitware Robot authored
      Run the `clang-format.bash` script to update all our C and C++ code to a
      new style defined by `.clang-format`.  Use `clang-format` version 8.0.
      
      * If you reached this commit for a line in `git blame`, re-run the blame
        operation starting at the parent of this commit to see older history
        for the content.
      
      * See the parent commit for instructions to rebase a change across this
        style transition commit.
      ac76fe16
  3. 24 Mar, 2016 1 commit
    • David DeMarle's avatar
      Flesh out ospray rendering and scene graph · c5a51d13
      David DeMarle authored
      make ospray pass create the scene graph so user doesn't have to
      move ospray specific controls to ivars on ospraynodes
      Improve caching
      Now we cache what we can but not so much that we
      fail time, or dynamic, or actor hiding. Also prevent double
      delete on actor hiding and style
      no special access just for ospray
      Access to scenegraph view node would probably be OK.
      make sure we get cell colors right for arbitrary polygons
      using a reverse index from triangulated (or cylindered or pointed)
      output cell back to input vtk cell. The output cells are homogenous
      but the input cells aren't necessarily.
      quad 0 -> tri 0 : rindex 0
                tri 1 : rindex 0
      tri 1  -> tri 2 : rindex 0
      color 0 -> color 0,1
      color 1 -> color 2
      flesh out point size and line width controls
      Now user chosen pointsize and linewidth on mapper matter.
      Also, user can designate a point aligned array to vary elements individually
      and user can provide a lookuptable to manipulate those values arbitrarily.
      In all cases there is an additional scaling control for fine tuning.
      start to clean up actor to ospray translation
      just use c++ new and remove embree calls to simplify
      a single namespace for helpers
      more logical flow for readability
      Fix image space transformations
      Also flesh out the implicits test and remove the related check from
      render mesh now that it has its own test.
      Fix some subtle bugs in caching.
      Moved cache of ospray objects out to composite level. Would be nice to
      cache indiviual blocks but the way I did it before was broken.
      In process I found and fixed a bug regarding normals.
      more cleanup actor to ospray translation and fix line sizing
      was using wrong index into point value for line size, also changed
      to use average of values at endpoints instead of first value
      Also promote large chunks of the conversion process to the scenegraph level
      because it is reusable. That and cleanup the ospray actor a lot.
      move light vector out to renderer to allow multiple lights
      also, just say no to c style casts.
      toward consistent API for setting ospray specific state
      The plan is for the scenegraph level to be restricted to read only
      access to rendering/core state. Since backend specific classes are
      hard to get a hold of (created late), options for them go into
      information objects on the core classes. There will be setters/getters
      on the backend classes though to make it easier to set them in the
      case where you have access.
      Fix multiple lights and add a test for lights
      Make a consistent API for setting options that affect ospray.
      fine tune lighting
      lights now obey intensity and switch and color range is closer for
      positional and directional lights. positional are still much
      brighter for some reason so I've kludged in a 1/5 factor to make them
      close.
      actor colors obey diffuse and specular multipliers now and cell
      aligned color maps now repect opacity and specularity. not sure if
      I'll make point aligned colors do the same just yet since not
      doing so saves space and keeps rgb and val interpolated consistent and
      doesn't require changes to ospray to make texture materials respect them.
      The key thing I understand now is that ospray does colors with
      everything 0..1 except texture maps, which go 0..255.
      Interesting to note that Ospray images are whiter than GL counterparts
      when ambient occlusion enabled.
      SceneGraph is not ready for default on, so take it out of rendering group.
      Bunch of compiler warnings.
      The collection iterator remove actor in loop change was important.
      Don't know yet why implicits don't work on windows, otherwise in pretty good
      shape as rest of tests pass. cmake find and ospray version
      include need more work.
      fix inconsistent background clearing
      testdynamicobject was wrong before this, as was GL2 and interactive
      camera motion. First would have nonsensical bckground, second would
      streak.
      Remove implicit SCALE hack and add a light Intensity hack.
      Mapper SCALE is not needed since pointsize and linewidth are doubles
      not integers in modern paraview. Add a light multiplier, applied to
      ALL lights, for ParaView because with 6 double sided lights, the
      default is too bright.
      guard against actor without mapper and get scalars for multiblock
      enable block colors and improve implicit colors and sizes
      We now handle block visibility, opacity and color.
      Fixed a case of always black implicits for paraview.
      Added a new control that by default disables implicit scaling.
      improve caching
      had some cases where it would not rebuild when it needed to.
      One was in paraview when changing colormap variable.
      Confine ospray to a renderer instead of a renderwindow
      Makes for easier interoperability with GL layers.
      Fix lighting and multiple layers
      Now that we are using the lights pass (and we should so that
      we update camera positions) it exposed a bug where the default
      created camera was not actually removed from the Renderer's light
      collection. As a result, ospray renderings added duplicate default
      lights and the images became washed out.
      Also, added back in compositing of ospray layers which used to
      happen and the ospraywindownode level. TODO: add a compositeRGB
      call to renderwindow to do it nicely.
      update ospray to only build MPI test when supported
      Removed the dependence on MPI and replaced it with a
      conditional. If parallel and MPI are already on then
      it will include the MPI based ospray tests and the
      required libs and includes
      move actor code down to mappers
      introduce mapperNodes to do the bulk of the work
      also some cleanup to the updating children code
      bunch more changes for mapper
      more mapper related changes
      fixes and resolve restore some missed features
      Was a reference leak in parent, use weakpointer to fix
      Need another mapper override for OpenGL1
      HeaderTest fix
      minor Style //---'s per vtk style guide
      added back the use ambient color fallback and a handful of other
      features that were in actornode only after start of move to mappernode
      Fix scalar colors with multiblock data.
      Before it would reuse block0's color arrays for block1 and the
      result would be wrong.
      Fill in per block and from field data color paths
      Restore window node, move compositing to pass, cleanup traversal
      This also implies that you could render without
      even having opengl. Added a test for the windownode entry point.
      Moved some of the compositing code into the pass. The idea
      being that if you are building with OpenGL then you would
      also build ospraypass. Otherwise you would not. The other classes
      should not require a OpenGL implementation. Only the pass.
      Changed the traversal implementation so that each step gets called
      both before and after its decendents. This is implemented with a
      prepass argument that is true before the decendents and false after.
      Removed the YYYSelf() methods.
      Removed most the ORender methods as they were a tad confusing.
      Converted some ospray specific subclasses to just implement
      Render() where before they had ORender.
      Fixed two bugs in the writelayer compositing code.
      Remove scenegraph's copies of state
      Going with direct access to renderable
      fix scenegraph test
      miscellaneous fixes
      Now specifying implicit scaling array by name rather than pointer.
      Made Mapper:ClearColorArrays() not modify the mapper because it
      disallows caching and is not necessary.
      Restored the use ambient when diffuse is not available behavior
      so that paraview point and cylinder representations look OK.
      Restores ability to have ospray layers not at layer 0.
      Re-enabled RenderPass::ClearLights to fix some GL1 tests.
      Fixed header test.
      c5a51d13
  4. 23 Mar, 2016 1 commit
    • David DeMarle's avatar
      Add a systematic approach to traversing VTK's renderables · 94811a10
      David DeMarle authored
      The basic idea is a uniform means to traverse the various
      instances that define the visible scene in VTK, inspect their
      state, and do arbitrary operations (build, synchronize and
      render thus far) from them.
      
      Interactive rendering is the primary use case. Here we traverse
      and make calls to some external API to draw the scene (e.g.
      OSPRay). We could potentially write out input files for
      other packages (e.g. exporters) or do particular transformations
      with this too.
      94811a10