Thanks to our driver abstraction layer and opaque window references, we can write our code that deals with the controller and performs platform-specific manipulations, and yet is set up to be ported to other operating systems easily, just by implementing the proper driver methods and specifying which source files to compile.
A number of useful modules for creating portable Leap applications with few dependencies are additionally provided by the SDK in the util
directory. LeapUtil.h
contains a limited but practical set of math-related routines for motion and geometry, smart pointer generics, and a generic camera class that can be used with any sort of 3D. In addition, engine.LeapScene.h
has utilities for tracking visible objects and geometric primitives in a virtual environment, and has convenience methods for computing pointable ray intersections with scene objects, as well as tracking interactions such as object selection and transformations. Lastly, LeapUtilGL.h
gives us a small...