documentation & further renaming
This commit is contained in:
@@ -3,25 +3,25 @@ import 'dart:js_interop_unsafe';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:animation_tools_dart/animation_tools_dart.dart';
|
||||
import 'package:thermion_dart/thermion_dart/abstract_filament_viewer.dart';
|
||||
import 'package:thermion_dart/thermion_dart/thermion_viewer.dart';
|
||||
import 'package:thermion_dart/thermion_dart/entities/filament_entity.dart';
|
||||
import 'package:thermion_dart/thermion_dart/scene.dart';
|
||||
import 'package:vector_math/vector_math_64.dart';
|
||||
import 'shims/abstract_filament_viewer_js_shim.dart';
|
||||
import 'shims/thermion_viewer_js_shim.dart';
|
||||
|
||||
///
|
||||
/// An [AbstractFilamentViewer] implementation that forwards calls to
|
||||
/// a corresponding Javascript shim implementation (see [AbstractFilamentViewerJSShim]).
|
||||
/// An [ThermionViewer] implementation that forwards calls to
|
||||
/// a corresponding Javascript shim implementation (see [ThermionViewerJSShim]).
|
||||
///
|
||||
class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
late final AbstractFilamentViewerJSShim _shim;
|
||||
class ThermionViewerFFIJS implements ThermionViewer {
|
||||
late final ThermionViewerJSShim _shim;
|
||||
|
||||
FilamentViewerJS.fromGlobalProperty(String globalPropertyName) {
|
||||
ThermionViewerFFIJS.fromGlobalProperty(String globalPropertyName) {
|
||||
this._shim = globalContext.getProperty(globalPropertyName.toJS)
|
||||
as AbstractFilamentViewerJSShim;
|
||||
as ThermionViewerJSShim;
|
||||
}
|
||||
|
||||
FilamentViewerJS(this._shim);
|
||||
ThermionViewerFFIJS(this._shim);
|
||||
|
||||
@override
|
||||
Future<bool> get initialized async {
|
||||
@@ -109,7 +109,7 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<FilamentEntity> addLight(
|
||||
Future<ThermionEntity> addLight(
|
||||
LightType type,
|
||||
double colour,
|
||||
double intensity,
|
||||
@@ -149,7 +149,7 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> removeLight(FilamentEntity light) async {
|
||||
Future<void> removeLight(ThermionEntity light) async {
|
||||
await _shim.removeLight(light).toDart;
|
||||
}
|
||||
|
||||
@@ -159,41 +159,41 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<FilamentEntity> loadGlb(String path, {int numInstances = 1}) async {
|
||||
Future<ThermionEntity> loadGlb(String path, {int numInstances = 1}) async {
|
||||
var entity = (await _shim.loadGlb(path, numInstances).toDart).toDartInt;
|
||||
scene.registerEntity(entity);
|
||||
return entity;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<FilamentEntity> createInstance(FilamentEntity entity) async {
|
||||
Future<ThermionEntity> createInstance(ThermionEntity entity) async {
|
||||
return (await _shim.createInstance(entity).toDart).toDartInt;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<int> getInstanceCount(FilamentEntity entity) async {
|
||||
Future<int> getInstanceCount(ThermionEntity entity) async {
|
||||
return (await _shim.getInstanceCount(entity).toDart).toDartInt;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<FilamentEntity>> getInstances(FilamentEntity entity) async {
|
||||
Future<List<ThermionEntity>> getInstances(ThermionEntity entity) async {
|
||||
throw UnimplementedError();
|
||||
// final List<JSObject> jsInstances =
|
||||
// await _shim.getInstances(entity).toDart;
|
||||
// return jsInstances
|
||||
// .map((js) => FilamentEntity._fromJSObject(js))
|
||||
// .map((js) => ThermionEntity._fromJSObject(js))
|
||||
// .toList()
|
||||
// .toDart;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<FilamentEntity> loadGltf(String path, String relativeResourcePath,
|
||||
Future<ThermionEntity> loadGltf(String path, String relativeResourcePath,
|
||||
{bool force = false}) async {
|
||||
throw UnimplementedError();
|
||||
// final FilamentEntity jsEntity = await _shim
|
||||
// final ThermionEntity jsEntity = await _shim
|
||||
// .loadGltf(path, relativeResourcePath, force: force)
|
||||
// .toDart;
|
||||
// return FilamentEntity._fromJSObject(jsEntity).toDart;
|
||||
// return ThermionEntity._fromJSObject(jsEntity).toDart;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -228,7 +228,7 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
|
||||
@override
|
||||
Future<void> setMorphTargetWeights(
|
||||
FilamentEntity entity, List<double> weights) async {
|
||||
ThermionEntity entity, List<double> weights) async {
|
||||
var jsWeights = weights.map((x) => x.toJS).cast<JSNumber>().toList().toJS;
|
||||
var promise = _shim.setMorphTargetWeights(entity, jsWeights);
|
||||
await promise.toDart;
|
||||
@@ -236,13 +236,13 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
|
||||
@override
|
||||
Future<List<String>> getMorphTargetNames(
|
||||
FilamentEntity entity, FilamentEntity childEntity) async {
|
||||
ThermionEntity entity, ThermionEntity childEntity) async {
|
||||
var result = await _shim.getMorphTargetNames(entity, childEntity).toDart;
|
||||
return result.toDart.map((r) => r.toDart).toList();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<String>> getAnimationNames(FilamentEntity entity) async {
|
||||
Future<List<String>> getAnimationNames(ThermionEntity entity) async {
|
||||
var names = (await (_shim.getAnimationNames(entity).toDart))
|
||||
.toDart
|
||||
.map((x) => x.toDart)
|
||||
@@ -252,14 +252,14 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
|
||||
@override
|
||||
Future<double> getAnimationDuration(
|
||||
FilamentEntity entity, int animationIndex) async {
|
||||
ThermionEntity entity, int animationIndex) async {
|
||||
return (await _shim.getAnimationDuration(entity, animationIndex).toDart)
|
||||
.toDartDouble;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> setMorphAnimationData(
|
||||
FilamentEntity entity, MorphAnimationData animation,
|
||||
ThermionEntity entity, MorphAnimationData animation,
|
||||
{List<String>? targetMeshNames}) async {
|
||||
try {
|
||||
var animationDataJs = animation.data
|
||||
@@ -285,13 +285,13 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> resetBones(FilamentEntity entity) async {
|
||||
Future<void> resetBones(ThermionEntity entity) async {
|
||||
await _shim.resetBones(entity).toDart;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> addBoneAnimation(
|
||||
FilamentEntity entity, BoneAnimationData animation,
|
||||
ThermionEntity entity, BoneAnimationData animation,
|
||||
{int skinIndex = 0,
|
||||
double fadeInInSecs = 0.0,
|
||||
double fadeOutInSecs = 0.0,
|
||||
@@ -328,7 +328,7 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> removeEntity(FilamentEntity entity) async {
|
||||
Future<void> removeEntity(ThermionEntity entity) async {
|
||||
await _shim.removeEntity(entity).toDart;
|
||||
}
|
||||
|
||||
@@ -353,7 +353,7 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> playAnimation(FilamentEntity entity, int index,
|
||||
Future<void> playAnimation(ThermionEntity entity, int index,
|
||||
{bool loop = false,
|
||||
bool reverse = false,
|
||||
bool replaceActive = true,
|
||||
@@ -364,7 +364,7 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> playAnimationByName(FilamentEntity entity, String name,
|
||||
Future<void> playAnimationByName(ThermionEntity entity, String name,
|
||||
{bool loop = false,
|
||||
bool reverse = false,
|
||||
bool replaceActive = true,
|
||||
@@ -377,22 +377,22 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
|
||||
@override
|
||||
Future<void> setAnimationFrame(
|
||||
FilamentEntity entity, int index, int animationFrame) async {
|
||||
ThermionEntity entity, int index, int animationFrame) async {
|
||||
await _shim.setAnimationFrame(entity, index, animationFrame).toDart;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> stopAnimation(FilamentEntity entity, int animationIndex) async {
|
||||
Future<void> stopAnimation(ThermionEntity entity, int animationIndex) async {
|
||||
await _shim.stopAnimation(entity, animationIndex).toDart;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> stopAnimationByName(FilamentEntity entity, String name) async {
|
||||
Future<void> stopAnimationByName(ThermionEntity entity, String name) async {
|
||||
await _shim.stopAnimationByName(entity, name).toDart;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> setCamera(FilamentEntity entity, String? name) async {
|
||||
Future<void> setCamera(ThermionEntity entity, String? name) async {
|
||||
await _shim.setCamera(entity, name).toDart;
|
||||
}
|
||||
|
||||
@@ -402,10 +402,10 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<FilamentEntity> getMainCamera() async {
|
||||
Future<ThermionEntity> getMainCamera() async {
|
||||
throw UnimplementedError();
|
||||
// final FilamentEntity jsEntity = await _shim.getMainCamera().toDart;
|
||||
// return FilamentEntity._fromJSObject(jsEntity).toDart;
|
||||
// final ThermionEntity jsEntity = await _shim.getMainCamera().toDart;
|
||||
// return ThermionEntity._fromJSObject(jsEntity).toDart;
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -506,7 +506,7 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> moveCameraToAsset(FilamentEntity entity) async {
|
||||
Future<void> moveCameraToAsset(ThermionEntity entity) async {
|
||||
await _shim.moveCameraToAsset(entity).toDart;
|
||||
}
|
||||
|
||||
@@ -541,7 +541,7 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> setMaterialColor(FilamentEntity entity, String meshName,
|
||||
Future<void> setMaterialColor(ThermionEntity entity, String meshName,
|
||||
int materialIndex, double r, double g, double b, double a) async {
|
||||
await _shim
|
||||
.setMaterialColor(entity, meshName, materialIndex, r, g, b, a)
|
||||
@@ -549,43 +549,43 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> transformToUnitCube(FilamentEntity entity) async {
|
||||
Future<void> transformToUnitCube(ThermionEntity entity) async {
|
||||
await _shim.transformToUnitCube(entity).toDart;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> setPosition(
|
||||
FilamentEntity entity, double x, double y, double z) async {
|
||||
ThermionEntity entity, double x, double y, double z) async {
|
||||
await _shim.setPosition(entity, x, y, z).toDart;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> setScale(FilamentEntity entity, double scale) async {
|
||||
Future<void> setScale(ThermionEntity entity, double scale) async {
|
||||
await _shim.setScale(entity, scale).toDart;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> setRotation(
|
||||
FilamentEntity entity, double rads, double x, double y, double z) async {
|
||||
ThermionEntity entity, double rads, double x, double y, double z) async {
|
||||
await _shim.setRotation(entity, rads, x, y, z).toDart;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> queuePositionUpdate(
|
||||
FilamentEntity entity, double x, double y, double z,
|
||||
ThermionEntity entity, double x, double y, double z,
|
||||
{bool relative = false}) async {
|
||||
await _shim.queuePositionUpdate(entity, x, y, z, relative).toDart;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> queueRotationUpdate(
|
||||
FilamentEntity entity, double rads, double x, double y, double z,
|
||||
ThermionEntity entity, double rads, double x, double y, double z,
|
||||
{bool relative = false}) async {
|
||||
await _shim.queueRotationUpdate(entity, rads, x, y, z, relative).toDart;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> queueRotationUpdateQuat(FilamentEntity entity, Quaternion quat,
|
||||
Future<void> queueRotationUpdateQuat(ThermionEntity entity, Quaternion quat,
|
||||
{bool relative = false}) async {
|
||||
throw UnimplementedError();
|
||||
|
||||
@@ -607,20 +607,20 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
|
||||
@override
|
||||
Future<void> setRotationQuat(
|
||||
FilamentEntity entity, Quaternion rotation) async {
|
||||
ThermionEntity entity, Quaternion rotation) async {
|
||||
throw UnimplementedError();
|
||||
// final JSQuaternion jsRotation = rotation.toJSQuaternion().toDart;
|
||||
// await _shim.setRotationQuat(entity, jsRotation).toDart;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> reveal(FilamentEntity entity, String? meshName) async {
|
||||
Future<void> reveal(ThermionEntity entity, String? meshName) async {
|
||||
throw UnimplementedError();
|
||||
// await _shim.reveal(entity, meshName).toDart;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> hide(FilamentEntity entity, String? meshName) async {
|
||||
Future<void> hide(ThermionEntity entity, String? meshName) async {
|
||||
throw UnimplementedError();
|
||||
// await _shim.hide(entity, meshName).toDart;
|
||||
}
|
||||
@@ -632,7 +632,7 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
String? getNameForEntity(FilamentEntity entity) {
|
||||
String? getNameForEntity(ThermionEntity entity) {
|
||||
return _shim.getNameForEntity(entity);
|
||||
}
|
||||
|
||||
@@ -649,24 +649,24 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<FilamentEntity>> getChildEntities(
|
||||
FilamentEntity parent, bool renderableOnly) async {
|
||||
Future<List<ThermionEntity>> getChildEntities(
|
||||
ThermionEntity parent, bool renderableOnly) async {
|
||||
final children =
|
||||
await _shim.getChildEntities(parent, renderableOnly).toDart;
|
||||
return children.toDart
|
||||
.map((js) => js.toDartInt)
|
||||
.cast<FilamentEntity>()
|
||||
.cast<ThermionEntity>()
|
||||
.toList();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<FilamentEntity> getChildEntity(
|
||||
FilamentEntity parent, String childName) async {
|
||||
Future<ThermionEntity> getChildEntity(
|
||||
ThermionEntity parent, String childName) async {
|
||||
return (await _shim.getChildEntity(parent, childName).toDart).toDartInt;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<String>> getChildEntityNames(FilamentEntity entity,
|
||||
Future<List<String>> getChildEntityNames(ThermionEntity entity,
|
||||
{bool renderableOnly = true}) async {
|
||||
var names = await _shim.getChildEntityNames(entity, renderableOnly).toDart;
|
||||
return names.toDart.map((x) => x.toDart).toList();
|
||||
@@ -684,12 +684,12 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> addAnimationComponent(FilamentEntity entity) async {
|
||||
Future<void> addAnimationComponent(ThermionEntity entity) async {
|
||||
await _shim.addAnimationComponent(entity).toDart;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> addCollisionComponent(FilamentEntity entity,
|
||||
Future<void> addCollisionComponent(ThermionEntity entity,
|
||||
{void Function(int entityId1, int entityId2)? callback,
|
||||
bool affectsTransform = false}) async {
|
||||
throw UnimplementedError();
|
||||
@@ -705,35 +705,35 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> removeCollisionComponent(FilamentEntity entity) async {
|
||||
Future<void> removeCollisionComponent(ThermionEntity entity) async {
|
||||
await _shim.removeCollisionComponent(entity).toDart;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<FilamentEntity> createGeometry(
|
||||
Future<ThermionEntity> createGeometry(
|
||||
List<double> vertices, List<int> indices,
|
||||
{String? materialPath,
|
||||
PrimitiveType primitiveType = PrimitiveType.TRIANGLES}) async {
|
||||
throw UnimplementedError();
|
||||
// final FilamentEntity jsEntity = await _shim
|
||||
// final ThermionEntity jsEntity = await _shim
|
||||
// .createGeometry(vertices, indices,
|
||||
// materialPath: materialPath, primitiveType: primitiveType.index)
|
||||
// .toDart;
|
||||
// return FilamentEntity._fromJSObject(jsEntity).toDart;
|
||||
// return ThermionEntity._fromJSObject(jsEntity).toDart;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> setParent(FilamentEntity child, FilamentEntity parent) async {
|
||||
Future<void> setParent(ThermionEntity child, ThermionEntity parent) async {
|
||||
await _shim.setParent(child, parent).toDart;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> testCollisions(FilamentEntity entity) async {
|
||||
Future<void> testCollisions(ThermionEntity entity) async {
|
||||
await _shim.testCollisions(entity).toDart;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<void> setPriority(FilamentEntity entityId, int priority) async {
|
||||
Future<void> setPriority(ThermionEntity entityId, int priority) async {
|
||||
await _shim.setPriority(entityId, priority).toDart;
|
||||
}
|
||||
|
||||
@@ -748,52 +748,52 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
AbstractGizmo? get gizmo => null;
|
||||
|
||||
@override
|
||||
Future<List<String>> getBoneNames(FilamentEntity entity,
|
||||
Future<List<String>> getBoneNames(ThermionEntity entity,
|
||||
{int skinIndex = 0}) async {
|
||||
var result = await _shim.getBoneNames(entity, skinIndex).toDart;
|
||||
return result.toDart.map((n) => n.toDart).toList();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<FilamentEntity> getBone(FilamentEntity entity, int boneIndex,
|
||||
Future<ThermionEntity> getBone(ThermionEntity entity, int boneIndex,
|
||||
{int skinIndex = 0}) async {
|
||||
var result = await _shim.getBone(entity, boneIndex, skinIndex).toDart;
|
||||
return result.toDartInt;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Matrix4> getInverseBindMatrix(FilamentEntity parent, int boneIndex,
|
||||
Future<Matrix4> getInverseBindMatrix(ThermionEntity parent, int boneIndex,
|
||||
{int skinIndex = 0}) {
|
||||
// TODO: implement getInverseBindMatrix
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Matrix4> getLocalTransform(FilamentEntity entity) async {
|
||||
Future<Matrix4> getLocalTransform(ThermionEntity entity) async {
|
||||
var result = await _shim.getLocalTransform(entity).toDart;
|
||||
return Matrix4.fromList(result.toDart.map((v) => v.toDartDouble).toList());
|
||||
}
|
||||
|
||||
@override
|
||||
Future<FilamentEntity?> getParent(FilamentEntity child) async {
|
||||
Future<ThermionEntity?> getParent(ThermionEntity child) async {
|
||||
var result = await _shim.getParent(child).toDart;
|
||||
return result.toDartInt;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Matrix4> getWorldTransform(FilamentEntity entity) async {
|
||||
Future<Matrix4> getWorldTransform(ThermionEntity entity) async {
|
||||
var result = await _shim.getLocalTransform(entity).toDart;
|
||||
return Matrix4.fromList(result.toDart.map((v) => v.toDartDouble).toList());
|
||||
}
|
||||
|
||||
@override
|
||||
Future removeAnimationComponent(FilamentEntity entity) {
|
||||
Future removeAnimationComponent(ThermionEntity entity) {
|
||||
return _shim.removeAnimationComponent(entity).toDart;
|
||||
}
|
||||
|
||||
@override
|
||||
Future setBoneTransform(
|
||||
FilamentEntity entity, int boneIndex, Matrix4 transform,
|
||||
ThermionEntity entity, int boneIndex, Matrix4 transform,
|
||||
{int skinIndex = 0}) {
|
||||
return _shim
|
||||
.setBoneTransform(entity, boneIndex,
|
||||
@@ -802,7 +802,7 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future setTransform(FilamentEntity entity, Matrix4 transform) {
|
||||
Future setTransform(ThermionEntity entity, Matrix4 transform) {
|
||||
return _shim
|
||||
.setTransform(
|
||||
entity, transform.storage.map((v) => v.toJS).toList().toJS)
|
||||
@@ -810,7 +810,7 @@ class FilamentViewerJS implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future updateBoneMatrices(FilamentEntity entity) {
|
||||
Future updateBoneMatrices(ThermionEntity entity) {
|
||||
return _shim.updateBoneMatrices(entity).toDart;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,33 +2,33 @@
|
||||
library thermion_flutter_js;
|
||||
|
||||
import 'dart:js_interop';
|
||||
import 'package:thermion_dart/thermion_dart/compatibility/web/interop/shims/abstract_filament_viewer_js_shim.dart';
|
||||
import 'package:thermion_dart/thermion_dart/compatibility/web/interop/shims/thermion_viewer_js_shim.dart';
|
||||
import 'package:thermion_dart/thermion_dart/entities/filament_entity.dart';
|
||||
import 'package:vector_math/vector_math_64.dart' as v64;
|
||||
import 'package:animation_tools_dart/animation_tools_dart.dart';
|
||||
import 'package:thermion_dart/thermion_dart/abstract_filament_viewer.dart';
|
||||
import 'package:thermion_dart/thermion_dart/thermion_viewer.dart';
|
||||
import 'dart:js_interop_unsafe';
|
||||
|
||||
import 'package:vector_math/vector_math_64.dart';
|
||||
|
||||
///
|
||||
/// A (Dart) class that wraps a (Dart) instance of [AbstractFilamentViewer],
|
||||
/// A (Dart) class that wraps a (Dart) instance of [ThermionViewer],
|
||||
/// but exported to JS by binding to a global property.
|
||||
/// This is effectively an implementation of [AbstractFilamentViewerJSShim];
|
||||
/// allowing users to interact with an instance of [AbstractFilamentViewer]
|
||||
/// This is effectively an implementation of [ThermionViewerJSShim];
|
||||
/// allowing users to interact with an instance of [ThermionViewer]
|
||||
/// (presumably compiled to WASM) from any Javascript context (including
|
||||
/// the browser console).
|
||||
///
|
||||
@JSExport()
|
||||
class FilamentViewerJSDartBridge {
|
||||
final AbstractFilamentViewer viewer;
|
||||
class ThermionViewerFFIJSDartBridge {
|
||||
final ThermionViewer viewer;
|
||||
|
||||
FilamentViewerJSDartBridge(this.viewer);
|
||||
ThermionViewerFFIJSDartBridge(this.viewer);
|
||||
|
||||
void bind(
|
||||
{String globalPropertyName = "filamentViewer"}) {
|
||||
var wrapper = createJSInteropWrapper<FilamentViewerJSDartBridge>(this)
|
||||
as AbstractFilamentViewerJSShim;
|
||||
var wrapper = createJSInteropWrapper<ThermionViewerFFIJSDartBridge>(this)
|
||||
as ThermionViewerJSShim;
|
||||
globalContext.setProperty(globalPropertyName.toJS, wrapper);
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@ class FilamentViewerJSDartBridge {
|
||||
}
|
||||
|
||||
@JSExport()
|
||||
JSPromise removeLight(FilamentEntity light) => viewer.removeLight(light).toJS;
|
||||
JSPromise removeLight(ThermionEntity light) => viewer.removeLight(light).toJS;
|
||||
|
||||
@JSExport()
|
||||
JSPromise clearLights() => viewer.clearLights().toJS;
|
||||
@@ -138,16 +138,16 @@ class FilamentViewerJSDartBridge {
|
||||
}
|
||||
|
||||
@JSExport()
|
||||
JSPromise<JSNumber> createInstance(FilamentEntity entity) {
|
||||
JSPromise<JSNumber> createInstance(ThermionEntity entity) {
|
||||
return viewer.createInstance(entity).then((instance) => instance.toJS).toJS;
|
||||
}
|
||||
|
||||
@JSExport()
|
||||
JSPromise<JSNumber> getInstanceCount(FilamentEntity entity) =>
|
||||
JSPromise<JSNumber> getInstanceCount(ThermionEntity entity) =>
|
||||
viewer.getInstanceCount(entity).then((v) => v.toJS).toJS;
|
||||
|
||||
@JSExport()
|
||||
JSPromise<JSArray<JSNumber>> getInstances(FilamentEntity entity) {
|
||||
JSPromise<JSArray<JSNumber>> getInstances(ThermionEntity entity) {
|
||||
return viewer
|
||||
.getInstances(entity)
|
||||
.then((instances) =>
|
||||
@@ -184,14 +184,14 @@ class FilamentViewerJSDartBridge {
|
||||
|
||||
@JSExport()
|
||||
JSPromise setMorphTargetWeights(
|
||||
FilamentEntity entity, JSArray<JSNumber> weights) {
|
||||
ThermionEntity entity, JSArray<JSNumber> weights) {
|
||||
var dartWeights = weights.toDart.map((w) => w.toDartDouble).toList();
|
||||
return viewer.setMorphTargetWeights(entity, dartWeights).toJS;
|
||||
}
|
||||
|
||||
@JSExport()
|
||||
JSPromise<JSArray<JSString>> getMorphTargetNames(
|
||||
FilamentEntity entity, FilamentEntity childEntity) {
|
||||
ThermionEntity entity, ThermionEntity childEntity) {
|
||||
var morphTargetNames = viewer
|
||||
.getMorphTargetNames(entity, childEntity)
|
||||
.then((v) => v.map((s) => s.toJS).toList().toJS);
|
||||
@@ -200,7 +200,7 @@ class FilamentViewerJSDartBridge {
|
||||
|
||||
@JSExport()
|
||||
JSPromise<JSArray<JSString>> getBoneNames(
|
||||
FilamentEntity entity, int skinIndex) {
|
||||
ThermionEntity entity, int skinIndex) {
|
||||
return viewer
|
||||
.getBoneNames(entity, skinIndex: skinIndex)
|
||||
.then((v) => v.map((s) => s.toJS).toList().toJS)
|
||||
@@ -208,7 +208,7 @@ class FilamentViewerJSDartBridge {
|
||||
}
|
||||
|
||||
@JSExport()
|
||||
JSPromise<JSArray<JSString>> getAnimationNames(FilamentEntity entity) =>
|
||||
JSPromise<JSArray<JSString>> getAnimationNames(ThermionEntity entity) =>
|
||||
viewer
|
||||
.getAnimationNames(entity)
|
||||
.then((v) => v.map((s) => s.toJS).toList().toJS)
|
||||
@@ -216,7 +216,7 @@ class FilamentViewerJSDartBridge {
|
||||
|
||||
@JSExport()
|
||||
JSPromise<JSNumber> getAnimationDuration(
|
||||
FilamentEntity entity, int animationIndex) =>
|
||||
ThermionEntity entity, int animationIndex) =>
|
||||
viewer
|
||||
.getAnimationDuration(entity, animationIndex)
|
||||
.then((v) => v.toJS)
|
||||
@@ -224,7 +224,7 @@ class FilamentViewerJSDartBridge {
|
||||
|
||||
@JSExport()
|
||||
JSPromise setMorphAnimationData(
|
||||
FilamentEntity entity,
|
||||
ThermionEntity entity,
|
||||
JSArray<JSArray<JSNumber>> animation,
|
||||
JSArray<JSString> morphTargets,
|
||||
JSArray<JSString>? targetMeshNames,
|
||||
@@ -263,11 +263,11 @@ class FilamentViewerJSDartBridge {
|
||||
}
|
||||
|
||||
@JSExport()
|
||||
JSPromise resetBones(FilamentEntity entity) => viewer.resetBones(entity).toJS;
|
||||
JSPromise resetBones(ThermionEntity entity) => viewer.resetBones(entity).toJS;
|
||||
|
||||
@JSExport()
|
||||
JSPromise addBoneAnimation(
|
||||
FilamentEntity entity,
|
||||
ThermionEntity entity,
|
||||
JSArray<JSString> bones,
|
||||
JSArray<JSArray<JSArray<JSNumber>>> frameData,
|
||||
JSNumber frameLengthInMs,
|
||||
@@ -307,7 +307,7 @@ class FilamentViewerJSDartBridge {
|
||||
}
|
||||
|
||||
@JSExport()
|
||||
JSPromise removeEntity(FilamentEntity entity) =>
|
||||
JSPromise removeEntity(ThermionEntity entity) =>
|
||||
viewer.removeEntity(entity).toJS;
|
||||
|
||||
@JSExport()
|
||||
@@ -326,7 +326,7 @@ class FilamentViewerJSDartBridge {
|
||||
JSPromise zoomEnd() => viewer.zoomEnd().toJS;
|
||||
|
||||
@JSExport()
|
||||
JSPromise playAnimation(FilamentEntity entity, int index,
|
||||
JSPromise playAnimation(ThermionEntity entity, int index,
|
||||
{bool loop = false,
|
||||
bool reverse = false,
|
||||
bool replaceActive = true,
|
||||
@@ -343,7 +343,7 @@ class FilamentViewerJSDartBridge {
|
||||
.toJS;
|
||||
|
||||
@JSExport()
|
||||
JSPromise playAnimationByName(FilamentEntity entity, String name,
|
||||
JSPromise playAnimationByName(ThermionEntity entity, String name,
|
||||
{bool loop = false,
|
||||
bool reverse = false,
|
||||
bool replaceActive = true,
|
||||
@@ -361,7 +361,7 @@ class FilamentViewerJSDartBridge {
|
||||
|
||||
@JSExport()
|
||||
JSPromise setAnimationFrame(
|
||||
FilamentEntity entity, int index, int animationFrame) =>
|
||||
ThermionEntity entity, int index, int animationFrame) =>
|
||||
viewer
|
||||
.setAnimationFrame(
|
||||
entity,
|
||||
@@ -371,15 +371,15 @@ class FilamentViewerJSDartBridge {
|
||||
.toJS;
|
||||
|
||||
@JSExport()
|
||||
JSPromise stopAnimation(FilamentEntity entity, int animationIndex) =>
|
||||
JSPromise stopAnimation(ThermionEntity entity, int animationIndex) =>
|
||||
viewer.stopAnimation(entity, animationIndex).toJS;
|
||||
|
||||
@JSExport()
|
||||
JSPromise stopAnimationByName(FilamentEntity entity, String name) =>
|
||||
JSPromise stopAnimationByName(ThermionEntity entity, String name) =>
|
||||
viewer.stopAnimationByName(entity, name).toJS;
|
||||
|
||||
@JSExport()
|
||||
JSPromise setCamera(FilamentEntity entity, String? name) =>
|
||||
JSPromise setCamera(ThermionEntity entity, String? name) =>
|
||||
viewer.setCamera(entity, name).toJS;
|
||||
|
||||
@JSExport()
|
||||
@@ -469,7 +469,7 @@ class FilamentViewerJSDartBridge {
|
||||
}
|
||||
|
||||
@JSExport()
|
||||
JSPromise moveCameraToAsset(FilamentEntity entity) =>
|
||||
JSPromise moveCameraToAsset(ThermionEntity entity) =>
|
||||
throw UnimplementedError();
|
||||
// viewer.moveCameraToAsset(entity)).toJS;
|
||||
|
||||
@@ -502,7 +502,7 @@ class FilamentViewerJSDartBridge {
|
||||
}
|
||||
|
||||
@JSExport()
|
||||
JSPromise setMaterialColor(FilamentEntity entity, String meshName,
|
||||
JSPromise setMaterialColor(ThermionEntity entity, String meshName,
|
||||
int materialIndex, double r, double g, double b, double a) =>
|
||||
throw UnimplementedError();
|
||||
// viewer.setMaterialColor(
|
||||
@@ -515,21 +515,21 @@ class FilamentViewerJSDartBridge {
|
||||
// a,
|
||||
// ).toJS;
|
||||
@JSExport()
|
||||
JSPromise transformToUnitCube(FilamentEntity entity) =>
|
||||
JSPromise transformToUnitCube(ThermionEntity entity) =>
|
||||
viewer.transformToUnitCube(entity).toJS;
|
||||
@JSExport()
|
||||
JSPromise setPosition(FilamentEntity entity, double x, double y, double z) =>
|
||||
JSPromise setPosition(ThermionEntity entity, double x, double y, double z) =>
|
||||
viewer.setPosition(entity, x, y, z).toJS;
|
||||
@JSExport()
|
||||
JSPromise setScale(FilamentEntity entity, double scale) =>
|
||||
JSPromise setScale(ThermionEntity entity, double scale) =>
|
||||
viewer.setScale(entity, scale).toJS;
|
||||
@JSExport()
|
||||
JSPromise setRotation(
|
||||
FilamentEntity entity, double rads, double x, double y, double z) =>
|
||||
ThermionEntity entity, double rads, double x, double y, double z) =>
|
||||
viewer.setRotation(entity, rads, x, y, z).toJS;
|
||||
@JSExport()
|
||||
JSPromise queuePositionUpdate(
|
||||
FilamentEntity entity, double x, double y, double z, bool relative) =>
|
||||
ThermionEntity entity, double x, double y, double z, bool relative) =>
|
||||
viewer
|
||||
.queuePositionUpdate(
|
||||
entity,
|
||||
@@ -540,7 +540,7 @@ class FilamentViewerJSDartBridge {
|
||||
)
|
||||
.toJS;
|
||||
@JSExport()
|
||||
JSPromise queueRotationUpdate(FilamentEntity entity, double rads, double x,
|
||||
JSPromise queueRotationUpdate(ThermionEntity entity, double rads, double x,
|
||||
double y, double z, bool relative) =>
|
||||
viewer
|
||||
.queueRotationUpdate(
|
||||
@@ -554,7 +554,7 @@ class FilamentViewerJSDartBridge {
|
||||
.toJS;
|
||||
@JSExport()
|
||||
JSPromise queueRotationUpdateQuat(
|
||||
FilamentEntity entity, JSArray<JSNumber> quat, JSBoolean relative) =>
|
||||
ThermionEntity entity, JSArray<JSNumber> quat, JSBoolean relative) =>
|
||||
throw UnimplementedError();
|
||||
// viewer.queueRotationUpdateQuat(
|
||||
// entity,
|
||||
@@ -572,22 +572,22 @@ class FilamentViewerJSDartBridge {
|
||||
|
||||
@JSExport()
|
||||
JSPromise setRotationQuat(
|
||||
FilamentEntity entity, JSArray<JSNumber> rotation) =>
|
||||
ThermionEntity entity, JSArray<JSNumber> rotation) =>
|
||||
throw UnimplementedError();
|
||||
|
||||
@JSExport()
|
||||
JSPromise reveal(FilamentEntity entity, String? meshName) =>
|
||||
JSPromise reveal(ThermionEntity entity, String? meshName) =>
|
||||
viewer.reveal(entity, meshName).toJS;
|
||||
|
||||
@JSExport()
|
||||
JSPromise hide(FilamentEntity entity, String? meshName) =>
|
||||
JSPromise hide(ThermionEntity entity, String? meshName) =>
|
||||
viewer.hide(entity, meshName).toJS;
|
||||
|
||||
@JSExport()
|
||||
void pick(int x, int y) => viewer.pick(x, y);
|
||||
|
||||
@JSExport()
|
||||
String? getNameForEntity(FilamentEntity entity) =>
|
||||
String? getNameForEntity(ThermionEntity entity) =>
|
||||
viewer.getNameForEntity(entity);
|
||||
|
||||
@JSExport()
|
||||
@@ -608,7 +608,7 @@ class FilamentViewerJSDartBridge {
|
||||
|
||||
@JSExport()
|
||||
JSPromise<JSArray<JSNumber>> getChildEntities(
|
||||
FilamentEntity parent, bool renderableOnly) {
|
||||
ThermionEntity parent, bool renderableOnly) {
|
||||
return viewer
|
||||
.getChildEntities(
|
||||
parent,
|
||||
@@ -622,7 +622,7 @@ class FilamentViewerJSDartBridge {
|
||||
}
|
||||
|
||||
@JSExport()
|
||||
JSPromise<JSNumber> getChildEntity(FilamentEntity parent, String childName) {
|
||||
JSPromise<JSNumber> getChildEntity(ThermionEntity parent, String childName) {
|
||||
return viewer
|
||||
.getChildEntity(
|
||||
parent,
|
||||
@@ -637,7 +637,7 @@ class FilamentViewerJSDartBridge {
|
||||
|
||||
@JSExport()
|
||||
JSPromise<JSArray<JSString>> getChildEntityNames(
|
||||
FilamentEntity entity, bool renderableOnly) =>
|
||||
ThermionEntity entity, bool renderableOnly) =>
|
||||
viewer
|
||||
.getChildEntityNames(
|
||||
entity,
|
||||
@@ -654,23 +654,23 @@ class FilamentViewerJSDartBridge {
|
||||
viewer.setRecordingOutputDirectory(outputDirectory).toJS;
|
||||
|
||||
@JSExport()
|
||||
JSPromise addAnimationComponent(FilamentEntity entity) =>
|
||||
JSPromise addAnimationComponent(ThermionEntity entity) =>
|
||||
viewer.addAnimationComponent(entity).toJS;
|
||||
|
||||
@JSExport()
|
||||
JSPromise removeAnimationComponent(FilamentEntity entity) =>
|
||||
JSPromise removeAnimationComponent(ThermionEntity entity) =>
|
||||
viewer.removeAnimationComponent(entity).toJS;
|
||||
|
||||
@JSExport()
|
||||
JSPromise getParent(FilamentEntity entity) =>
|
||||
JSPromise getParent(ThermionEntity entity) =>
|
||||
viewer.removeAnimationComponent(entity).toJS;
|
||||
|
||||
@JSExport()
|
||||
JSPromise getBone(FilamentEntity entity, int boneIndex, int skinIndex) =>
|
||||
JSPromise getBone(ThermionEntity entity, int boneIndex, int skinIndex) =>
|
||||
viewer.getBone(entity, boneIndex, skinIndex: skinIndex).toJS;
|
||||
|
||||
@JSExport()
|
||||
JSPromise<JSArray<JSNumber>> getLocalTransform(FilamentEntity entity) {
|
||||
JSPromise<JSArray<JSNumber>> getLocalTransform(ThermionEntity entity) {
|
||||
return viewer
|
||||
.getLocalTransform(entity)
|
||||
.then((t) => t.storage.map((v) => v.toJS).toList().toJS)
|
||||
@@ -678,7 +678,7 @@ class FilamentViewerJSDartBridge {
|
||||
}
|
||||
|
||||
@JSExport()
|
||||
JSPromise<JSArray<JSNumber>> getWorldTransform(FilamentEntity entity) {
|
||||
JSPromise<JSArray<JSNumber>> getWorldTransform(ThermionEntity entity) {
|
||||
return viewer
|
||||
.getWorldTransform(entity)
|
||||
.then((t) => t.storage.map((v) => v.toJS).toList().toJS)
|
||||
@@ -686,7 +686,7 @@ class FilamentViewerJSDartBridge {
|
||||
}
|
||||
|
||||
@JSExport()
|
||||
JSPromise setTransform(FilamentEntity entity, JSArray<JSNumber> transform) {
|
||||
JSPromise setTransform(ThermionEntity entity, JSArray<JSNumber> transform) {
|
||||
return viewer
|
||||
.setTransform(
|
||||
entity,
|
||||
@@ -696,12 +696,12 @@ class FilamentViewerJSDartBridge {
|
||||
}
|
||||
|
||||
@JSExport()
|
||||
JSPromise updateBoneMatrices(FilamentEntity entity) {
|
||||
JSPromise updateBoneMatrices(ThermionEntity entity) {
|
||||
return viewer.updateBoneMatrices(entity).toJS;
|
||||
}
|
||||
|
||||
@JSExport()
|
||||
JSPromise setBoneTransform(FilamentEntity entity, int boneIndex,
|
||||
JSPromise setBoneTransform(ThermionEntity entity, int boneIndex,
|
||||
JSArray<JSNumber> transform, int skinIndex) {
|
||||
return viewer
|
||||
.setBoneTransform(
|
||||
@@ -714,7 +714,7 @@ class FilamentViewerJSDartBridge {
|
||||
}
|
||||
|
||||
@JSExport()
|
||||
JSPromise addCollisionComponent(FilamentEntity entity,
|
||||
JSPromise addCollisionComponent(ThermionEntity entity,
|
||||
{JSFunction? callback, bool affectsTransform = false}) {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@@ -5,12 +5,12 @@ import 'dart:typed_data' as td;
|
||||
import 'dart:typed_data';
|
||||
import 'package:web/web.dart';
|
||||
import 'package:animation_tools_dart/animation_tools_dart.dart';
|
||||
import 'package:thermion_dart/thermion_dart/abstract_filament_viewer.dart';
|
||||
import 'package:thermion_dart/thermion_dart/thermion_viewer.dart';
|
||||
import 'package:thermion_dart/thermion_dart/compatibility/web/interop/shims/thermion_dart_api_js_shim.dart';
|
||||
import 'package:thermion_dart/thermion_dart/entities/filament_entity.dart';
|
||||
import 'package:thermion_dart/thermion_dart/scene.dart';
|
||||
import 'package:vector_math/vector_math_64.dart';
|
||||
import 'shims/abstract_filament_viewer_js_shim.dart';
|
||||
import 'shims/thermion_viewer_js_shim.dart';
|
||||
|
||||
extension type _EmscriptenModule(JSObject _) implements JSObject {
|
||||
external JSAny? ccall(String name, String returnType,
|
||||
@@ -34,16 +34,16 @@ extension type _EmscriptenModule(JSObject _) implements JSObject {
|
||||
}
|
||||
|
||||
///
|
||||
/// An [AbstractFilamentViewer] implementation that forwards calls to
|
||||
/// An [ThermionViewer] implementation that forwards calls to
|
||||
/// the (Emscripten-generated) ThermionDart JS module.
|
||||
///
|
||||
class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
class ThermionViewerFFIWasm implements ThermionViewer {
|
||||
late _EmscriptenModule _module;
|
||||
|
||||
bool _initialized = false;
|
||||
bool _rendering = false;
|
||||
|
||||
FilamentViewerWasm() {
|
||||
ThermionViewerFFIWasm() {
|
||||
_module = window.getProperty<_EmscriptenModule>("df".toJS);
|
||||
}
|
||||
|
||||
@@ -132,7 +132,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future addAnimationComponent(FilamentEntity entity) async {
|
||||
Future addAnimationComponent(ThermionEntity entity) async {
|
||||
_module.ccall(
|
||||
"add_animation_component",
|
||||
"bool",
|
||||
@@ -152,7 +152,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<Matrix4>> getRestLocalTransforms(FilamentEntity entity,
|
||||
Future<List<Matrix4>> getRestLocalTransforms(ThermionEntity entity,
|
||||
{int skinIndex = 0}) async {
|
||||
var boneCountJS = _module.ccall(
|
||||
"get_bone_count",
|
||||
@@ -178,7 +178,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<FilamentEntity> getBone(FilamentEntity parent, int boneIndex,
|
||||
Future<ThermionEntity> getBone(ThermionEntity parent, int boneIndex,
|
||||
{int skinIndex = 0}) async {
|
||||
final boneId = _module.ccall(
|
||||
"get_bone",
|
||||
@@ -192,7 +192,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
return boneId.toDartInt;
|
||||
}
|
||||
|
||||
Future<List<FilamentEntity>> getBones(FilamentEntity entity,
|
||||
Future<List<ThermionEntity>> getBones(ThermionEntity entity,
|
||||
{int skinIndex = 0}) async {
|
||||
final boneNames = await getBoneNames(entity);
|
||||
final bones = await Future.wait(List.generate(
|
||||
@@ -201,7 +201,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future addBoneAnimation(FilamentEntity entity, BoneAnimationData animation,
|
||||
Future addBoneAnimation(ThermionEntity entity, BoneAnimationData animation,
|
||||
{int skinIndex = 0,
|
||||
double fadeInInSecs = 0.0,
|
||||
double fadeOutInSecs = 0.0,
|
||||
@@ -289,7 +289,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future addCollisionComponent(FilamentEntity entity,
|
||||
Future addCollisionComponent(ThermionEntity entity,
|
||||
{void Function(int entityId1, int entityId2)? callback,
|
||||
bool affectsTransform = false}) {
|
||||
// TODO: implement addCollisionComponent
|
||||
@@ -297,7 +297,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<FilamentEntity> addLight(
|
||||
Future<ThermionEntity> addLight(
|
||||
LightType type,
|
||||
double colour,
|
||||
double intensity,
|
||||
@@ -390,26 +390,26 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<FilamentEntity> createInstance(FilamentEntity entity) {
|
||||
Future<ThermionEntity> createInstance(ThermionEntity entity) {
|
||||
// TODO: implement createInstance
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<double> getAnimationDuration(
|
||||
FilamentEntity entity, int animationIndex) {
|
||||
ThermionEntity entity, int animationIndex) {
|
||||
// TODO: implement getAnimationDuration
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<String>> getAnimationNames(FilamentEntity entity) {
|
||||
Future<List<String>> getAnimationNames(ThermionEntity entity) {
|
||||
// TODO: implement getAnimationNames
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<String>> getBoneNames(FilamentEntity entity,
|
||||
Future<List<String>> getBoneNames(ThermionEntity entity,
|
||||
{int skinIndex = 0}) async {
|
||||
var boneCountJS = _module.ccall(
|
||||
"get_bone_count",
|
||||
@@ -498,8 +498,8 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<FilamentEntity>> getChildEntities(
|
||||
FilamentEntity parent, bool renderableOnly) async {
|
||||
Future<List<ThermionEntity>> getChildEntities(
|
||||
ThermionEntity parent, bool renderableOnly) async {
|
||||
var entityCountJS = _module.ccall(
|
||||
"get_entity_count",
|
||||
"int",
|
||||
@@ -507,7 +507,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
[_sceneManager!, parent.toJS, renderableOnly.toJS].toJS,
|
||||
null) as JSNumber;
|
||||
var entityCount = entityCountJS.toDartInt;
|
||||
var entities = <FilamentEntity>[];
|
||||
var entities = <ThermionEntity>[];
|
||||
var buf = _module._malloc(entityCount * 4) as JSNumber;
|
||||
|
||||
_module.ccall(
|
||||
@@ -526,8 +526,8 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<FilamentEntity> getChildEntity(
|
||||
FilamentEntity parent, String childName) async {
|
||||
Future<ThermionEntity> getChildEntity(
|
||||
ThermionEntity parent, String childName) async {
|
||||
final entityId = _module.ccall(
|
||||
"find_child_entity_by_name",
|
||||
"int",
|
||||
@@ -541,7 +541,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<String>> getChildEntityNames(FilamentEntity entity,
|
||||
Future<List<String>> getChildEntityNames(ThermionEntity entity,
|
||||
{bool renderableOnly = true}) async {
|
||||
var entityCountJS = _module.ccall(
|
||||
"get_entity_count",
|
||||
@@ -564,32 +564,32 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<int> getInstanceCount(FilamentEntity entity) {
|
||||
Future<int> getInstanceCount(ThermionEntity entity) {
|
||||
// TODO: implement getInstanceCount
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<List<FilamentEntity>> getInstances(FilamentEntity entity) {
|
||||
Future<List<ThermionEntity>> getInstances(ThermionEntity entity) {
|
||||
// TODO: implement getInstances
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Matrix4> getInverseBindMatrix(FilamentEntity parent, int boneIndex,
|
||||
Future<Matrix4> getInverseBindMatrix(ThermionEntity parent, int boneIndex,
|
||||
{int skinIndex = 0}) {
|
||||
// TODO: implement getInverseBindMatrix
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Matrix4> getLocalTransform(FilamentEntity entity) {
|
||||
Future<Matrix4> getLocalTransform(ThermionEntity entity) {
|
||||
// TODO: implement getLocalTransform
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<FilamentEntity> getMainCamera() async {
|
||||
Future<ThermionEntity> getMainCamera() async {
|
||||
final entityId = _module.ccall(
|
||||
"get_main_camera", "int", ["void*".toJS].toJS, [_viewer].toJS, null)
|
||||
as JSNumber;
|
||||
@@ -601,7 +601,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
|
||||
@override
|
||||
Future<List<String>> getMorphTargetNames(
|
||||
FilamentEntity entity, FilamentEntity childEntity) async {
|
||||
ThermionEntity entity, ThermionEntity childEntity) async {
|
||||
var morphTargetCountJS = _module.ccall(
|
||||
"get_morph_target_name_count",
|
||||
"int",
|
||||
@@ -631,7 +631,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
String? getNameForEntity(FilamentEntity entity) {
|
||||
String? getNameForEntity(ThermionEntity entity) {
|
||||
final namePtr = _module.ccall(
|
||||
"get_name_for_entity",
|
||||
"char*",
|
||||
@@ -645,7 +645,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<FilamentEntity?> getParent(FilamentEntity child) async {
|
||||
Future<ThermionEntity?> getParent(ThermionEntity child) async {
|
||||
final parentId = _module.ccall(
|
||||
"get_parent",
|
||||
"int",
|
||||
@@ -659,7 +659,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Matrix4> getWorldTransform(FilamentEntity entity) async {
|
||||
Future<Matrix4> getWorldTransform(ThermionEntity entity) async {
|
||||
final matrixPtr = _module._malloc(16 * 4) as JSNumber;
|
||||
_module.ccall(
|
||||
"get_world_transform",
|
||||
@@ -677,7 +677,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
AbstractGizmo? get gizmo => throw UnimplementedError();
|
||||
|
||||
@override
|
||||
Future hide(FilamentEntity entity, String? meshName) async {
|
||||
Future hide(ThermionEntity entity, String? meshName) async {
|
||||
if (meshName != null) {
|
||||
final result = _module.ccall(
|
||||
"hide_mesh",
|
||||
@@ -695,7 +695,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
}
|
||||
|
||||
Future<FilamentEntity> loadGlbFromBuffer(Uint8List data,
|
||||
Future<ThermionEntity> loadGlbFromBuffer(Uint8List data,
|
||||
{int numInstances = 1}) async {
|
||||
if (numInstances != 1) {
|
||||
throw Exception("TODO");
|
||||
@@ -718,7 +718,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<FilamentEntity> loadGlb(String path, {int numInstances = 1}) async {
|
||||
Future<ThermionEntity> loadGlb(String path, {int numInstances = 1}) async {
|
||||
final promise = _module.ccall(
|
||||
"load_glb",
|
||||
"int",
|
||||
@@ -733,7 +733,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<FilamentEntity> loadGltf(String path, String relativeResourcePath,
|
||||
Future<ThermionEntity> loadGltf(String path, String relativeResourcePath,
|
||||
{bool force = false}) async {
|
||||
final promise = _module.ccall(
|
||||
"load_gltf",
|
||||
@@ -771,7 +771,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future moveCameraToAsset(FilamentEntity entity) {
|
||||
Future moveCameraToAsset(ThermionEntity entity) {
|
||||
// TODO: implement moveCameraToAsset
|
||||
throw UnimplementedError();
|
||||
}
|
||||
@@ -800,7 +800,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future playAnimation(FilamentEntity entity, int index,
|
||||
Future playAnimation(ThermionEntity entity, int index,
|
||||
{bool loop = false,
|
||||
bool reverse = false,
|
||||
bool replaceActive = true,
|
||||
@@ -830,7 +830,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future playAnimationByName(FilamentEntity entity, String name,
|
||||
Future playAnimationByName(ThermionEntity entity, String name,
|
||||
{bool loop = false,
|
||||
bool reverse = false,
|
||||
bool replaceActive = true,
|
||||
@@ -841,7 +841,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
|
||||
@override
|
||||
Future queuePositionUpdate(
|
||||
FilamentEntity entity, double x, double y, double z,
|
||||
ThermionEntity entity, double x, double y, double z,
|
||||
{bool relative = false}) {
|
||||
// TODO: implement queuePositionUpdate
|
||||
throw UnimplementedError();
|
||||
@@ -849,33 +849,33 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
|
||||
@override
|
||||
Future queueRotationUpdate(
|
||||
FilamentEntity entity, double rads, double x, double y, double z,
|
||||
ThermionEntity entity, double rads, double x, double y, double z,
|
||||
{bool relative = false}) {
|
||||
// TODO: implement queueRotationUpdate
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future queueRotationUpdateQuat(FilamentEntity entity, Quaternion quat,
|
||||
Future queueRotationUpdateQuat(ThermionEntity entity, Quaternion quat,
|
||||
{bool relative = false}) {
|
||||
// TODO: implement queueRotationUpdateQuat
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future removeAnimationComponent(FilamentEntity entity) {
|
||||
Future removeAnimationComponent(ThermionEntity entity) {
|
||||
// TODO: implement removeAnimationComponent
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future removeCollisionComponent(FilamentEntity entity) {
|
||||
Future removeCollisionComponent(ThermionEntity entity) {
|
||||
// TODO: implement removeCollisionComponent
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future removeEntity(FilamentEntity entity) {
|
||||
Future removeEntity(ThermionEntity entity) {
|
||||
// TODO: implement removeEntity
|
||||
throw UnimplementedError();
|
||||
}
|
||||
@@ -887,7 +887,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future removeLight(FilamentEntity light) {
|
||||
Future removeLight(ThermionEntity light) {
|
||||
// TODO: implement removeLight
|
||||
throw UnimplementedError();
|
||||
}
|
||||
@@ -924,13 +924,13 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future resetBones(FilamentEntity entity) {
|
||||
Future resetBones(ThermionEntity entity) {
|
||||
// TODO: implement resetBones
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future reveal(FilamentEntity entity, String? meshName) {
|
||||
Future reveal(ThermionEntity entity, String? meshName) {
|
||||
// TODO: implement reveal
|
||||
throw UnimplementedError();
|
||||
}
|
||||
@@ -965,7 +965,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
|
||||
@override
|
||||
Future setAnimationFrame(
|
||||
FilamentEntity entity, int index, int animationFrame) {
|
||||
ThermionEntity entity, int index, int animationFrame) {
|
||||
// TODO: implement setAnimationFrame
|
||||
throw UnimplementedError();
|
||||
}
|
||||
@@ -1000,14 +1000,14 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
|
||||
@override
|
||||
Future setBoneTransform(
|
||||
FilamentEntity entity, int boneIndex, Matrix4 transform,
|
||||
ThermionEntity entity, int boneIndex, Matrix4 transform,
|
||||
{int skinIndex = 0}) {
|
||||
// TODO: implement setBoneTransform
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future setCamera(FilamentEntity entity, String? name) {
|
||||
Future setCamera(ThermionEntity entity, String? name) {
|
||||
// TODO: implement setCamera
|
||||
throw UnimplementedError();
|
||||
}
|
||||
@@ -1099,7 +1099,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future setMaterialColor(FilamentEntity entity, String meshName,
|
||||
Future setMaterialColor(ThermionEntity entity, String meshName,
|
||||
int materialIndex, double r, double g, double b, double a) {
|
||||
// TODO: implement setMaterialColor
|
||||
throw UnimplementedError();
|
||||
@@ -1107,7 +1107,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
|
||||
// @override
|
||||
// Future setMorphAnimationData(
|
||||
// FilamentEntity entity, MorphAnimationData animation,
|
||||
// ThermionEntity entity, MorphAnimationData animation,
|
||||
// {List<String>? targetMeshNames}) async {
|
||||
// final morphTargetNames = await getMorphTargetNames(entity, entity);
|
||||
|
||||
@@ -1162,7 +1162,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
|
||||
@override
|
||||
Future setMorphAnimationData(
|
||||
FilamentEntity entity, MorphAnimationData animation,
|
||||
ThermionEntity entity, MorphAnimationData animation,
|
||||
{List<String>? targetMeshNames, bool useNextEntity = false}) async {
|
||||
var meshNames = await getChildEntityNames(entity, renderableOnly: false);
|
||||
if (targetMeshNames != null) {
|
||||
@@ -1272,20 +1272,20 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future setMorphTargetWeights(FilamentEntity entity, List<double> weights) {
|
||||
Future setMorphTargetWeights(ThermionEntity entity, List<double> weights) {
|
||||
// TODO: implement setMorphTargetWeights
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future setParent(FilamentEntity child, FilamentEntity parent) {
|
||||
Future setParent(ThermionEntity child, ThermionEntity parent) {
|
||||
// TODO: implement setParent
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future setPosition(
|
||||
FilamentEntity entity, double x, double y, double z) async {
|
||||
ThermionEntity entity, double x, double y, double z) async {
|
||||
_module.ccall(
|
||||
"set_position",
|
||||
"void",
|
||||
@@ -1302,7 +1302,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future setPriority(FilamentEntity entityId, int priority) {
|
||||
Future setPriority(ThermionEntity entityId, int priority) {
|
||||
// TODO: implement setPriority
|
||||
throw UnimplementedError();
|
||||
}
|
||||
@@ -1327,7 +1327,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
|
||||
@override
|
||||
Future setRotation(
|
||||
FilamentEntity entity, double rads, double x, double y, double z) async {
|
||||
ThermionEntity entity, double rads, double x, double y, double z) async {
|
||||
var quaternion = Quaternion.axisAngle(Vector3(x, y, z), rads);
|
||||
_module.ccall(
|
||||
"set_rotation",
|
||||
@@ -1353,7 +1353,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future setRotationQuat(FilamentEntity entity, Quaternion rotation) async {
|
||||
Future setRotationQuat(ThermionEntity entity, Quaternion rotation) async {
|
||||
_module.ccall(
|
||||
"set_rotation",
|
||||
"void",
|
||||
@@ -1378,7 +1378,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future setScale(FilamentEntity entity, double scale) {
|
||||
Future setScale(ThermionEntity entity, double scale) {
|
||||
// TODO: implement setScale
|
||||
throw UnimplementedError();
|
||||
}
|
||||
@@ -1390,7 +1390,7 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future setTransform(FilamentEntity entity, Matrix4 transform) {
|
||||
Future setTransform(ThermionEntity entity, Matrix4 transform) {
|
||||
// TODO: implement setTransform
|
||||
throw UnimplementedError();
|
||||
}
|
||||
@@ -1402,31 +1402,31 @@ class FilamentViewerWasm implements AbstractFilamentViewer {
|
||||
}
|
||||
|
||||
@override
|
||||
Future stopAnimation(FilamentEntity entity, int animationIndex) {
|
||||
Future stopAnimation(ThermionEntity entity, int animationIndex) {
|
||||
// TODO: implement stopAnimation
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future stopAnimationByName(FilamentEntity entity, String name) {
|
||||
Future stopAnimationByName(ThermionEntity entity, String name) {
|
||||
// TODO: implement stopAnimationByName
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future testCollisions(FilamentEntity entity) {
|
||||
Future testCollisions(ThermionEntity entity) {
|
||||
// TODO: implement testCollisions
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future transformToUnitCube(FilamentEntity entity) {
|
||||
Future transformToUnitCube(ThermionEntity entity) {
|
||||
// TODO: implement transformToUnitCube
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future updateBoneMatrices(FilamentEntity entity) {
|
||||
Future updateBoneMatrices(ThermionEntity entity) {
|
||||
// TODO: implement updateBoneMatrices
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@@ -3,13 +3,13 @@ library thermion_flutter_js;
|
||||
|
||||
import 'dart:js_interop';
|
||||
import 'package:thermion_dart/thermion_dart/entities/filament_entity.dart';
|
||||
import 'package:thermion_dart/thermion_dart/abstract_filament_viewer.dart';
|
||||
import 'package:thermion_dart/thermion_dart/thermion_viewer.dart';
|
||||
|
||||
///
|
||||
/// An extension type on [JSObject] that represents a
|
||||
/// Javascript shim implementation of the [AbstractFilamentViewer] interface.
|
||||
/// Javascript shim implementation of the [ThermionViewer] interface.
|
||||
///
|
||||
extension type AbstractFilamentViewerJSShim(JSObject _) implements JSObject {
|
||||
extension type ThermionViewerJSShim(JSObject _) implements JSObject {
|
||||
|
||||
@JS('initialized')
|
||||
external JSPromise<JSBoolean> get initialized;
|
||||
@@ -77,7 +77,7 @@ extension type AbstractFilamentViewerJSShim(JSObject _) implements JSObject {
|
||||
bool castShadows);
|
||||
|
||||
@JS('removeLight')
|
||||
external JSPromise removeLight(FilamentEntity light);
|
||||
external JSPromise removeLight(ThermionEntity light);
|
||||
|
||||
@JS('clearLights')
|
||||
external JSPromise clearLights();
|
||||
@@ -86,13 +86,13 @@ extension type AbstractFilamentViewerJSShim(JSObject _) implements JSObject {
|
||||
external JSPromise<JSNumber> loadGlb(String path, int numInstances);
|
||||
|
||||
@JS('createInstance')
|
||||
external JSPromise<JSNumber> createInstance(FilamentEntity entity);
|
||||
external JSPromise<JSNumber> createInstance(ThermionEntity entity);
|
||||
|
||||
@JS('getInstanceCount')
|
||||
external JSPromise<JSNumber> getInstanceCount(FilamentEntity entity);
|
||||
external JSPromise<JSNumber> getInstanceCount(ThermionEntity entity);
|
||||
|
||||
@JS('getInstances')
|
||||
external JSPromise<JSArray<JSNumber>> getInstances(FilamentEntity entity);
|
||||
external JSPromise<JSArray<JSNumber>> getInstances(ThermionEntity entity);
|
||||
|
||||
@JS('loadGltf')
|
||||
external JSPromise<JSNumber> loadGltf(
|
||||
@@ -118,38 +118,38 @@ extension type AbstractFilamentViewerJSShim(JSObject _) implements JSObject {
|
||||
|
||||
@JS('setMorphTargetWeights')
|
||||
external JSPromise setMorphTargetWeights(
|
||||
FilamentEntity entity, JSArray<JSNumber> weights);
|
||||
ThermionEntity entity, JSArray<JSNumber> weights);
|
||||
|
||||
@JS('getMorphTargetNames')
|
||||
external JSPromise<JSArray<JSString>> getMorphTargetNames(
|
||||
FilamentEntity entity, FilamentEntity childEntity);
|
||||
ThermionEntity entity, ThermionEntity childEntity);
|
||||
|
||||
@JS('getBoneNames')
|
||||
external JSPromise<JSArray<JSString>> getBoneNames(
|
||||
FilamentEntity entity, int skinIndex);
|
||||
ThermionEntity entity, int skinIndex);
|
||||
|
||||
@JS('getAnimationNames')
|
||||
external JSPromise<JSArray<JSString>> getAnimationNames(
|
||||
FilamentEntity entity);
|
||||
ThermionEntity entity);
|
||||
|
||||
@JS('getAnimationDuration')
|
||||
external JSPromise<JSNumber> getAnimationDuration(
|
||||
FilamentEntity entity, int animationIndex);
|
||||
ThermionEntity entity, int animationIndex);
|
||||
|
||||
@JS('setMorphAnimationData')
|
||||
external JSPromise setMorphAnimationData(
|
||||
FilamentEntity entity,
|
||||
ThermionEntity entity,
|
||||
JSArray<JSArray<JSNumber>> animation,
|
||||
JSArray<JSString> morphTargets,
|
||||
JSArray<JSString>? targetMeshNames,
|
||||
double frameLengthInMs);
|
||||
|
||||
@JS('resetBones')
|
||||
external JSPromise resetBones(FilamentEntity entity);
|
||||
external JSPromise resetBones(ThermionEntity entity);
|
||||
|
||||
@JS('addBoneAnimation')
|
||||
external JSPromise addBoneAnimation(
|
||||
FilamentEntity entity,
|
||||
ThermionEntity entity,
|
||||
JSArray<JSString> bones,
|
||||
JSArray<JSArray<JSArray<JSNumber>>> frameData,
|
||||
JSNumber frameLengthInMs,
|
||||
@@ -160,7 +160,7 @@ extension type AbstractFilamentViewerJSShim(JSObject _) implements JSObject {
|
||||
JSNumber maxDelta);
|
||||
|
||||
@JS('removeEntity')
|
||||
external JSPromise removeEntity(FilamentEntity entity);
|
||||
external JSPromise removeEntity(ThermionEntity entity);
|
||||
|
||||
@JS('clearEntities')
|
||||
external JSPromise clearEntities();
|
||||
@@ -176,7 +176,7 @@ extension type AbstractFilamentViewerJSShim(JSObject _) implements JSObject {
|
||||
|
||||
@JS('playAnimation')
|
||||
external JSPromise playAnimation(
|
||||
FilamentEntity entity,
|
||||
ThermionEntity entity,
|
||||
int index,
|
||||
bool loop,
|
||||
bool reverse,
|
||||
@@ -186,7 +186,7 @@ extension type AbstractFilamentViewerJSShim(JSObject _) implements JSObject {
|
||||
|
||||
@JS('playAnimationByName')
|
||||
external JSPromise playAnimationByName(
|
||||
FilamentEntity entity,
|
||||
ThermionEntity entity,
|
||||
String name,
|
||||
bool loop,
|
||||
bool reverse,
|
||||
@@ -196,16 +196,16 @@ extension type AbstractFilamentViewerJSShim(JSObject _) implements JSObject {
|
||||
|
||||
@JS('setAnimationFrame')
|
||||
external JSPromise setAnimationFrame(
|
||||
FilamentEntity entity, int index, int animationFrame);
|
||||
ThermionEntity entity, int index, int animationFrame);
|
||||
|
||||
@JS('stopAnimation')
|
||||
external JSPromise stopAnimation(FilamentEntity entity, int animationIndex);
|
||||
external JSPromise stopAnimation(ThermionEntity entity, int animationIndex);
|
||||
|
||||
@JS('stopAnimationByName')
|
||||
external JSPromise stopAnimationByName(FilamentEntity entity, String name);
|
||||
external JSPromise stopAnimationByName(ThermionEntity entity, String name);
|
||||
|
||||
@JS('setCamera')
|
||||
external JSPromise setCamera(FilamentEntity entity, String? name);
|
||||
external JSPromise setCamera(ThermionEntity entity, String? name);
|
||||
|
||||
@JS('setMainCamera')
|
||||
external JSPromise setMainCamera();
|
||||
@@ -262,7 +262,7 @@ extension type AbstractFilamentViewerJSShim(JSObject _) implements JSObject {
|
||||
external JSPromise<JSArray<JSNumber>> getCameraRotation();
|
||||
|
||||
@JS('moveCameraToAsset')
|
||||
external JSPromise moveCameraToAsset(FilamentEntity entity);
|
||||
external JSPromise moveCameraToAsset(ThermionEntity entity);
|
||||
|
||||
@JS('setViewFrustumCulling')
|
||||
external JSPromise setViewFrustumCulling(JSBoolean enabled);
|
||||
@@ -278,34 +278,34 @@ extension type AbstractFilamentViewerJSShim(JSObject _) implements JSObject {
|
||||
external JSPromise setCameraModelMatrix(JSArray<JSNumber> matrix);
|
||||
|
||||
@JS('setMaterialColor')
|
||||
external JSPromise setMaterialColor(FilamentEntity entity, String meshName,
|
||||
external JSPromise setMaterialColor(ThermionEntity entity, String meshName,
|
||||
int materialIndex, double r, double g, double b, double a);
|
||||
|
||||
@JS('transformToUnitCube')
|
||||
external JSPromise transformToUnitCube(FilamentEntity entity);
|
||||
external JSPromise transformToUnitCube(ThermionEntity entity);
|
||||
|
||||
@JS('setPosition')
|
||||
external JSPromise setPosition(
|
||||
FilamentEntity entity, double x, double y, double z);
|
||||
ThermionEntity entity, double x, double y, double z);
|
||||
|
||||
@JS('setScale')
|
||||
external JSPromise setScale(FilamentEntity entity, double scale);
|
||||
external JSPromise setScale(ThermionEntity entity, double scale);
|
||||
|
||||
@JS('setRotation')
|
||||
external JSPromise setRotation(
|
||||
FilamentEntity entity, double rads, double x, double y, double z);
|
||||
ThermionEntity entity, double rads, double x, double y, double z);
|
||||
|
||||
@JS('queuePositionUpdate')
|
||||
external JSPromise queuePositionUpdate(
|
||||
FilamentEntity entity, double x, double y, double z, bool relative);
|
||||
ThermionEntity entity, double x, double y, double z, bool relative);
|
||||
|
||||
@JS('queueRotationUpdate')
|
||||
external JSPromise queueRotationUpdate(FilamentEntity entity, double rads,
|
||||
external JSPromise queueRotationUpdate(ThermionEntity entity, double rads,
|
||||
double x, double y, double z, bool relative);
|
||||
|
||||
@JS('queueRotationUpdateQuat')
|
||||
external JSPromise queueRotationUpdateQuat(
|
||||
FilamentEntity entity, JSArray<JSNumber> quat, bool relative);
|
||||
ThermionEntity entity, JSArray<JSNumber> quat, bool relative);
|
||||
|
||||
@JS('setPostProcessing')
|
||||
external JSPromise setPostProcessing(bool enabled);
|
||||
@@ -315,19 +315,19 @@ extension type AbstractFilamentViewerJSShim(JSObject _) implements JSObject {
|
||||
|
||||
@JS('setRotationQuat')
|
||||
external JSPromise setRotationQuat(
|
||||
FilamentEntity entity, JSArray<JSNumber> rotation);
|
||||
ThermionEntity entity, JSArray<JSNumber> rotation);
|
||||
|
||||
@JS('reveal')
|
||||
external JSPromise reveal(FilamentEntity entity, String? meshName);
|
||||
external JSPromise reveal(ThermionEntity entity, String? meshName);
|
||||
|
||||
@JS('hide')
|
||||
external JSPromise hide(FilamentEntity entity, String? meshName);
|
||||
external JSPromise hide(ThermionEntity entity, String? meshName);
|
||||
|
||||
@JS('pick')
|
||||
external void pick(int x, int y);
|
||||
|
||||
@JS('getNameForEntity')
|
||||
external String? getNameForEntity(FilamentEntity entity);
|
||||
external String? getNameForEntity(ThermionEntity entity);
|
||||
|
||||
@JS('setCameraManipulatorOptions')
|
||||
external JSPromise setCameraManipulatorOptions(
|
||||
@@ -339,15 +339,15 @@ extension type AbstractFilamentViewerJSShim(JSObject _) implements JSObject {
|
||||
|
||||
@JS('getChildEntities')
|
||||
external JSPromise<JSArray<JSNumber>> getChildEntities(
|
||||
FilamentEntity parent, bool renderableOnly);
|
||||
ThermionEntity parent, bool renderableOnly);
|
||||
|
||||
@JS('getChildEntity')
|
||||
external JSPromise<JSNumber> getChildEntity(
|
||||
FilamentEntity parent, String childName);
|
||||
ThermionEntity parent, String childName);
|
||||
|
||||
@JS('getChildEntityNames')
|
||||
external JSPromise<JSArray<JSString>> getChildEntityNames(
|
||||
FilamentEntity entity, bool renderableOnly);
|
||||
ThermionEntity entity, bool renderableOnly);
|
||||
|
||||
@JS('setRecording')
|
||||
external JSPromise setRecording(JSBoolean recording);
|
||||
@@ -356,54 +356,54 @@ extension type AbstractFilamentViewerJSShim(JSObject _) implements JSObject {
|
||||
external JSPromise setRecordingOutputDirectory(String outputDirectory);
|
||||
|
||||
@JS('addAnimationComponent')
|
||||
external JSPromise addAnimationComponent(FilamentEntity entity);
|
||||
external JSPromise addAnimationComponent(ThermionEntity entity);
|
||||
|
||||
@JS('removeAnimationComponent')
|
||||
external JSPromise removeAnimationComponent(FilamentEntity entity);
|
||||
external JSPromise removeAnimationComponent(ThermionEntity entity);
|
||||
|
||||
@JS('addCollisionComponent')
|
||||
external JSPromise addCollisionComponent(FilamentEntity entity);
|
||||
external JSPromise addCollisionComponent(ThermionEntity entity);
|
||||
|
||||
@JS('removeCollisionComponent')
|
||||
external JSPromise removeCollisionComponent(FilamentEntity entity);
|
||||
external JSPromise removeCollisionComponent(ThermionEntity entity);
|
||||
|
||||
@JS('createGeometry')
|
||||
external JSPromise<JSNumber> createGeometry(JSArray<JSNumber> vertices,
|
||||
JSArray<JSNumber> indices, String? materialPath, int primitiveType);
|
||||
|
||||
@JS('setParent')
|
||||
external JSPromise setParent(FilamentEntity child, FilamentEntity parent);
|
||||
external JSPromise setParent(ThermionEntity child, ThermionEntity parent);
|
||||
|
||||
@JS('getParent')
|
||||
external JSPromise<JSNumber> getParent(FilamentEntity child);
|
||||
external JSPromise<JSNumber> getParent(ThermionEntity child);
|
||||
|
||||
@JS('getParent')
|
||||
external JSPromise<JSNumber> getBone(
|
||||
FilamentEntity child, int boneIndex, int skinIndex);
|
||||
ThermionEntity child, int boneIndex, int skinIndex);
|
||||
|
||||
@JS('testCollisions')
|
||||
external JSPromise testCollisions(FilamentEntity entity);
|
||||
external JSPromise testCollisions(ThermionEntity entity);
|
||||
|
||||
@JS('setPriority')
|
||||
external JSPromise setPriority(FilamentEntity entityId, int priority);
|
||||
external JSPromise setPriority(ThermionEntity entityId, int priority);
|
||||
|
||||
@JS('getLocalTransform')
|
||||
external JSPromise<JSArray<JSNumber>> getLocalTransform(
|
||||
FilamentEntity entity);
|
||||
ThermionEntity entity);
|
||||
|
||||
@JS('getWorldTransform')
|
||||
external JSPromise<JSArray<JSNumber>> getWorldTransform(
|
||||
FilamentEntity entity);
|
||||
ThermionEntity entity);
|
||||
|
||||
@JS('updateBoneMatrices')
|
||||
external JSPromise updateBoneMatrices(FilamentEntity entity);
|
||||
external JSPromise updateBoneMatrices(ThermionEntity entity);
|
||||
|
||||
@JS('setTransform')
|
||||
external JSPromise setTransform(
|
||||
FilamentEntity entity, JSArray<JSNumber> transform);
|
||||
ThermionEntity entity, JSArray<JSNumber> transform);
|
||||
|
||||
@JS('setBoneTransform')
|
||||
external JSPromise setBoneTransform(
|
||||
FilamentEntity entity, int boneIndex, JSArray<JSNumber> transform, int skinIndex);
|
||||
ThermionEntity entity, int boneIndex, JSArray<JSNumber> transform, int skinIndex);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,11 +3,11 @@ library thermion_flutter_js;
|
||||
|
||||
import 'dart:js_interop';
|
||||
import 'package:thermion_dart/thermion_dart/entities/filament_entity.dart';
|
||||
import 'package:thermion_dart/thermion_dart/abstract_filament_viewer.dart';
|
||||
import 'package:thermion_dart/thermion_dart/thermion_viewer.dart';
|
||||
|
||||
///
|
||||
/// An extension type on [JSObject] that represents a
|
||||
/// Javascript shim implementation for the [AbstractFilamentViewer] interface.
|
||||
/// Javascript shim implementation for the [ThermionViewer] interface.
|
||||
///
|
||||
extension type ThermionDartAPIJSShim(JSObject _) implements JSObject {
|
||||
|
||||
@@ -71,7 +71,7 @@ extension type ThermionDartAPIJSShim(JSObject _) implements JSObject {
|
||||
bool castShadows);
|
||||
|
||||
@JS('removeLight')
|
||||
external JSPromise removeLight(FilamentEntity light);
|
||||
external JSPromise removeLight(ThermionEntity light);
|
||||
|
||||
@JS('clearLights')
|
||||
external JSPromise clearLights();
|
||||
@@ -80,13 +80,13 @@ extension type ThermionDartAPIJSShim(JSObject _) implements JSObject {
|
||||
external JSPromise<JSNumber> loadGlb(String path, int numInstances);
|
||||
|
||||
@JS('createInstance')
|
||||
external JSPromise<JSNumber> createInstance(FilamentEntity entity);
|
||||
external JSPromise<JSNumber> createInstance(ThermionEntity entity);
|
||||
|
||||
@JS('getInstanceCount')
|
||||
external JSPromise<JSNumber> getInstanceCount(FilamentEntity entity);
|
||||
external JSPromise<JSNumber> getInstanceCount(ThermionEntity entity);
|
||||
|
||||
@JS('getInstances')
|
||||
external JSPromise<JSArray<JSNumber>> getInstances(FilamentEntity entity);
|
||||
external JSPromise<JSArray<JSNumber>> getInstances(ThermionEntity entity);
|
||||
|
||||
@JS('loadGltf')
|
||||
external JSPromise<JSNumber> loadGltf(
|
||||
@@ -112,38 +112,38 @@ extension type ThermionDartAPIJSShim(JSObject _) implements JSObject {
|
||||
|
||||
@JS('setMorphTargetWeights')
|
||||
external JSPromise setMorphTargetWeights(
|
||||
FilamentEntity entity, JSArray<JSNumber> weights);
|
||||
ThermionEntity entity, JSArray<JSNumber> weights);
|
||||
|
||||
@JS('getMorphTargetNames')
|
||||
external JSPromise<JSArray<JSString>> getMorphTargetNames(
|
||||
FilamentEntity entity, FilamentEntity childEntity);
|
||||
ThermionEntity entity, ThermionEntity childEntity);
|
||||
|
||||
@JS('getBoneNames')
|
||||
external JSPromise<JSArray<JSString>> getBoneNames(
|
||||
FilamentEntity entity, int skinIndex);
|
||||
ThermionEntity entity, int skinIndex);
|
||||
|
||||
@JS('getAnimationNames')
|
||||
external JSPromise<JSArray<JSString>> getAnimationNames(
|
||||
FilamentEntity entity);
|
||||
ThermionEntity entity);
|
||||
|
||||
@JS('getAnimationDuration')
|
||||
external JSPromise<JSNumber> getAnimationDuration(
|
||||
FilamentEntity entity, int animationIndex);
|
||||
ThermionEntity entity, int animationIndex);
|
||||
|
||||
@JS('setMorphAnimationData')
|
||||
external JSPromise setMorphAnimationData(
|
||||
FilamentEntity entity,
|
||||
ThermionEntity entity,
|
||||
JSArray<JSArray<JSNumber>> animation,
|
||||
JSArray<JSString> morphTargets,
|
||||
JSArray<JSString>? targetMeshNames,
|
||||
double frameLengthInMs);
|
||||
|
||||
@JS('resetBones')
|
||||
external JSPromise resetBones(FilamentEntity entity);
|
||||
external JSPromise resetBones(ThermionEntity entity);
|
||||
|
||||
@JS('addBoneAnimation')
|
||||
external JSPromise addBoneAnimation(
|
||||
FilamentEntity entity,
|
||||
ThermionEntity entity,
|
||||
JSArray<JSString> bones,
|
||||
JSArray<JSArray<JSArray<JSNumber>>> frameData,
|
||||
JSNumber frameLengthInMs,
|
||||
@@ -154,7 +154,7 @@ extension type ThermionDartAPIJSShim(JSObject _) implements JSObject {
|
||||
JSNumber maxDelta);
|
||||
|
||||
@JS('removeEntity')
|
||||
external JSPromise removeEntity(FilamentEntity entity);
|
||||
external JSPromise removeEntity(ThermionEntity entity);
|
||||
|
||||
@JS('clearEntities')
|
||||
external JSPromise clearEntities();
|
||||
@@ -170,7 +170,7 @@ extension type ThermionDartAPIJSShim(JSObject _) implements JSObject {
|
||||
|
||||
@JS('playAnimation')
|
||||
external JSPromise playAnimation(
|
||||
FilamentEntity entity,
|
||||
ThermionEntity entity,
|
||||
int index,
|
||||
bool loop,
|
||||
bool reverse,
|
||||
@@ -180,7 +180,7 @@ extension type ThermionDartAPIJSShim(JSObject _) implements JSObject {
|
||||
|
||||
@JS('playAnimationByName')
|
||||
external JSPromise playAnimationByName(
|
||||
FilamentEntity entity,
|
||||
ThermionEntity entity,
|
||||
String name,
|
||||
bool loop,
|
||||
bool reverse,
|
||||
@@ -190,16 +190,16 @@ extension type ThermionDartAPIJSShim(JSObject _) implements JSObject {
|
||||
|
||||
@JS('setAnimationFrame')
|
||||
external JSPromise setAnimationFrame(
|
||||
FilamentEntity entity, int index, int animationFrame);
|
||||
ThermionEntity entity, int index, int animationFrame);
|
||||
|
||||
@JS('stopAnimation')
|
||||
external JSPromise stopAnimation(FilamentEntity entity, int animationIndex);
|
||||
external JSPromise stopAnimation(ThermionEntity entity, int animationIndex);
|
||||
|
||||
@JS('stopAnimationByName')
|
||||
external JSPromise stopAnimationByName(FilamentEntity entity, String name);
|
||||
external JSPromise stopAnimationByName(ThermionEntity entity, String name);
|
||||
|
||||
@JS('setCamera')
|
||||
external JSPromise setCamera(FilamentEntity entity, String? name);
|
||||
external JSPromise setCamera(ThermionEntity entity, String? name);
|
||||
|
||||
@JS('setMainCamera')
|
||||
external JSPromise setMainCamera();
|
||||
@@ -256,7 +256,7 @@ extension type ThermionDartAPIJSShim(JSObject _) implements JSObject {
|
||||
external JSPromise<JSArray<JSNumber>> getCameraRotation();
|
||||
|
||||
@JS('moveCameraToAsset')
|
||||
external JSPromise moveCameraToAsset(FilamentEntity entity);
|
||||
external JSPromise moveCameraToAsset(ThermionEntity entity);
|
||||
|
||||
@JS('setViewFrustumCulling')
|
||||
external JSPromise setViewFrustumCulling(JSBoolean enabled);
|
||||
@@ -272,34 +272,34 @@ extension type ThermionDartAPIJSShim(JSObject _) implements JSObject {
|
||||
external JSPromise setCameraModelMatrix(JSArray<JSNumber> matrix);
|
||||
|
||||
@JS('setMaterialColor')
|
||||
external JSPromise setMaterialColor(FilamentEntity entity, String meshName,
|
||||
external JSPromise setMaterialColor(ThermionEntity entity, String meshName,
|
||||
int materialIndex, double r, double g, double b, double a);
|
||||
|
||||
@JS('transformToUnitCube')
|
||||
external JSPromise transformToUnitCube(FilamentEntity entity);
|
||||
external JSPromise transformToUnitCube(ThermionEntity entity);
|
||||
|
||||
@JS('setPosition')
|
||||
external JSPromise setPosition(
|
||||
FilamentEntity entity, double x, double y, double z);
|
||||
ThermionEntity entity, double x, double y, double z);
|
||||
|
||||
@JS('setScale')
|
||||
external JSPromise setScale(FilamentEntity entity, double scale);
|
||||
external JSPromise setScale(ThermionEntity entity, double scale);
|
||||
|
||||
@JS('setRotation')
|
||||
external JSPromise setRotation(
|
||||
FilamentEntity entity, double rads, double x, double y, double z);
|
||||
ThermionEntity entity, double rads, double x, double y, double z);
|
||||
|
||||
@JS('queuePositionUpdate')
|
||||
external JSPromise queuePositionUpdate(
|
||||
FilamentEntity entity, double x, double y, double z, bool relative);
|
||||
ThermionEntity entity, double x, double y, double z, bool relative);
|
||||
|
||||
@JS('queueRotationUpdate')
|
||||
external JSPromise queueRotationUpdate(FilamentEntity entity, double rads,
|
||||
external JSPromise queueRotationUpdate(ThermionEntity entity, double rads,
|
||||
double x, double y, double z, bool relative);
|
||||
|
||||
@JS('queueRotationUpdateQuat')
|
||||
external JSPromise queueRotationUpdateQuat(
|
||||
FilamentEntity entity, JSArray<JSNumber> quat, bool relative);
|
||||
ThermionEntity entity, JSArray<JSNumber> quat, bool relative);
|
||||
|
||||
@JS('setPostProcessing')
|
||||
external JSPromise setPostProcessing(bool enabled);
|
||||
@@ -309,19 +309,19 @@ extension type ThermionDartAPIJSShim(JSObject _) implements JSObject {
|
||||
|
||||
@JS('setRotationQuat')
|
||||
external JSPromise setRotationQuat(
|
||||
FilamentEntity entity, JSArray<JSNumber> rotation);
|
||||
ThermionEntity entity, JSArray<JSNumber> rotation);
|
||||
|
||||
@JS('reveal')
|
||||
external JSPromise reveal(FilamentEntity entity, String? meshName);
|
||||
external JSPromise reveal(ThermionEntity entity, String? meshName);
|
||||
|
||||
@JS('hide')
|
||||
external JSPromise hide(FilamentEntity entity, String? meshName);
|
||||
external JSPromise hide(ThermionEntity entity, String? meshName);
|
||||
|
||||
@JS('pick')
|
||||
external void pick(int x, int y);
|
||||
|
||||
@JS('getNameForEntity')
|
||||
external String? getNameForEntity(FilamentEntity entity);
|
||||
external String? getNameForEntity(ThermionEntity entity);
|
||||
|
||||
@JS('setCameraManipulatorOptions')
|
||||
external JSPromise setCameraManipulatorOptions(
|
||||
@@ -333,15 +333,15 @@ extension type ThermionDartAPIJSShim(JSObject _) implements JSObject {
|
||||
|
||||
@JS('getChildEntities')
|
||||
external JSPromise<JSArray<JSNumber>> getChildEntities(
|
||||
FilamentEntity parent, bool renderableOnly);
|
||||
ThermionEntity parent, bool renderableOnly);
|
||||
|
||||
@JS('getChildEntity')
|
||||
external JSPromise<JSNumber> getChildEntity(
|
||||
FilamentEntity parent, String childName);
|
||||
ThermionEntity parent, String childName);
|
||||
|
||||
@JS('getChildEntityNames')
|
||||
external JSPromise<JSArray<JSString>> getChildEntityNames(
|
||||
FilamentEntity entity, bool renderableOnly);
|
||||
ThermionEntity entity, bool renderableOnly);
|
||||
|
||||
@JS('setRecording')
|
||||
external JSPromise setRecording(JSBoolean recording);
|
||||
@@ -350,54 +350,54 @@ extension type ThermionDartAPIJSShim(JSObject _) implements JSObject {
|
||||
external JSPromise setRecordingOutputDirectory(String outputDirectory);
|
||||
|
||||
@JS('addAnimationComponent')
|
||||
external JSPromise addAnimationComponent(FilamentEntity entity);
|
||||
external JSPromise addAnimationComponent(ThermionEntity entity);
|
||||
|
||||
@JS('removeAnimationComponent')
|
||||
external JSPromise removeAnimationComponent(FilamentEntity entity);
|
||||
external JSPromise removeAnimationComponent(ThermionEntity entity);
|
||||
|
||||
@JS('addCollisionComponent')
|
||||
external JSPromise addCollisionComponent(FilamentEntity entity);
|
||||
external JSPromise addCollisionComponent(ThermionEntity entity);
|
||||
|
||||
@JS('removeCollisionComponent')
|
||||
external JSPromise removeCollisionComponent(FilamentEntity entity);
|
||||
external JSPromise removeCollisionComponent(ThermionEntity entity);
|
||||
|
||||
@JS('createGeometry')
|
||||
external JSPromise<JSNumber> createGeometry(JSArray<JSNumber> vertices,
|
||||
JSArray<JSNumber> indices, String? materialPath, int primitiveType);
|
||||
|
||||
@JS('setParent')
|
||||
external JSPromise setParent(FilamentEntity child, FilamentEntity parent);
|
||||
external JSPromise setParent(ThermionEntity child, ThermionEntity parent);
|
||||
|
||||
@JS('getParent')
|
||||
external JSPromise<JSNumber> getParent(FilamentEntity child);
|
||||
external JSPromise<JSNumber> getParent(ThermionEntity child);
|
||||
|
||||
@JS('getParent')
|
||||
external JSPromise<JSNumber> getBone(
|
||||
FilamentEntity child, int boneIndex, int skinIndex);
|
||||
ThermionEntity child, int boneIndex, int skinIndex);
|
||||
|
||||
@JS('testCollisions')
|
||||
external JSPromise testCollisions(FilamentEntity entity);
|
||||
external JSPromise testCollisions(ThermionEntity entity);
|
||||
|
||||
@JS('setPriority')
|
||||
external JSPromise setPriority(FilamentEntity entityId, int priority);
|
||||
external JSPromise setPriority(ThermionEntity entityId, int priority);
|
||||
|
||||
@JS('getLocalTransform')
|
||||
external JSPromise<JSArray<JSNumber>> getLocalTransform(
|
||||
FilamentEntity entity);
|
||||
ThermionEntity entity);
|
||||
|
||||
@JS('getWorldTransform')
|
||||
external JSPromise<JSArray<JSNumber>> getWorldTransform(
|
||||
FilamentEntity entity);
|
||||
ThermionEntity entity);
|
||||
|
||||
@JS('updateBoneMatrices')
|
||||
external JSPromise updateBoneMatrices(FilamentEntity entity);
|
||||
external JSPromise updateBoneMatrices(ThermionEntity entity);
|
||||
|
||||
@JS('setTransform')
|
||||
external JSPromise setTransform(
|
||||
FilamentEntity entity, JSArray<JSNumber> transform);
|
||||
ThermionEntity entity, JSArray<JSNumber> transform);
|
||||
|
||||
@JS('setBoneTransform')
|
||||
external JSPromise setBoneTransform(
|
||||
FilamentEntity entity, int boneIndex, JSArray<JSNumber> transform, int skinIndex);
|
||||
ThermionEntity entity, int boneIndex, JSArray<JSNumber> transform, int skinIndex);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user