IvTune Extender IvTuneExtender is an API that allows you to create plug-ins that extend IvTune's capabilities.
Some example IvTune plug-ins, that demonstrate what is possible to develop with the API, are provided in the source/IvTune subdirectory of the Open Inventor SDK (after installing the Demos package).
IvtDefaultsExamples is a built in plug-in that provides the standard IvTune extensions (node overview, field editor, etc).
See IvTuneExtender API part in the reference manual for a complete description of classes and methods provided to develop IvTune plug-ins.
When IvTune starts, the search procedure for the configuration file is (in order):
The file "$OIVHOME/data/IvTune/IvtConfiguration.xml" is provided as an example.
An xml schema "OIVHOME/data/IvTune/IvtConfiguration.xsd" is also provided and can be used to validate the correctness of an IvTune configuration file.
The configuration file is structured as follows:
The following is an example configuration file:
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.vsg3d.com" xsi:schemaLocation="http://www.vsg3d.com IvtConfiguration.xsd">
<!-- List of the plug-ins to load. -->
<plugins>
<!-- A path can be specified by adding the attribute path, i.e. path="the_path_to_the_plug-in". -->
<loadPlugin file="IvtDefaults"/>
<loadPlugin file="IvtTools"/>
<loadPlugin file="IvtToolsLDM"/>
<!-- uncomment to load IvtTutorial plugin
<loadPlugin file="IvtTutorial"/>
-->
</plugins>
<!-- List of the different profiles with the specification of a default one (i.e. the profile activated when ivtune begins). -->
<profiles default="Defaults">
<!-- Details of the profile -->
<profile name="Defaults">
<activeExtension plugin="IvtDefaults" extension="Field Editor">
<controlledExtension plugin="IvtDefaults" extension="MFColor"/>
<controlledExtension plugin="IvtDefaults" extension="MField"/>
<controlledExtension plugin="IvtDefaults" extension="MFFloat"/>
<controlledExtension plugin="IvtDefaults" extension="MFInt32"/>
<controlledExtension plugin="IvtDefaults" extension="MFMatrix"/>
<controlledExtension plugin="IvtDefaults" extension="MFPlane"/>
<controlledExtension plugin="IvtDefaults" extension="MFRotation"/>
<controlledExtension plugin="IvtDefaults" extension="MFShort"/>
<controlledExtension plugin="IvtDefaults" extension="MFString"/>
<controlledExtension plugin="IvtDefaults" extension="MFUInt32"/>
<controlledExtension plugin="IvtDefaults" extension="MFUShort"/>
<controlledExtension plugin="IvtDefaults" extension="MFVec2f"/>
<controlledExtension plugin="IvtDefaults" extension="MFVec2i32"/>
<controlledExtension plugin="IvtDefaults" extension="MFVec2s"/>
<controlledExtension plugin="IvtDefaults" extension="MFVec3f"/>
<controlledExtension plugin="IvtDefaults" extension="MFVec4f"/>
<controlledExtension plugin="IvtDefaults" extension="SFBitMask"/>
<controlledExtension plugin="IvtDefaults" extension="SFBool"/>
<controlledExtension plugin="IvtDefaults" extension="SFBox3s"/>
<controlledExtension plugin="IvtDefaults" extension="SFColor"/>
<controlledExtension plugin="IvtDefaults" extension="SFEnum"/>
<controlledExtension plugin="IvtDefaults" extension="SFFloat"/>
<controlledExtension plugin="IvtDefaults" extension="SFImage"/>
<controlledExtension plugin="IvtDefaults" extension="SFInt32"/>
<controlledExtension plugin="IvtDefaults" extension="SField"/>
<controlledExtension plugin="IvtDefaults" extension="SFMatrix"/>
<controlledExtension plugin="IvtDefaults" extension="SFName"/>
<controlledExtension plugin="IvtDefaults" extension="SFPlane"/>
<controlledExtension plugin="IvtDefaults" extension="SFRotation"/>
<controlledExtension plugin="IvtDefaults" extension="SFShort"/>
<controlledExtension plugin="IvtDefaults" extension="SFString"/>
<controlledExtension plugin="IvtDefaults" extension="SFUInt32"/>
<controlledExtension plugin="IvtDefaults" extension="SFUShort"/>
<controlledExtension plugin="IvtDefaults" extension="SFVec2f"/>
<controlledExtension plugin="IvtDefaults" extension="SFVec2i32"/>
<controlledExtension plugin="IvtDefaults" extension="SFVec2s"/>
<controlledExtension plugin="IvtDefaults" extension="SFVec3f"/>
<controlledExtension plugin="IvtDefaults" extension="SFVec4f"/>
<controlledExtension plugin="IvtToolsLDM" extension="SFLDMResourceParameters"/>
</activeExtension>
<activeExtension plugin="IvtDefaults" extension="Profile Selector"/>
<activeExtension plugin="IvtDefaults" extension="Console"/>
</profile>
<profile name="Extended">
<activeExtension plugin="IvtDefaults" extension="Node Editor">
<controlledExtension plugin="IvtToolsLDM" extension="Alpha Curve Editor"/>
<controlledExtension plugin="IvtTools" extension="Directional Light Editor"/>
<controlledExtension plugin="IvtTools" extension="Shader Editor"/>
</activeExtension>
<activeExtension plugin="IvtTools" extension="Processing Menu"/>
<activeExtension plugin="IvtTools" extension="Traversal Menu"/>
<activeExtension plugin="IvtTools" extension="Viewing Toolbar"/>
<includeProfile name="Defaults"/>
</profile>
<!-- uncomment to activate a profile with extensions provide by IvtTutorial
<profile name="Tutorials">
<activeExtension plugin="IvtTutorial" extension="My First Extension">
<preference value="Hello World!" parameter="Message"/>
</activeExtension>
<activeExtension plugin="IvtTutorial" extension="My Second Extension"/>
<includeProfile name="Defaults"/>
</profile>
-->
</profiles>
</configuration>