Coin 4.0.0 Modifications - magic-lantern-studio/mle-documentation GitHub Wiki

This discussion outlines the modifications made to the Github Coin3D libraries. These modifications were made to version 4.0.0 of the Coin library. Some modifications were also made to version 1.5.0 of the SoWin library and version 1.4.0 of the SoXt library.

Tale of Contents

Coin Modifications

The following modifications were made to the coin* library:

  1. Added SoTransformer2Dragger.cpp to "src/draggers".
  2. Added SoTransformer2Dragger.h to "include/Inventor/draggers".
  3. Added Transformer2Dragger.iv to "data/draggerDefaults".
  4. Added Transformer2Dragger.h to "build/msvc8/data/draggerDefaults".
  5. Declared invalidateWorldConversionMatrices() method in SoDragger.h.
  6. Implemented invalidateWorldConversionMatrices() method in SoDragger.cpp.
  7. Added copy of SoTransformer2Dragger.h to install-headers.bat script.
  8. Declared setSwitchValue(SoNode *node, const int which) method to SoTransformerDragger.h.
  9. Implemented setSwitchValue method to SoTransformerDragger.cpp.
  10. Added SoTransformer2Manip.h to "include/Inventor/manips".
  11. Added SoTransformer2Manip.cpp to "src/manips".
  12. Added copy of SoTransformer2Manip.h to install-headers.bat script.
  13. Modified SoDragger::initClasses() to add SoTransformer2Dragger::initClass() entry.
  14. Modified SoInteraction::init() to add SoTransformer2Manip::initClass() entry.
  15. Modified SoDragger::getPartToLocalMatrix() by adding the conditional "if (PRIVATE(this)->draggercache) {...}".

These modifications are now available in the magiclantern branch in the coin Github project. Refer to https://github.com/magic-lantern-studio/coin for the source code.

SoGui Modifications

The SoGui submodule is used by multiple Coin GUI toolkits.

  • SoXt - Linux Xt GUI toolkit
  • SoWin - Windows GUI toolkit
  • SoQt - Qt GUI toolkit for Linux, Windows and Macintosh platforms
  • SoWx - Linux WxWidgets GUI toolkit

The following modifications were made to the sogui submodule:

  1. Moved setSeekMode(SbBool enable) method in SoGuiViewer.h.in from 'protected' to 'public'. This template is used by the SoXt, SoWin, SoQt and SoGtk libraries.
  2. Moved isSeekMode() method in SoGuiViewer.h.in from 'protected' to 'public'. This template is used by the SoXt, SoWin, SoQt and SoGtk libraries.
  3. Moved setSeekMode(SbBool enable) method in SoGuiExaminerViewer.h.in from 'protected' to 'public'. This template is used by the SoXt, SoWin, SoQt and SoGtk libraries.
  4. Moved setSeekMode(SbBool enable) method in SoGuiFlyViewer.h.in from 'protected' to 'public'. This template is used by the SoXt, SoWin, SoQt and SoGtk libraries.
  5. Moved setSeekMode(SbBool enable) method in SoGuiPlaneViewer.h.in from 'protected' to 'public'. This template is used by the SoXt, SoWin, SoQt and SoGtk libraries.
  6. Moved setSeekMode(SbBool enable) method in SoGuiWalkViewer.h.in from 'protected' to 'public'. This template is used by the SoXt, SoWin, SoQt and SoGtk libraries.

These modifications are now available in the magiclantern branch in the sogui Github project. Refer to https://github.com/magic-lantern-studio/sogui/tree/magiclantern for the source code.

SoXt Modifications

