tidy up method call handler and add example project with camera panning

This commit is contained in:
Nick Fisher
2021-09-16 17:33:24 +08:00
parent a0f877be48
commit 8288758e78
16 changed files with 363 additions and 141 deletions

View File

@@ -310,6 +310,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
@@ -324,6 +325,7 @@
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
STRIP_INSTALLED_PRODUCT = NO;
SUPPORTED_PLATFORMS = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
@@ -337,6 +339,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEAD_CODE_STRIPPING = NO;
DEVELOPMENT_TEAM = 873X6R39HP;
ENABLE_BITCODE = NO;
GCC_INPUT_FILETYPE = sourcecode.cpp.objcpp;
@@ -345,8 +348,10 @@
"$(inherited)",
"@executable_path/Frameworks",
);
PRESERVE_DEAD_CODE_INITS_AND_TERMS = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.example.mimeticAvatarExample;
PRODUCT_NAME = "$(TARGET_NAME)";
STRIP_INSTALLED_PRODUCT = NO;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
@@ -383,6 +388,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
@@ -404,6 +410,7 @@
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
STRIP_INSTALLED_PRODUCT = NO;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
@@ -438,6 +445,7 @@
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
@@ -452,6 +460,7 @@
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
STRIP_INSTALLED_PRODUCT = NO;
SUPPORTED_PLATFORMS = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
@@ -467,6 +476,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEAD_CODE_STRIPPING = NO;
DEVELOPMENT_TEAM = 873X6R39HP;
ENABLE_BITCODE = NO;
GCC_INPUT_FILETYPE = sourcecode.cpp.objcpp;
@@ -475,8 +485,10 @@
"$(inherited)",
"@executable_path/Frameworks",
);
PRESERVE_DEAD_CODE_INITS_AND_TERMS = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.example.mimeticAvatarExample;
PRODUCT_NAME = "$(TARGET_NAME)";
STRIP_INSTALLED_PRODUCT = NO;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
@@ -491,6 +503,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
DEAD_CODE_STRIPPING = NO;
DEVELOPMENT_TEAM = 873X6R39HP;
ENABLE_BITCODE = NO;
GCC_INPUT_FILETYPE = sourcecode.cpp.objcpp;
@@ -499,8 +512,10 @@
"$(inherited)",
"@executable_path/Frameworks",
);
PRESERVE_DEAD_CODE_INITS_AND_TERMS = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.example.mimeticAvatarExample;
PRODUCT_NAME = "$(TARGET_NAME)";
STRIP_INSTALLED_PRODUCT = NO;
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";

View File

@@ -18,7 +18,6 @@ class MyApp extends StatefulWidget {
class _MyAppState extends State<MyApp> {
final FilamentController _filamentController = MimeticFilamentController();
String _platformVersion = 'Unknown';
@override
void initState() {
@@ -32,23 +31,44 @@ class _MyAppState extends State<MyApp> {
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Stack(children: [
FilamentWidget(controller: _filamentController),
Column(children: [
ElevatedButton(
child: Text("initialize"),
onPressed: () {
_filamentController.initialize();
}),
ElevatedButton(
child: Text("load asset"),
onPressed: () {
_filamentController.loadSkybox(
"assets/default_env/default_env_skybox.ktx",
"assets/default_env/default_env_ibl.ktx");
}),
]),
]),
body: GestureDetector(
behavior: HitTestBehavior.opaque,
onPanDown: (details) {
_filamentController.panStart(
details.localPosition.dx, details.localPosition.dy);
},
onPanUpdate: (details) {
print(details.localPosition.dx);
_filamentController.panUpdate(
details.localPosition.dx, details.localPosition.dy);
},
onPanEnd: (d) {
_filamentController.panEnd();
},
child: Stack(children: [
FilamentWidget(controller: _filamentController),
Column(children: [
ElevatedButton(
child: Text("initialize"),
onPressed: () {
_filamentController.initialize();
}),
ElevatedButton(
child: Text("load skybox"),
onPressed: () {
_filamentController.loadSkybox(
"assets/default_env/default_env_skybox.ktx",
"assets/default_env/default_env_ibl.ktx");
}),
ElevatedButton(
child: Text("load gltf"),
onPressed: () {
_filamentController.loadGltf(
"assets/BusterDrone/scene.gltf",
"assets/BusterDrone");
}),
]),
])),
),
);
}

View File

@@ -39,16 +39,14 @@ dev_dependencies:
# The following section is specific to Flutter.
flutter:
# The following line ensures that the Material Icons font is
# included with your application, so that you can use the icons in
# the material Icons class.
uses-material-design: true
# To add assets to your application, add an assets section, like this:
# assets:
# - images/a_dot_burr.jpeg
# - images/a_dot_ham.jpeg
assets:
- assets/
- assets/default_env/
- assets/BusterDrone/
- assets/BusterDrone/textures/
- assets/FlightHelmet/
- assets/FlightHelmet/textures/
# An image asset can refer to one or more resolution-specific "variants", see
# https://flutter.dev/assets-and-images/#resolution-aware.