diff --git a/.dart_tool/package_config.json b/.dart_tool/package_config.json new file mode 100644 index 0000000..dfc7363 --- /dev/null +++ b/.dart_tool/package_config.json @@ -0,0 +1,152 @@ +{ + "configVersion": 2, + "packages": [ + { + "name": "async", + "rootUri": "file:///Users/mac/.pub-cache/hosted/pub.dev/async-2.11.0", + "packageUri": "lib/", + "languageVersion": "2.18" + }, + { + "name": "boolean_selector", + "rootUri": "file:///Users/mac/.pub-cache/hosted/pub.dev/boolean_selector-2.1.1", + "packageUri": "lib/", + "languageVersion": "2.17" + }, + { + "name": "characters", + "rootUri": "file:///Users/mac/.pub-cache/hosted/pub.dev/characters-1.3.0", + "packageUri": "lib/", + "languageVersion": "2.12" + }, + { + "name": "clock", + "rootUri": "file:///Users/mac/.pub-cache/hosted/pub.dev/clock-1.1.1", + "packageUri": "lib/", + "languageVersion": "2.12" + }, + { + "name": "collection", + "rootUri": "file:///Users/mac/.pub-cache/hosted/pub.dev/collection-1.17.1", + "packageUri": "lib/", + "languageVersion": "2.18" + }, + { + "name": "fake_async", + "rootUri": "file:///Users/mac/.pub-cache/hosted/pub.dev/fake_async-1.3.1", + "packageUri": "lib/", + "languageVersion": "2.12" + }, + { + "name": "flutter", + "rootUri": "file:///Users/mac/flutterdev/flutter/packages/flutter", + "packageUri": "lib/", + "languageVersion": "3.0" + }, + { + "name": "flutter_lints", + "rootUri": "file:///Users/mac/.pub-cache/hosted/pub.dev/flutter_lints-1.0.4", + "packageUri": "lib/", + "languageVersion": "2.12" + }, + { + "name": "flutter_test", + "rootUri": "file:///Users/mac/flutterdev/flutter/packages/flutter_test", + "packageUri": "lib/", + "languageVersion": "3.0" + }, + { + "name": "js", + "rootUri": "file:///Users/mac/.pub-cache/hosted/pub.dev/js-0.6.7", + "packageUri": "lib/", + "languageVersion": "2.19" + }, + { + "name": "lints", + "rootUri": "file:///Users/mac/.pub-cache/hosted/pub.dev/lints-1.0.1", + "packageUri": "lib/", + "languageVersion": "2.12" + }, + { + "name": "matcher", + "rootUri": "file:///Users/mac/.pub-cache/hosted/pub.dev/matcher-0.12.15", + "packageUri": "lib/", + "languageVersion": "2.18" + }, + { + "name": "material_color_utilities", + "rootUri": "file:///Users/mac/.pub-cache/hosted/pub.dev/material_color_utilities-0.2.0", + "packageUri": "lib/", + "languageVersion": "2.13" + }, + { + "name": "meta", + "rootUri": "file:///Users/mac/.pub-cache/hosted/pub.dev/meta-1.9.1", + "packageUri": "lib/", + "languageVersion": "2.12" + }, + { + "name": "path", + "rootUri": "file:///Users/mac/.pub-cache/hosted/pub.dev/path-1.8.3", + "packageUri": "lib/", + "languageVersion": "2.12" + }, + { + "name": "sky_engine", + "rootUri": "file:///Users/mac/flutterdev/flutter/bin/cache/pkg/sky_engine", + "packageUri": "lib/", + "languageVersion": "3.0" + }, + { + "name": "source_span", + "rootUri": "file:///Users/mac/.pub-cache/hosted/pub.dev/source_span-1.9.1", + "packageUri": "lib/", + "languageVersion": "2.14" + }, + { + "name": "stack_trace", + "rootUri": "file:///Users/mac/.pub-cache/hosted/pub.dev/stack_trace-1.11.0", + "packageUri": "lib/", + "languageVersion": "2.18" + }, + { + "name": "stream_channel", + "rootUri": "file:///Users/mac/.pub-cache/hosted/pub.dev/stream_channel-2.1.1", + "packageUri": "lib/", + "languageVersion": "2.14" + }, + { + "name": "string_scanner", + "rootUri": "file:///Users/mac/.pub-cache/hosted/pub.dev/string_scanner-1.2.0", + "packageUri": "lib/", + "languageVersion": "2.18" + }, + { + "name": "term_glyph", + "rootUri": "file:///Users/mac/.pub-cache/hosted/pub.dev/term_glyph-1.2.1", + "packageUri": "lib/", + "languageVersion": "2.12" + }, + { + "name": "test_api", + "rootUri": "file:///Users/mac/.pub-cache/hosted/pub.dev/test_api-0.5.1", + "packageUri": "lib/", + "languageVersion": "2.18" + }, + { + "name": "vector_math", + "rootUri": "file:///Users/mac/.pub-cache/hosted/pub.dev/vector_math-2.1.4", + "packageUri": "lib/", + "languageVersion": "2.14" + }, + { + "name": "flutter_3d_obj", + "rootUri": "../", + "packageUri": "lib/", + "languageVersion": "2.14" + } + ], + "generated": "2023-09-04T16:17:30.290038Z", + "generator": "pub", + "generatorVersion": "3.0.6" +} diff --git a/lib/flutter_3d_obj.dart b/lib/flutter_3d_obj.dart index 5178195..d703f76 100644 --- a/lib/flutter_3d_obj.dart +++ b/lib/flutter_3d_obj.dart @@ -2,40 +2,38 @@ library flutter_3d_obj; import 'dart:io'; import 'dart:math' as Math; -import 'dart:ui'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart' show rootBundle; import 'package:flutter/widgets.dart'; -import 'package:meta/meta.dart'; import 'package:vector_math/vector_math.dart' show Vector3; import 'package:vector_math/vector_math.dart' as V; class Object3D extends StatefulWidget { Object3D({ - @required this.size, - @required this.path, - @required this.asset, + required this.size, + required this.path, + required this.asset, this.angleX, this.angleY, this.angleZ, this.zoom = 100.0, - }); + Key? key, + }): super(key: key); final Size size; final bool asset; final String path; final double zoom; - final double angleX; - final double angleY; - final double angleZ; + final double? angleX; + final double? angleY; + final double? angleZ; @override - _Object3DState createState() => new _Object3DState(); + State createState() => _Object3DState(); } class _Object3DState extends State { - _Object3DState(); void initState() { if (widget.asset == true) { @@ -58,7 +56,7 @@ class _Object3DState extends State { } - bool useInternal; + late bool useInternal; double angleX = 15.0; double angleY = 45.0; @@ -67,10 +65,10 @@ class _Object3DState extends State { double _previousX = 0.0; double _previousY = 0.0; - double zoom; + late double zoom; String object = "V 1 1 1 1"; - File file; + late File file; void _updateCube(DragUpdateDetails data) { if (angleY > 360.0) { @@ -116,8 +114,8 @@ class _Object3DState extends State { Widget build(BuildContext context) { return new GestureDetector( child: new CustomPaint( - painter: new _ObjectPainter(widget.size, object, useInternal ? angleX : widget.angleX, - useInternal ? angleY : widget.angleY, useInternal ? angleZ : widget.angleZ, widget.zoom), + painter: new _ObjectPainter(widget.size, object, useInternal ? angleX : widget.angleX!, + useInternal ? angleY : widget.angleY!, useInternal ? angleZ : widget.angleZ!, widget.zoom), size: widget.size, ), onHorizontalDragUpdate: _updateY, @@ -135,29 +133,31 @@ class _ObjectPainter extends CustomPainter { final double zero = 0.0; - final String object; + late final String object; double _viewPortX = 0.0, _viewPortY = 0.0; - List vertices; - List faces; - V.Matrix4 T; - Vector3 camera; - Vector3 light; + late List vertices; + late List faces; + late V.Matrix4 T; + late Vector3 camera; + late Vector3 light; - double angleX; - double angleY; - double angleZ; + late double angleX; + late double angleY; + late double angleZ; - Color color; + late Color color; - Size size; + late Size size; + + // _ObjectPainter(Size size, String object, double d, double e, double f, double zoom); - _ObjectPainter(this.size, this.object, this.angleX, this.angleY, this.angleZ, this._zoomFactor) { + _ObjectPainter(Size size,String object, double angleX,double angleY,double angleZ, _zoomFactor) { _translation *= _zoomFactor; - camera = new Vector3(0.0, 0.0, 0.0); - light = new Vector3(0.0, 0.0, 100.0); - color = new Color.fromARGB(255, 255, 255, 255); + camera = Vector3(0.0, 0.0, 0.0); + light = Vector3(0.0, 0.0, 100.0); + color = Color.fromARGB(255, 255, 255, 255); _viewPortX = (size.width / 2).toDouble(); _viewPortY = (size.height / 2).toDouble(); } @@ -317,7 +317,7 @@ class _ObjectPainter extends CustomPainter { verticesToDraw[i] = _calcDefaultVertex(verticesToDraw[i]); } - final List avgOfZ = List(); + final List avgOfZ = []; for (int i = 0; i < faces.length; i++) { List face = faces[i]; double z = 0.0; diff --git a/pubspec.yaml b/pubspec.yaml index cae7508..edfd504 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,19 +1,20 @@ name: flutter_3d_obj description: A new flutter package to render wavefront obj files into a canvas. -version: 0.0.6 -author: Hemanth Raj +version: 0.0.7 homepage: https://github.com/hemanthrajv/flutter_3d_obj flutter: environment: - sdk: ">=2.0.0-dev.28.0 <3.0.0" - flutter: ">=0.2.4 <2.0.0" + sdk: '>=2.14.0 <4.0.0' dependencies: - meta: "^1.1.1" - vector_math: "^2.0.5" + vector_math: "^2.1.4" flutter: sdk: flutter +dev_dependencies: + flutter_test: + sdk: flutter + flutter_lints: ^1.0.0 \ No newline at end of file