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="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>