Clone wiki

sig / Code Structure

SIG Libraries

SIG is currently organized in 4 libraries:

  • sig: core graphics classes
  • sigogl: OpenGL related classes
  • sigos: operating system interface
  • sigkin: skeleton and motion classes

Modules in Libraries

The .h and .cpp files in each library are divided in modules identified by the first 2 letters of each file. The modules for each library are:

  • gs (sig): generic graphics and system classes, examples: GsVec, GsMat, GsOuput, GsArray
  • sn (sig): scene graph nodes, examples: SnModel, SnLines, SnTransform
  • sa (sig): scene graph actions, examples: SaBBox, SaRenderMode
  • cd (sig): interface to external collision detectors, examples: CdImplementation, CdManager
  • wsi (sigos): OS-specific window system interface, examples: wsi_get_ogl_procedure()
  • gl (sigogl): OpenGL-related functions and classes, examples: GlProgram, GlTexture
  • glr (sigogl): Scene node renderers based on OpenGL, examples: GlrMode, GlrLines, GlrText
  • ui (sigogl): OpenGL-rendered GUI classes, examples: UiButton, UiStyle, UiManager
  • ws (sigogl): Window system classes, examples: WsWindow, WsViewer
  • kn (sigkin): Kinematics of articulated structures, examples: KnJoint, KnSkeleton, KnMotion

Naming Conventions

SIG follows a simple yet consistent naming convention which is briefly described in gs.h. It has proven to be effective over the many years it has been used.