feat: move createGeometry to SceneManager, add queueRelativePositionUpdateFromViewportVector and removeStencilHighlight
This commit is contained in:
@@ -745,6 +745,10 @@ extern "C"
|
|||||||
((SceneManager *)sceneManager)->queueRotationUpdate(asset, rads, x, y, z, w, relative);
|
((SceneManager *)sceneManager)->queueRotationUpdate(asset, rads, x, y, z, w, relative);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EMSCRIPTEN_KEEPALIVE void queue_position_update_from_viewport_coords(void *sceneManager, EntityId entity, float viewportX, float viewportY) {
|
||||||
|
((SceneManager *)sceneManager)->queueRelativePositionUpdateFromViewportVector(entity, viewportX, viewportY);
|
||||||
|
}
|
||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE void stop_animation(void *sceneManager, EntityId asset, int index)
|
EMSCRIPTEN_KEEPALIVE void stop_animation(void *sceneManager, EntityId asset, int index)
|
||||||
{
|
{
|
||||||
((SceneManager *)sceneManager)->stopAnimation(asset, index);
|
((SceneManager *)sceneManager)->stopAnimation(asset, index);
|
||||||
@@ -825,9 +829,15 @@ extern "C"
|
|||||||
((SceneManager *)sceneManager)->removeAnimationComponent(entityId);
|
((SceneManager *)sceneManager)->removeAnimationComponent(entityId);
|
||||||
}
|
}
|
||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE EntityId create_geometry(void *const viewer, float *vertices, int numVertices, uint16_t *indices, int numIndices, int primitiveType, const char *materialPath)
|
EMSCRIPTEN_KEEPALIVE EntityId create_geometry(void *const sceneManager, float *vertices, int numVertices, uint16_t *indices, int numIndices, int primitiveType, const char *materialPath)
|
||||||
{
|
{
|
||||||
return ((FilamentViewer *)viewer)->createGeometry(vertices, (uint32_t)numVertices, indices, numIndices, (filament::RenderableManager::PrimitiveType)primitiveType, materialPath);
|
return ((SceneManager *)sceneManager)->createGeometry(
|
||||||
|
vertices,
|
||||||
|
(uint32_t)numVertices,
|
||||||
|
indices,
|
||||||
|
numIndices,
|
||||||
|
(filament::RenderableManager::PrimitiveType)primitiveType,
|
||||||
|
materialPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE EntityId find_child_entity_by_name(void *const sceneManager, const EntityId parent, const char *name)
|
EMSCRIPTEN_KEEPALIVE EntityId find_child_entity_by_name(void *const sceneManager, const EntityId parent, const char *name)
|
||||||
@@ -893,10 +903,12 @@ extern "C"
|
|||||||
((SceneManager*)sceneManager)->gizmo->setVisibility(visible);
|
((SceneManager*)sceneManager)->gizmo->setVisibility(visible);
|
||||||
}
|
}
|
||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE void set_stencil_highlight(void *const sceneManager, EntityId entityId) {
|
EMSCRIPTEN_KEEPALIVE void set_stencil_highlight(void *const sceneManager, EntityId entityId, float r, float g, float b) {
|
||||||
((SceneManager*)sceneManager)->setStencilHighlight(entityId);
|
((SceneManager*)sceneManager)->setStencilHighlight(entityId, r, g, b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EMSCRIPTEN_KEEPALIVE void remove_stencil_highlight(void *const sceneManager, EntityId entityId) {
|
||||||
|
((SceneManager*)sceneManager)->removeStencilHighlight(entityId);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -859,7 +859,7 @@ extern "C"
|
|||||||
}
|
}
|
||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE void create_geometry_ffi(
|
EMSCRIPTEN_KEEPALIVE void create_geometry_ffi(
|
||||||
void *const viewer,
|
void *const sceneManager,
|
||||||
float *vertices,
|
float *vertices,
|
||||||
int numVertices,
|
int numVertices,
|
||||||
uint16_t *indices,
|
uint16_t *indices,
|
||||||
@@ -871,7 +871,7 @@ extern "C"
|
|||||||
std::packaged_task<EntityId()> lambda(
|
std::packaged_task<EntityId()> lambda(
|
||||||
[=]
|
[=]
|
||||||
{
|
{
|
||||||
auto entity = create_geometry(viewer, vertices, numVertices, indices, numIndices, primitiveType, materialPath);
|
auto entity = create_geometry(sceneManager, vertices, numVertices, indices, numIndices, primitiveType, materialPath);
|
||||||
#ifdef __EMSCRIPTEN__
|
#ifdef __EMSCRIPTEN__
|
||||||
MAIN_THREAD_EM_ASM({
|
MAIN_THREAD_EM_ASM({
|
||||||
moduleArg.dartFilamentResolveCallback($0,$1);
|
moduleArg.dartFilamentResolveCallback($0,$1);
|
||||||
|
|||||||
Reference in New Issue
Block a user