the problem i try to solve is generalized runtime graphical programmation.
I'll try to stay simple:
pmoc generates customisables and extendables graphical components embedding objects methods and they can be use in a generic Editor to demonstrate the ability to do "runtime graphical programmation":
The paste feature introspects the selected object and calls the method that can be used with copied object as a parameter. If several methods fit the couple (class of selected /class of copied) then a menu popup in order to ask you which you want to call.
So It avoids programmation and compilation steps as all is done at runtime.
osg is perfect experiment candidate to be instrumentalised with pmoc as:
- osg objects have an expression in 3D (not purely logic)
- all objects of all libraries are homogenous (no "articulation" problem between libs)
- objects have a lot of single parameter arguments (perfect for the generated nodal logic)
- osg provides serialization!!
But more globally (and from my point of view), pmoc allows to highlight features (and so on bugs:) ) of C++ heterogenous (or not in the case of my osg experiment) libraries and allows to mix them in a generalized QT graphical context in order to manipulate them.
Personnally, I use osg4noob to introspect my own unfinished classes when i'm not sure of what I happen (and so try to fix them graphically before to hardcode in c++) or when the scene is becoming too complex/dirty to be understandable/manipulated programmatically.
It saves me a lot of coding time and so I thought the underlying pmoc was
an interesting project to developp deeper as it is ( i repeat it again) not restricted to osg instrumentalisation.
-MetaModel doesn't require code instrumentalisation(like osgintrospection) , it generates the Qt instrumentalisation.
-QT based, generated components are easy to customize in C++ or to manipulates at runtime in QML ( unlike osgintrospection;) )
-pmoc is inscriptible in an automated compilation pipeline
-: (unlike osgintrospection it is not based on doxygen)
-pmoc relies on a C++syntaxic parser so it doesn't read all library headers (For my eternal damnation with the C++ grammar ...)
-pmoc need total rewriting
pmoc is not wrapping but boxing
it permit to inject at runtime natively created object in a "box" that is in charge of calling method on it
So what problems does your software solve exactly? I couldn't understand it.