private void OnCallbackVoid(CSN_VOID_METHOD method, IntPtr arg1, int arg2, uint arg3, float[] arg4) { switch (method) { case CSN_VOID_METHOD.ADD_ANIMATOR: AddAnimator((Animator)NativeElement.GetObject(arg1, typeof(Animator))); break; case CSN_VOID_METHOD.ADD_CHILD: AddChild((SceneNode)NativeElement.GetObject(arg1, typeof(SceneNode))); break; case CSN_VOID_METHOD.ON_ANIMATE: OnAnimate(arg3); break; case CSN_VOID_METHOD.ON_REGISTER_SCENE_NODE: OnRegisterSceneNode(); break; case CSN_VOID_METHOD.REMOVE: Remove(); break; case CSN_VOID_METHOD.REMOVE_ALL: RemoveAll(); break; case CSN_VOID_METHOD.REMOVE_ANIMATOR: RemoveAnimator((Animator)NativeElement.GetObject(arg1, typeof(Animator))); break; case CSN_VOID_METHOD.REMOVE_ANIMATORS: RemoveAnimators(); break; case CSN_VOID_METHOD.RENDER: Render(); break; case CSN_VOID_METHOD.SET_ID: ID = arg2; break; case CSN_VOID_METHOD.SET_PARENT: Parent = (SceneNode)NativeElement.GetObject(arg1, typeof(SceneNode)); break; case CSN_VOID_METHOD.SET_POSITION: Position = Vector3D.FromUnmanaged(arg4); break; case CSN_VOID_METHOD.SET_SCALE: Scale = Vector3D.FromUnmanaged(arg4); break; case CSN_VOID_METHOD.SET_ROTATION: Rotation = Vector3D.FromUnmanaged(arg4); break; case CSN_VOID_METHOD.SET_TRIANGLE_SELECTOR: TriangleSelector = (TriangleSelector)NativeElement.GetObject(arg1, typeof(TriangleSelector)); break; case CSN_VOID_METHOD.SET_VISIBLE: Visible = arg2 == 0 ? false : true; break; case CSN_VOID_METHOD.UPDATE_ABSOLUTE_POSITION: UpdateAbsolutePosition(); break; } }
static extern void CSN_PVOID_METHODS(IntPtr csn, CSN_VOID_METHOD method, IntPtr arg1, int arg2, uint arg3, float[] arg4);