clipper2 0.0.1
clipper2: ^0.0.1 copied to clipboard
A Polygon Clipping and Offsetting library
example/lib/main.dart
import 'package:flutter/material.dart';
import 'clipper_page.dart';
import 'minkowski_page.dart';
import 'offset_page.dart';
void main() {
runApp(const ClipperApp());
}
class ClipperApp extends StatelessWidget {
const ClipperApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Clipper2 Demo',
theme: ThemeData(colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple)),
home: const HomePage(),
);
}
}
class HomePage extends StatefulWidget {
const HomePage({super.key});
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
var _tab = _Tab.clipper;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(backgroundColor: Theme.of(context).colorScheme.inversePrimary, title: Text('Clipper2 Demo')),
body: Column(
children: [
Expanded(
child: switch (_tab) {
_Tab.clipper => const ClipperPage(),
_Tab.offset => const OffsetPage(),
_Tab.minkowski => const MinkowskiPage(),
},
),
NavigationBar(
selectedIndex: _tab.index,
onDestinationSelected: (index) => setState(() => _tab = _Tab.values[index]),
destinations: [
NavigationDestination(icon: const Icon(Icons.cut), label: 'Clipper'),
NavigationDestination(icon: const Icon(Icons.expand), label: 'Offset'),
NavigationDestination(icon: const Icon(Icons.star_border), label: 'Minkowski'),
],
),
],
),
);
}
}
enum _Tab { clipper, offset, minkowski }