JSAtomic3D.cpp 765 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #include <Atomic/Atomic3D/StaticModel.h>
  2. #include "JSAtomic3D.h"
  3. namespace Atomic
  4. {
  5. static int StaticModel_SetMaterialIndex(duk_context* ctx) {
  6. unsigned index = (unsigned) duk_require_number(ctx, 0);
  7. Material* material = js_to_class_instance<Material>(ctx, 1, 0);
  8. duk_push_this(ctx);
  9. // event receiver
  10. StaticModel* model = js_to_class_instance<StaticModel>(ctx, -1, 0);
  11. model->SetMaterial(index, material);
  12. return 0;
  13. }
  14. void jsapi_init_atomic3d(JSVM* vm)
  15. {
  16. duk_context* ctx = vm->GetJSContext();
  17. js_class_get_prototype(ctx, "Atomic", "StaticModel");
  18. duk_push_c_function(ctx, StaticModel_SetMaterialIndex, 2);
  19. duk_put_prop_string(ctx, -2, "setMaterialIndex");
  20. duk_pop(ctx); // pop AObject prototype
  21. }
  22. }