struct sVertex{ float x, y, z;};class Vertex : public ClassDefinition{public: Vertex() : ClassDefinition( "Vertex" ) { DeclareMethod( "ToString", new ClassMethodFunctor(this, &Vertex::ToString ) ); } int Constructor( MethodCallInfo *p_info ) { ClassInstance *inst = p_info->ClassInst(); assert( inst != 0 ); sVertex *p = new sVertex; inst->SetUser( p ); return 0; } int ToString( MethodCallInfo *p_info ) { ClassInstance *inst = p_info->ClassInst(); assert( inst != 0 ); sVertex *v = (sVertex*)inst->GetUser(); std::cout << "Vertex{" << v->x << ", " << v->y << ", " << v->z << "}" << std::endl; return 0; }};int main(){ Environment env; env.RegisterClass( &v ); Vertex defVertex; env.RegisterClass( &defVertex ); ClassInstance *i = env.CreateInstance( "Vertex" ); sVertex *p = (sVertex *)i->GetUser(); p->x = 150.0f; p->y = 250.0f; p->z = 350.0f; MethodCallInfo *call = env.BeginMethodCall( i, "ToString" ); // Add params if needed call->Execute(); return 0;}
Previous Entry
What if... Pt 2
Next Entry
What if... Pt4
Advertisement
Latest Entries
Old Code
4298 views
Chamois - Fluent Assertion Syntax for C++
5755 views
On C++ Naming Conventions
12810 views
First version of FlatBuffers in .NET
3860 views
FlatBuffers in .NET
11000 views
Porting Accidental Noise Library to .NET
5568 views
Cloudy Requests
1934 views
Advertisement