How to add your own data type to a statechart

The Statechart Editor offers a list of different data types that can be passed via transitions of statecharts. To create your own data type you first have to define a new variant type as described here: How to Create Custom Variant Types Then you have provide the statechart editor with some information about the new data type by editing the VariantInfo-${PACKAGENAME}.xml. This file is located in each package at ${PACKAGENAME}/data/${PACKAGENAME}/VariantInfo-${PACKAGENAME}.xml. This file might look like this:

<?xml version="1.0" encoding="utf-8"?>
<VariantInfo>
    <!-- Name of the library to be linked-->
    <Lib name="ArmarXCoreEigen3Variants">
            <VariantFactory
            <!-- Path to the object factory file -->
            include="ArmarXCore/util/variants/eigen3/Eigen3VariantObjectFactories.h" />
            <Variant
                <!-- Name of the type as generated by Ice -->
                baseType="::armarx::MatrixFloatBase"
                <!-- Name of the type of the interface implementation -->
                dataType="::armarx::MatrixFloat"
                <!-- Some human friendly name that is displayed in the statechart editor  -->
                humanName="MatrixFloat"
                <!-- Include path of the variant implementation -->
                include="ArmarXCore/util/variants/eigen3/MatrixVariant.h" />
    </Lib>
</VariantInfo>

Examples of this can be found in almost every ArmarX package.