This topic is about manually exposing a function to MAXScript using the MAXScript API. Usually, a plug-in uses the function publishing system to expose functions to MAXScript. For more information see the section about What would a Plug-in Publish?.
Functions are exposed to MAXScript using the Primitive
class (defined in maxscript\foundation\functions.h ). A Primitive
class exposes a function pointer to the MAXScript engine.
The standard practice for doing so is to use the def_visible_primitive
macro, from the header file maxscript\macros\define_instantiation_functions.h as shown below:
#include <maxscript\macros\define_instantiation_functions.h>
def_visible_primitive(IntervalArray, "IntervalArray");
This expands during pre-processing to the following:
Value* IntervalArray_cf(Value**, int);
PrimitiveIntervalArray_pf("IntervalArray", IntervalArray_cf);
In this case you would next need to provide a function body for the function IntervalArray_cf()
. For example:
#include <maxscript\maxscript.h>
#include <maxscript\macros\define_instantiation_functions.h>
def_visible_primitive(IntervalArray, "IntervalArray");
Value* IntervalArray_cf(Value **arg_list, int count)
{
return &ok;
}