22#include <ThirdPartyWarningsDisable.h>
23#include <Inventor/fields/SoSubField.h>
24#include <Inventor/SbLinear.h>
26#include <ThirdPartyWarningsRestore.h>
28#include <mlDataTypes.h>
29#include <mlTypeDefs.h>
56 virtual void setValue(ML_NAMESPACE::Base* mlBasePtr);
79 std::vector<const ML_NAMESPACE::RuntimeType*>
getAllowedTypes()
const {
return _allowedTypes; }
#define INVENTORWRAPPER_API
Library initialization and export macros for platform independecy of project.
The SoSFMLBase field is the interface used by Inventor Nodes to output ML Base objects to the outside...
std::vector< const ml::RuntimeType * > getAllowedTypes() const
Get list of allowed Base types for this field.
void addAllowedType()
Same as above, with template parameter where the Base type can be specified directly.
void writeValue(SoOutput *out) const override
Type getTypedValue()
Get a Base pointer of given Type, returns NULL is the base object is not derived from Type.
virtual ml::Base * getValue() const
bool hasUnallowedType() const
return true if the last call of setBaseValue had an unallowed type as argument, getBaseValue will ret...
ml::Base * _value
pointer to the stored base object
void addAllowedType(const ml::RuntimeType *allowedType)
Add type to list of allowed types.
SbBool readValue(SoInput *in) override
bool _unallowedType
remember if an unallowed type was assigned to this field
static void initClass()
Initializes field class, setting up runtime type info.
std::vector< const ml::RuntimeType * > _allowedTypes
List of allowed Base types. If empty, any type is allowed.
virtual void setValue(ml::Base *mlBasePtr)
Field access implementation.