Skip to content

kitschpatrol/ofxRRScenegraph

 
 

Repository files navigation

ofxRRScenegraph

This is a collection of classes to fill the need for a simple and versatile basis when creating multitouch applications, originally used with a pq-labs full-hd touchscreen.


##This Fork Kitschpatrol's fork adds openFrameworks 9.0 and 64-bit support on Windows and Mac OS X. It moves all of the embedded dependencies into external repositories (listed at the bottom of this doc).


##Architecture

The most important Elements are:

Renderer:

  • is the Root of the whole scene graph and provides functionality for picking of interactive objects.
  • Has a ofCamera for global view manipulations
  • Works with TUIO or Mouse input
  • The picking mechanism is based on FBO color picking,

Basic Screen Object:

  • Is a super powered element, based on ofNode
  • Has functionality for tweened animations (position, size, scale, rotation, color, alpha), parameter restrictions, nested drawing, masking, etc. moveTo, scaleTo, fadeTo etc.
  • Has lots of convenience functionality, like setRandomColor() or killMeSoftly(), moveMeToTop() etc.

Basic Interactive Object:

  • Receives all the multitouch events from the renderer and is drawn in the color picking loop.
  • Multitouch-Actions may be applied directly to the Element itself or to another by setting the MTTarget, can be any BasicScreenObject
  • Can handle as many multitouchpoints as desired.
  • has info on all multitouchtransforms while multitouch-scope is running, for instance total dragged distance or rotation-speed, etc.

Everything else is not essential to the scenegraph but very helpful nonetheless:

  • TextField, using the marvelous Pango library for Font-Rendering, and the extension the scrollableTextField
  • Image, container of an ofImage with great sizing functions
  • BasicButton mostly to show how to implement the button functionality
  • A simple Shape BaseClass and some shape implementations, very much not finished.

We used this Scenegraph for some Touchscreenapplications successfully. Although the Concept of putting almost all functionality into one magic object may not be the best way build this, but i like it that way, thats why.

Make sure you have all the needed addons linked.search paths.

The Pango version is a fork from roxlu with some added functionality like tabstops.

Dependencies

Core Addons:

  • ofxThreadedImageLoader
  • ofxXMLSettings
  • ofxOSC

Addons:

Mac OS X System Frameworks:

  • ibffi
  • libiconv

##TODO

  • Create addon_config.mk
  • Scroll limit elasticity
  • "Stab to stop" scrollable container behavior
  • Thresholded snap-to-element behavior in scrollable container.
  • Arbitrary scrolllable container contents
  • Two-dimensional scrollable container
  • Namespacing

About

A simple multitouch scenegraph for openframeworks

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 97.9%
  • Makefile 1.9%
  • C 0.2%