IvTuneExtender is an API that allows you to create plug-ins that extend IvTune's capabilities.
More...
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).
All classes provided to develop IvTune plug-ins are listed above.
A configuration file defines which plug-ins IvTune will load, one or more profiles with their associated extensions, and specifies the profile that will be activated first when IvTune starts.
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.
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://www.openinventor.com" xsi:schemaLocation="https://www.openinventor.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="SFBox2f"/>
<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>