using VVVV.Nodes.Generic;
- region PluginInfo
[PluginInfo(Name = "Cons", Category = "MyCoolStuff", Help = "Cons", Tags = "")](PluginInfo(Name = "Cons", Category = "MyCoolStuff", Help = "Cons", Tags = ""))
- endregion PluginInfo
public class CMyCoolStuffConsNode : Cons<MyCoolStuff> {};
- region PluginInfo
[PluginInfo(Name = "CAR", Category = "MyCoolStuff", Help = "CAR", Tags = "")](PluginInfo(Name = "CAR", Category = "MyCoolStuff", Help = "CAR", Tags = ""))
- endregion PluginInfo
public class CMyCoolStuffCARNode : CAR<MyCoolStuff> {};
....
It would be a real time saver for anyone coding nodes using custom pin/link data types to have all the classics (Cons, CAR, CDR, GetSlice, GetSpread and so on) available as generic versions to subclass easily.
While I can just go and write simple implementations of the ones I need I suspect most are already written in some form or other by devvvvs and contributors so it would be cool if we could work together on making it easier for everyone in the future!
If we(devvvvs) can decide on a place in the source tree and a namespace I think we could populate it quite quickly.
Yes, I guess it’s more a question about organisation/structure.
I think it would be useful to have generic versions available in a new namespace that you can include when writing your plug-ins and I guess this is debatable but maybe the most useful/common ones shouldn’t be situated in the addonpack.
Right now to be able to subclass the ones available (if I’m writing a dynamic plugin with the Code Editor) I need to add “using VVVV.Nodes;” and add a reference to VVVV.Nodes.dll in lib\nodes\plugins plus references to a bunch of .dll:s from the addonpack.
Think this could be handled better even if it might not be high priority.
ok, let’s first gather all resources of generic node templates which could be useful. i know that @velcrome also made some and even recoded some which already exist because there was no good documentation.
yes, we are thinking about a separate project with namespace VVVV.Nodes.Generic which can be linked by everyone in an easy way. nuget is a very good idea.
but first i want to collect all sources to decide how to proceed.
for now we have:
bjoern:
Permutations
Combinations
Variations
woei:
GetSpread, bin sized
Select, bin sized
SetSpread, bin sized
CAR, bin sized
CDR, bin sized
Reverse, bin sized
Shift, bin sized
Store
Occurence
vux:
Stack
NearestNeighbour, needs to implement Distance method
Sort, advanced, needs implementation of comparer
velcrome:
GetSlice
S+H
Select
Serialize
vvvv:
Buffer
Cons
DeleteSlice
Pairwise
Queue
RingBuffer
SetSlice
Zip
Unzip
correct me if i am wrong.
the goal would be to have one file which links to this project and has a dummy class which implements all basic spread nodes. as a developer you can then copy the file and do a ‘replace all’ or syntax aware renaming to get all nodes with little effort.