Node Input Pin in Dynamic Plugin?

Inspired by another thread about multiple texture out pins on a dynamic plugin, I discovered the function IPluginHost.CreateNodeInput.

I got this far, and a node is actually being created, but I can’t make any connection to this pin. I was expecting some behaviour similar to Switch(Node), where one can connect a mesh or a texture to this pin.

Apart from that, even if this would have worked, I don’t know how to access that object from within the code, and do something useful with it.

Is this possible (yet), and how? What did I forget?

INodeIn FNodeIn;

// import host and hand it to base constructor
[ImportingConstructor()](ImportingConstructor())
public EX9_TextureTexturePluginTestNode(IPluginHost host) : base(host)
{
    host.CreateNodeInput("Node", TSliceMode.Single, TPinVisibility.True, out FNodeIn);
}

there is a much easier way to do that:

code(lang=csharp):

[Input(“My Node Input”)](Input(“My Node Input”))
ISpread FInput;

//and likewise
[Output(“My Node Output”)](Output(“My Node Output”))
ISpread FOutput;

of course you would need more than one node then which can handle the type. the pins even support type inheritance… GetSlice (Node) would also work on them.

Wow quick answer :)

I guess that’s if I define my own type, I can send it from one node to another, but is it possible at this time to create an input pin that accepts a lot of different things, exactly like the ‘Node Input’ pin on the GetSlice(Node) node? Like meshes, textures, etc.?

Or else, how would I create a ‘mesh’ or ‘texture’ input pin?

as the node connetion is specific for each type, it would need some work to get the native vvvv types into the managed c# world. so these both are not yet possible… sorry. but patience will fix this…

hmm any chances you can specify how to use Mesh as input?

@antokhio: as tonfilm just pointed out again node-inputs of type mesh, texture (and vertexbuffer and DShow9) are not possible currently.

@ft: you can still create node-pins that accept different things (just not the ones mentioned) by implementing different interfaces on your node type.