expose View methods for transparent picking
This commit is contained in:
@@ -571,6 +571,17 @@ external void View_setFogOptions(
|
|||||||
TFogOptions tFogOptions,
|
TFogOptions tFogOptions,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ffi.Native<ffi.Void Function(ffi.Pointer<TView>, ffi.Bool)>(isLeaf: true)
|
||||||
|
external void View_setTransparentPickingEnabled(
|
||||||
|
ffi.Pointer<TView> tView,
|
||||||
|
bool enabled,
|
||||||
|
);
|
||||||
|
|
||||||
|
@ffi.Native<ffi.Bool Function(ffi.Pointer<TView>)>(isLeaf: true)
|
||||||
|
external bool View_isTransparentPickingEnabled(
|
||||||
|
ffi.Pointer<TView> tView,
|
||||||
|
);
|
||||||
|
|
||||||
@ffi.Native<
|
@ffi.Native<
|
||||||
ffi.Void Function(ffi.Pointer<TView>, ffi.Uint32, ffi.Uint32, ffi.Uint32,
|
ffi.Void Function(ffi.Pointer<TView>, ffi.Uint32, ffi.Uint32, ffi.Uint32,
|
||||||
PickCallback)>(isLeaf: true)
|
PickCallback)>(isLeaf: true)
|
||||||
|
|||||||
@@ -720,6 +720,13 @@ extension type NativeLibrary(JSObject _) implements JSObject {
|
|||||||
Pointer<TView> tView,
|
Pointer<TView> tView,
|
||||||
Pointer<TFogOptions> tFogOptionsPtr,
|
Pointer<TFogOptions> tFogOptionsPtr,
|
||||||
);
|
);
|
||||||
|
external void _View_setTransparentPickingEnabled(
|
||||||
|
Pointer<TView> tView,
|
||||||
|
bool enabled,
|
||||||
|
);
|
||||||
|
external int _View_isTransparentPickingEnabled(
|
||||||
|
Pointer<TView> tView,
|
||||||
|
);
|
||||||
external void _View_pick(
|
external void _View_pick(
|
||||||
Pointer<TView> tView,
|
Pointer<TView> tView,
|
||||||
int requestId,
|
int requestId,
|
||||||
@@ -3008,6 +3015,21 @@ void View_setFogOptions(
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void View_setTransparentPickingEnabled(
|
||||||
|
self.Pointer<TView> tView,
|
||||||
|
bool enabled,
|
||||||
|
) {
|
||||||
|
final result = _lib._View_setTransparentPickingEnabled(tView.cast(), enabled);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool View_isTransparentPickingEnabled(
|
||||||
|
self.Pointer<TView> tView,
|
||||||
|
) {
|
||||||
|
final result = _lib._View_isTransparentPickingEnabled(tView.cast());
|
||||||
|
return result == 1;
|
||||||
|
}
|
||||||
|
|
||||||
void View_pick(
|
void View_pick(
|
||||||
self.Pointer<TView> tView,
|
self.Pointer<TView> tView,
|
||||||
int requestId,
|
int requestId,
|
||||||
|
|||||||
@@ -335,4 +335,12 @@ class FFIView extends View<Pointer<TView>> {
|
|||||||
void setName(String name) {
|
void setName(String name) {
|
||||||
View_setName(getNativeHandle(), name.toNativeUtf8().cast());
|
View_setName(getNativeHandle(), name.toNativeUtf8().cast());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future setTransparentPickingEnabled(bool enabled) async {
|
||||||
|
View_setTransparentPickingEnabled(getNativeHandle(), enabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<bool> isTransparentPickingEnabled() async {
|
||||||
|
return View_isTransparentPickingEnabled(getNativeHandle());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -92,6 +92,9 @@ abstract class View<T> extends NativeHandle<T> {
|
|||||||
Future setShadowsEnabled(bool enabled);
|
Future setShadowsEnabled(bool enabled);
|
||||||
Future setLayerVisibility(VisibilityLayers layer, bool visible);
|
Future setLayerVisibility(VisibilityLayers layer, bool visible);
|
||||||
|
|
||||||
|
Future setTransparentPickingEnabled(bool enabled);
|
||||||
|
Future<bool> isTransparentPickingEnabled();
|
||||||
|
|
||||||
/// Renders an outline around [entity] with the given color.
|
/// Renders an outline around [entity] with the given color.
|
||||||
Future setStencilHighlight(ThermionAsset asset,
|
Future setStencilHighlight(ThermionAsset asset,
|
||||||
{double r = 1.0,
|
{double r = 1.0,
|
||||||
|
|||||||
@@ -89,6 +89,8 @@ EMSCRIPTEN_KEEPALIVE bool View_isDitheringEnabled(TView *tView);
|
|||||||
EMSCRIPTEN_KEEPALIVE void View_setScene(TView *tView, TScene *tScene);
|
EMSCRIPTEN_KEEPALIVE void View_setScene(TView *tView, TScene *tScene);
|
||||||
EMSCRIPTEN_KEEPALIVE void View_setFrontFaceWindingInverted(TView *tView, bool inverted);
|
EMSCRIPTEN_KEEPALIVE void View_setFrontFaceWindingInverted(TView *tView, bool inverted);
|
||||||
EMSCRIPTEN_KEEPALIVE void View_setFogOptions(TView *tView, TFogOptions tFogOptions);
|
EMSCRIPTEN_KEEPALIVE void View_setFogOptions(TView *tView, TFogOptions tFogOptions);
|
||||||
|
EMSCRIPTEN_KEEPALIVE void View_setTransparentPickingEnabled(TView *tView, bool enabled);
|
||||||
|
EMSCRIPTEN_KEEPALIVE bool View_isTransparentPickingEnabled(TView *tView);
|
||||||
|
|
||||||
typedef void (*PickCallback)(uint32_t requestId, EntityId entityId, float depth, float fragX, float fragY, float fragZ);
|
typedef void (*PickCallback)(uint32_t requestId, EntityId entityId, float depth, float fragX, float fragY, float fragZ);
|
||||||
EMSCRIPTEN_KEEPALIVE void View_pick(TView* tView, uint32_t requestId, uint32_t x, uint32_t y, PickCallback callback);
|
EMSCRIPTEN_KEEPALIVE void View_pick(TView* tView, uint32_t requestId, uint32_t x, uint32_t y, PickCallback callback);
|
||||||
|
|||||||
@@ -284,6 +284,16 @@ namespace thermion
|
|||||||
view->setName(name);
|
view->setName(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EMSCRIPTEN_KEEPALIVE void View_setTransparentPickingEnabled(TView* tView, bool enabled) {
|
||||||
|
auto view = reinterpret_cast<View *>(tView);
|
||||||
|
view->setTransparentPickingEnabled(enabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
EMSCRIPTEN_KEEPALIVE bool View_isTransparentPickingEnabled(TView* tView) {
|
||||||
|
auto view = reinterpret_cast<View *>(tView);
|
||||||
|
return view->isTransparentPickingEnabled();
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user