move Axis class to own file

This commit is contained in:
Nick Fisher
2025-06-20 18:35:21 +08:00
parent c208972ed7
commit 355999562f
4 changed files with 22 additions and 23 deletions

View File

@@ -2,3 +2,4 @@ export 'src/interface/filament_app.dart';
export 'src/interface/engine.dart'; export 'src/interface/engine.dart';
export 'src/interface/layers.dart'; export 'src/interface/layers.dart';
export 'src/interface/light_options.dart'; export 'src/interface/light_options.dart';
export 'src/interface/axis.dart';

View File

@@ -2,7 +2,7 @@ import 'dart:async';
import 'package:thermion_dart/src/bindings/bindings.dart'; import 'package:thermion_dart/src/bindings/bindings.dart';
import 'package:thermion_dart/src/filament/src/implementation/ffi_asset.dart'; import 'package:thermion_dart/src/filament/src/implementation/ffi_asset.dart';
import 'package:thermion_dart/thermion_dart.dart'; import 'package:thermion_dart/thermion_dart.dart';
import '../interface/axis.dart';
import 'ffi_view.dart'; import 'ffi_view.dart';
class FFIGizmo extends FFIAsset implements GizmoAsset { class FFIGizmo extends FFIAsset implements GizmoAsset {
@@ -14,15 +14,13 @@ class FFIGizmo extends FFIAsset implements GizmoAsset {
late FFIView view; late FFIView view;
FFIGizmo( FFIGizmo(
super.asset, super.asset,
super.app, super.app,
super.animationManager, super.animationManager, {
{
required this.view, required this.view,
required this.entities, required this.entities,
}) { }) {
_callbackHolder = _onPickResult.asCallback(); _callbackHolder = _onPickResult.asCallback();
} }
@@ -33,10 +31,8 @@ class FFIGizmo extends FFIAsset implements GizmoAsset {
_callbackHolder.dispose(); _callbackHolder.dispose();
} }
void _onPickResult(int resultType, double x, double y, double z) { void _onPickResult(int resultType, double x, double y, double z) {
final type = switch (resultType) {
final type = switch(resultType) {
TGizmoPickResultType.AxisX => GizmoPickResultType.AxisX, TGizmoPickResultType.AxisX => GizmoPickResultType.AxisX,
TGizmoPickResultType.AxisY => GizmoPickResultType.AxisY, TGizmoPickResultType.AxisY => GizmoPickResultType.AxisY,
TGizmoPickResultType.AxisZ => GizmoPickResultType.AxisZ, TGizmoPickResultType.AxisZ => GizmoPickResultType.AxisZ,
@@ -82,7 +78,7 @@ class FFIGizmo extends FFIAsset implements GizmoAsset {
@override @override
Future highlight(Axis axis) async { Future highlight(Axis axis) async {
Gizmo_unhighlight(asset.cast<TGizmo>()); Gizmo_unhighlight(asset.cast<TGizmo>());
final tAxis = switch(axis) { final tAxis = switch (axis) {
Axis.X => TGizmoAxis.X, Axis.X => TGizmoAxis.X,
Axis.Y => TGizmoAxis.Y, Axis.Y => TGizmoAxis.Y,
Axis.Z => TGizmoAxis.Z Axis.Z => TGizmoAxis.Z

View File

@@ -0,0 +1,13 @@
import 'package:vector_math/vector_math_64.dart';
enum Axis {
X(const [1.0, 0.0, 0.0]),
Y(const [0.0, 1.0, 0.0]),
Z(const [0.0, 0.0, 1.0]);
const Axis(this.vector);
final List<double> vector;
Vector3 asVector() => Vector3(vector[0], vector[1], vector[2]);
}

View File

@@ -1,19 +1,8 @@
import 'axis.dart';
import 'entity.dart'; import 'entity.dart';
import 'package:thermion_dart/thermion_dart.dart'; import 'package:thermion_dart/thermion_dart.dart';
import 'package:vector_math/vector_math_64.dart'; import 'package:vector_math/vector_math_64.dart';
enum Axis {
X(const [1.0, 0.0, 0.0]),
Y(const [0.0, 1.0, 0.0]),
Z(const [0.0, 0.0, 1.0]);
const Axis(this.vector);
final List<double> vector;
Vector3 asVector() => Vector3(vector[0], vector[1], vector[2]);
}
enum GizmoPickResultType { AxisX, AxisY, AxisZ, Parent, None } enum GizmoPickResultType { AxisX, AxisY, AxisZ, Parent, None }
enum GizmoType { translation, rotation } enum GizmoType { translation, rotation }