The following modifications were made to the soxt library:

  1. Moved setSeekMode(SbBool enable) method in SoXtViewer.h from 'protected' to 'public'. This was done by modifying the template SoGuiViewer.h.in in the sogui submodule since SoXtViewer.h is generated via SoGuiViewer.h.in.
  2. Moved isSeekMode() method in SoXtViewer.h from 'protected' to 'public'. This was done by modifying the template SoGuiViewer.h.in in the sogui submodule since SoXtViewer.h is generated via SoGuiViewer.h.in.
  3. Moved setSeekMode(SbBool enable) method in SoXtExaminerViewer.h from 'protected' to 'public'. This was done by modifying the template SoGuiExaminerViewer.h.in in the sogui submodule since SoXtExaminerViewer.h is generated via SoGuiExaminerViewer.h.in.
  4. Moved setSeekMode(SbBool enable) method in SoXtFlyViewer.h from 'protected' to 'public'. This was done by modifying the template SoGuiFlyViewer.h.in in the sogui submodule since SoXtFlyViewer.h is generated via SoGuiFlyViewer.h.in.
  5. Moved setSeekMode(SbBool enable) method in SoXtPlaneViewer.h from 'protected' to 'public'. This was done by modifying the template SoGuiPlaneViewer.h.in in the sogui submodule since SoXtPlaneViewer.h is generated via SoGuiPlaneViewer.h.in.
  6. Moved setSeekMode(SbBool enable) method in SoXtWalkViewer.h from 'protected' to 'public'. This was done by modifying the template SoGuiWalkViewer.h.in in the sogui submodule since SoXtWalkViewer.h is generated via SoGuiWalkViewer.h.in.

These modifications are now available in the magiclantern branch in the soxt Github project. Refer to https://github.com/magic-lantern-studio/soxt/tree/magiclantern for the source code.

SoWin Modifications

  1. Moved setSeekMode(SbBool enable) method in SoWinViewer.h from 'protected' to 'public'. This was done by modifying the template SoGuiViewer.h.in in the sogui submodule since SoWinViewer.h is generated via SoGuiViewer.h.in.
  2. Moved isSeekMode() method in SoWinViewer.h from 'protected' to 'public'. This was done by modifying the template SoGuiViewer.h.in in the sogui submodule since SoWinViewer.h is generated via SoGuiViewer.h.in.
  3. Added "static int haveIdleTasks(void)" to SoWin.h by modifying the SoGui.h.in template. SoWin.h is generated from SoGui.h.in.
  4. Added "static void doIdleTasks(void" to SoWin.h by modifying the SoGui.h.in template. SoWin.h is generated from SoGui.h.in.
  5. Implemented SoWin::haveIdleTasks() method in SoWin.cpp.
  6. Implemented SoWin::doIdleTasks() in SoWin.cpp.

There modifications are now available in the magiclantern branch in the sowin Github project. Refer to https://github.com/magic-lantern-studio/sowin/tree/magiclantern for the source code.

SoQt Modifications

The following modifications were made to the soxt library:

  1. Moved setSeekMode(SbBool enable) method in SoXtViewer.h from 'protected' to 'public'. This was done by modifying the template SoGuiViewer.h.in in the sogui submodule since SoXtViewer.h is generated via SoGuiViewer.h.in.
  2. Moved isSeekMode() method in SoXtViewer.h from 'protected' to 'public'. This was done by modifying the template SoGuiViewer.h.in in the sogui submodule since SoXtViewer.h is generated via SoGuiViewer.h.in.
  3. Moved setSeekMode(SbBool enable) method in SoXtExaminerViewer.h from 'protected' to 'public'. This was done by modifying the template SoGuiExaminerViewer.h.in in the sogui submodule since SoXtExaminerViewer.h is generated via SoGuiExaminerViewer.h.in.
  4. Moved setSeekMode(SbBool enable) method in SoXtFlyViewer.h from 'protected' to 'public'. This was done by modifying the template SoGuiFlyViewer.h.in in the sogui submodule since SoXtFlyViewer.h is generated via SoGuiFlyViewer.h.in.
  5. Moved setSeekMode(SbBool enable) method in SoXtPlaneViewer.h from 'protected' to 'public'. This was done by modifying the template SoGuiPlaneViewer.h.in in the sogui submodule since SoXtPlaneViewer.h is generated via SoGuiPlaneViewer.h.in.
  6. Moved setSeekMode(SbBool enable) method in SoXtWalkViewer.h from 'protected' to 'public'. This was done by modifying the template SoGuiWalkViewer.h.in in the sogui submodule since SoXtWalkViewer.h is generated via SoGuiWalkViewer.h.in.

These modifications are now available in the magiclantern branch in the soqt Github project. Refer to https://github.com/magic-lantern-studio/soqt/tree/magiclantern for the source code.