Add fillet tool flow
This commit is contained in:
		| @ -4,7 +4,7 @@ import { Selections } from 'useStore' | ||||
| import { createMachine } from 'xstate' | ||||
|  | ||||
| export const modelingMachine = createMachine({ | ||||
|   /** @xstate-layout N4IgpgJg5mDOIC5QFkD2EwBsCWA7KAdNhJmAMQCiuALmAE4AEsA1mNQMYAWA2gAwC6iUAAdUsbNWypcQkAA9EAdgAsBAJzKArIoAcytQGYAbDp0HlAGhABPRAFoAjAZ0FlOo7x0AmXg+VflB0UDAF8QqzQMHHwiEnIAZSwwdmoGUTxqPkEkEFFxSWlZBQQ7L2MCUzUHP1NfRTUdK1sEA0VeV15eRR9lXi9NVocjMIj0LDxCYlIyRNIUhkgYLNk8iSkZHOLS8srqtx06hqbEZSNVNV5NIwvTeqG1EZBI8ZiphKT5gDMAQ3YwZZyqwKG1AWzKRgqOiqNQOQQaXmOCCuqi8KmcsIMhkUmkez2ikzilAAjgBXbDCBZyah0EkYAEiMRrQqbRBefoVa6GfzebHaRFaAwEbT+NSaUXKfS6RS4sb42LTCik8mU6m0-4ObIM-LrIqshztTS8YzmRQeI1tRSIw1eAh9br+PyGozXGVRCYEeKsDicAgASUJirJFIAMngwAwACqoVCYem5RnA3UIJwGTSuMzdHoXIYGRF2U0EMqKeoWnoGULhJ6y92ethcP2E2bJVIABVQGTjQJ1LIQxdUDjUHmzylN2MaNnsXgcBFTagCBl4DT0emcrpehFr3ob0yb81DuH+AhWCe7oKUxYIJgcy8HnjU9URbNt1TF3Q81UGa7lm-r-umyG+VgGGicNOFQOhsAAL2kahvljI9ARPZkz2TTwbRMTEHCuLCriMTREXvIUBiNNQ5wuCUjC8L8ay9et93DKMYzICBpDAIhcAAN1QVgCAAYToMBvloYCw07JCQXkRAU2nYtOlNIxryMVojDzJx2jMe9i2RMoR2UaiYh-H16MjaNMAIAA5VAGDbDJYDIABBCAIGs9saDE7VkMk5NnUUW0rjaA5UyMXQEQnEpNDTBT3F0a93B0Ac9MrPEaLrIywxMmMCBsmgGEcjAIAcpyXI7BCtSZCTimvXQhV4Z19B8XhdLzCLL0U3RLh0Q0ByufSN1otKDwyszjLyyBCuc7LMlK+MPIq1lPF8y50UdA5tEtMK7BaqLgtWzrfEMXqPX6ghjMY4b0tGgreNQABbYRSGE+j3PKpMpzFdQzD6KEfHioZEQhAYTR8TQ3CcKEHiS6sYgoKkaQwYkgxVOHD01GaXp7JchWC0UVDFYxgitfwZ0NRQgn6LotCoyG3Wh2G1QR5UwDpukNWPWak2CtNThUAdgm6eL1uaEGbVTCnWiqLoBkOmHVQwbd3jmVIfj+Z7Ex7TrfPqWERUCTQsP+zQXCNJbUWLSi9Gl5m2N3YEGAAJUEiBrBmNgGAgbBYFg3AVemrtPMqsp1M5LpF32qoDaNhcBlN00vAt6n13lcgABE4A+VJ0jc33xKTOx0VcOrSNqw3uiNREgl8vXsQWt7GvLQ63jIVPYHThZoBRtn0ZQvOdF8qETDcNkDA-dxERUAggiNfU8JL7wHAbwlm9b5WO8Q9mex7wVzElQdTko4fcw2qcOmvLwdq1+cF53Vu4Pg1G-bmkpwUhCXJd7mL-uCoUAsogJSaGK+Kc06KwYLfVWp4vJ526EKfUVxPBdFNOWVST4vAaAaOWeKAQ9YQ1GDTAkCoaD0CYP1bgrM15dy8tA42FNBwaCGGYPMUJCy9C0vFLQOFpQJ2-P1BguArIrxdiAle4D-YnA8M+XovdqhBH1COPMBgbSk0CKaKophnR4WGFwiYZBeLfG9lgERj87CBCFPFPQgQPADArnmM+fdrjLjcMRdBh1DI6L0X8O+nc1YoX1IuAgxYzAKTPqHEGNjry2laMXCKAQiwuP6sxVi7EuI8X4oJYSLBUqGKTM4XyC59DXiwnHYKKhy5+ELAETotVwbXg0HE1KJ10pnTIPQOg4ECD3SEp8cCN0+ICSEuGECWSexOCfMYZ05ZcZa3whtIYqgTBVCUnHBwbJtB1O9M0ugrS6DtMwJ07pvS0nhgyd6IZKEcnqBUOKOcSk9ChWaEpCoB8hhBGHgESxazfyL2Ac2NIrkpr3xzj2YpkIDhlGcI1K445miOGcIWXQzoai1WCl0D5Po-xAJbiAwZ2d14oRMC4PwpwSbPP0IfaF15BTaHLJKXQqZWgVkrHwjA8AcjJXwF4iBWxlDlD3voC4eFe4+DJfYCU7ROim1FIU-omjcGJzeBy0RT81AT0MJ0Q0mg46tClI+DQhZgoJTcJcNkiVZXcNSgqx+lFlWmFBRgiFJh5EapgUMbo0JKKnFRfLC1SZ9RPhdYuPCA5aq+DzAWecU4tDuEXL3E1VY8FHXqadUy3rhnEXUFYkGVRtB7FUhcW0hhh6XH3m0ABWiDLHSTZlSyxUaAsrKt4ryWFqqimHpmptOawoAzjn0BckSxQDhwXGxOhkGmDTOgQZOrEU0oSLO0VoZ9UH1WxEgsKaZu0+FROWZZLD55lr6omxppksp-Nyk5SA07G3BGnP0PWvQIpQjcP9IU664HXjcAozhpqUpbkredQal0L2VVURPAIbhTjcqNFoJ9GqDjcomY41Ze6CAy2RoBxAlFfLc0CPeedAt+QgwqGKMUEozELMtrLNi6K0O9jaIWZZg5ea9E8MKhAGj-F6HoyYauppyPIw9OndY9tHbNHrZyqSlw0wtr6JLCmZQDYQl0IEVBXGSYyqHXKFDaoCAO2+E7ajfhwmph8M8tkBNO1XHY0pwcvdVOot4fw34YBqPSvUAfAIZgBirXkYo7qUIkWB1TDiMIIQgA */ | ||||
|   /** @xstate-layout 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-aFIc5o5z4g-B+X092uE-4yj1ERVF251lUUtLBJCaM6YMhZl5hogWcXzFcOwZAJL0LMx1hE+idEzR7KZO5sVMEyxCr2ZYy9Mr2i4GBMvaEqrEAavvwKCnUMa8tTYnujGy6IW2uZhkCsU4-I3lvjG3XTKZhZlHDXqrXUUMTyMzW5YQCg4HPFO2f5MuW2tASFM-W68zq1jIskdTRojN1BFW7htnZBN+V-MqJ5qF79x2p2MKibEyx5LvapisLQnHfsAn+-5AV-yttghcl-VVAClDc3h59pHP3VSo5izjHFeKZRgC26rMRH9wQXnSCoOMdKXIyAKNRaCF4lo9d6Bm90W2EKkVLZI8t9gpJWVOtTSwYYfOclKg5wXBq7udrB4GEaZgjS7obA4rLSlAQpOOMpsESFdXtt5SEIHgqQcSy8+D9DzSJ3olPIhB1aqzxIkkReYEZ4Lf6vEBju3hD9ppn2BqXcChIQXCRblR1dlvdqE5-74DQA */ | ||||
|   id: 'Modeling', | ||||
|  | ||||
|   tsTypes: {} as import('./modelingMachine.typegen').Typegen0, | ||||
| @ -93,6 +93,17 @@ export const modelingMachine = createMachine({ | ||||
|           actions: 'Remove from selection', | ||||
|           cond: 'Selection is not empty', | ||||
|         }, | ||||
|  | ||||
|         'Equip fillet': [ | ||||
|           { | ||||
|             target: 'Fillet', | ||||
|             cond: 'Selection is empty', | ||||
|           }, | ||||
|           { | ||||
|             target: 'Fillet', | ||||
|             cond: 'Selection is one or more edges', | ||||
|           }, | ||||
|         ], | ||||
|       }, | ||||
|     }, | ||||
|  | ||||
| @ -133,6 +144,12 @@ export const modelingMachine = createMachine({ | ||||
|               internal: true, | ||||
|               cond: 'Selection contains line', | ||||
|             }, | ||||
|  | ||||
|             'Make segment vertical': { | ||||
|               cond: 'Can make selection vertical', | ||||
|               target: 'Idle', | ||||
|               internal: true, | ||||
|             }, | ||||
|           }, | ||||
|         }, | ||||
|  | ||||
| @ -150,14 +167,14 @@ export const modelingMachine = createMachine({ | ||||
|  | ||||
|             'Point Added': { | ||||
|               on: { | ||||
|                 'Add Point': 'Line Added', | ||||
|                 'Add Point': 'Segment Added', | ||||
|               }, | ||||
|             }, | ||||
|  | ||||
|             'Line Added': { | ||||
|             'Segment Added': { | ||||
|               on: { | ||||
|                 'Add Point': { | ||||
|                   target: 'Line Added', | ||||
|                   target: 'Segment Added', | ||||
|                   internal: true, | ||||
|                 }, | ||||
|  | ||||
| @ -247,6 +264,11 @@ export const modelingMachine = createMachine({ | ||||
|           '.Idle', | ||||
|         ], | ||||
|       }, | ||||
|  | ||||
|       invoke: { | ||||
|         src: 'createExtrude', | ||||
|         id: 'Create extrude', | ||||
|       }, | ||||
|     }, | ||||
|  | ||||
|     'Sketch no face': { | ||||
| @ -254,6 +276,39 @@ export const modelingMachine = createMachine({ | ||||
|         'Select face': 'Sketch', | ||||
|       }, | ||||
|     }, | ||||
|  | ||||
|     Fillet: { | ||||
|       states: { | ||||
|         Idle: { | ||||
|           on: { | ||||
|             'Select edge': 'Selection Ready', | ||||
|           }, | ||||
|         }, | ||||
|         'Selection Ready': { | ||||
|           on: { | ||||
|             'Set radius': 'Ready', | ||||
|           }, | ||||
|         }, | ||||
|         Ready: {}, | ||||
|       }, | ||||
|  | ||||
|       initial: 'Ready', | ||||
|  | ||||
|       on: { | ||||
|         'Equip fillet': [ | ||||
|           { | ||||
|             target: '.Selection Ready', | ||||
|             cond: 'Selection is one or more edges', | ||||
|           }, | ||||
|           '.Idle', | ||||
|         ], | ||||
|       }, | ||||
|  | ||||
|       invoke: { | ||||
|         src: 'createFillet', | ||||
|         id: 'Create fillet', | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
|  | ||||
|   initial: 'idle', | ||||
|  | ||||
| @ -1,51 +1,145 @@ | ||||
| // This file was automatically generated. Edits will be overwritten | ||||
|  | ||||
|   // This file was automatically generated. Edits will be overwritten | ||||
|  | ||||
|   export interface Typegen0 { | ||||
|         '@@xstate/typegen': true; | ||||
|         internalEvents: { | ||||
|           "done.invoke.Create line": { type: "done.invoke.Create line"; data: unknown; __tip: "See the XState TS docs to learn how to strongly type this." }; | ||||
| "done.invoke.Create sketch": { type: "done.invoke.Create sketch"; data: unknown; __tip: "See the XState TS docs to learn how to strongly type this." }; | ||||
| "error.platform.Create line": { type: "error.platform.Create line"; data: unknown }; | ||||
| "error.platform.Create sketch": { type: "error.platform.Create sketch"; data: unknown }; | ||||
| "xstate.init": { type: "xstate.init" }; | ||||
|         }; | ||||
|         invokeSrcNameMap: { | ||||
|           "createLine": "done.invoke.Create line"; | ||||
| "createSketch": "done.invoke.Create sketch"; | ||||
|         }; | ||||
|         missingImplementations: { | ||||
|           actions: "Add to selection" | "Make selected line horizontal" | "Remove from selection" | "Update code selection cursors"; | ||||
|           delays: never; | ||||
|           guards: "Can make selection horizontal" | "Selection contains edge" | "Selection contains face" | "Selection contains line" | "Selection contains point" | "Selection is empty" | "Selection is not empty" | "Selection is one face"; | ||||
|           services: "createLine" | "createSketch"; | ||||
|         }; | ||||
|         eventsCausingActions: { | ||||
|           "Add to selection": "Select all" | "Select edge" | "Select face" | "Select point"; | ||||
| "Make selected line horizontal": "Make line horizontal"; | ||||
| "Remove from selection": "Deselect all" | "Deselect edge" | "Deselect face" | "Deselect point"; | ||||
| "Update code selection cursors": "Make line horizontal"; | ||||
|         }; | ||||
|         eventsCausingDelays: { | ||||
|            | ||||
|         }; | ||||
|         eventsCausingGuards: { | ||||
|           "Can make selection horizontal": "Make line horizontal"; | ||||
| "Selection contains edge": "Deselect edge"; | ||||
| "Selection contains face": "Deselect face"; | ||||
| "Selection contains line": "Deselect line"; | ||||
| "Selection contains point": "Deselect point"; | ||||
| "Selection is empty": "Equip extrude"; | ||||
| "Selection is not empty": "Deselect all"; | ||||
| "Selection is one face": "Enter sketch" | "Equip Extrude Tool" | "Equip extrude"; | ||||
|         }; | ||||
|         eventsCausingServices: { | ||||
|           "createLine": "Equip Line Tool"; | ||||
| "createSketch": "Enter sketch" | "Select face"; | ||||
|         }; | ||||
|         matchesStates: "Extrude" | "Extrude.Idle" | "Extrude.Ready" | "Extrude.Selection Ready" | "Sketch" | "Sketch no face" | "Sketch.Extrude" | "Sketch.Extrude.Idle" | "Sketch.Extrude.Ready" | "Sketch.Extrude.Selection Ready" | "Sketch.Idle" | "Sketch.Line Tool" | "Sketch.Line Tool.Done" | "Sketch.Line Tool.Line Added" | "Sketch.Line Tool.No Points" | "Sketch.Line Tool.Point Added" | "idle" | { "Extrude"?: "Idle" | "Ready" | "Selection Ready"; | ||||
| "Sketch"?: "Extrude" | "Idle" | "Line Tool" | { "Extrude"?: "Idle" | "Ready" | "Selection Ready"; | ||||
| "Line Tool"?: "Done" | "Line Added" | "No Points" | "Point Added"; }; }; | ||||
|         tags: never; | ||||
| export interface Typegen0 { | ||||
|   '@@xstate/typegen': true | ||||
|   internalEvents: { | ||||
|     'done.invoke.Create extrude': { | ||||
|       type: 'done.invoke.Create extrude' | ||||
|       data: unknown | ||||
|       __tip: 'See the XState TS docs to learn how to strongly type this.' | ||||
|     } | ||||
|     'done.invoke.Create fillet': { | ||||
|       type: 'done.invoke.Create fillet' | ||||
|       data: unknown | ||||
|       __tip: 'See the XState TS docs to learn how to strongly type this.' | ||||
|     } | ||||
|     'done.invoke.Create line': { | ||||
|       type: 'done.invoke.Create line' | ||||
|       data: unknown | ||||
|       __tip: 'See the XState TS docs to learn how to strongly type this.' | ||||
|     } | ||||
|     'done.invoke.Create sketch': { | ||||
|       type: 'done.invoke.Create sketch' | ||||
|       data: unknown | ||||
|       __tip: 'See the XState TS docs to learn how to strongly type this.' | ||||
|     } | ||||
|     'error.platform.Create extrude': { | ||||
|       type: 'error.platform.Create extrude' | ||||
|       data: unknown | ||||
|     } | ||||
|     'error.platform.Create fillet': { | ||||
|       type: 'error.platform.Create fillet' | ||||
|       data: unknown | ||||
|     } | ||||
|     'error.platform.Create line': { | ||||
|       type: 'error.platform.Create line' | ||||
|       data: unknown | ||||
|     } | ||||
|     'error.platform.Create sketch': { | ||||
|       type: 'error.platform.Create sketch' | ||||
|       data: unknown | ||||
|     } | ||||
|     'xstate.init': { type: 'xstate.init' } | ||||
|   } | ||||
|   invokeSrcNameMap: { | ||||
|     createExtrude: 'done.invoke.Create extrude' | ||||
|     createFillet: 'done.invoke.Create fillet' | ||||
|     createLine: 'done.invoke.Create line' | ||||
|     createSketch: 'done.invoke.Create sketch' | ||||
|   } | ||||
|   missingImplementations: { | ||||
|     actions: | ||||
|       | 'Add to selection' | ||||
|       | 'Make selected line horizontal' | ||||
|       | 'Remove from selection' | ||||
|       | 'Update code selection cursors' | ||||
|     delays: never | ||||
|     guards: | ||||
|       | 'Can make selection horizontal' | ||||
|       | 'Can make selection vertical' | ||||
|       | 'Selection contains edge' | ||||
|       | 'Selection contains face' | ||||
|       | 'Selection contains line' | ||||
|       | 'Selection contains point' | ||||
|       | 'Selection is empty' | ||||
|       | 'Selection is not empty' | ||||
|       | 'Selection is one face' | ||||
|       | 'Selection is one or more edges' | ||||
|     services: 'createExtrude' | 'createFillet' | 'createLine' | 'createSketch' | ||||
|   } | ||||
|   eventsCausingActions: { | ||||
|     'Add to selection': | ||||
|       | 'Select all' | ||||
|       | 'Select edge' | ||||
|       | 'Select face' | ||||
|       | 'Select point' | ||||
|     'Make selected line horizontal': 'Make line horizontal' | ||||
|     'Remove from selection': | ||||
|       | 'Deselect all' | ||||
|       | 'Deselect edge' | ||||
|       | 'Deselect face' | ||||
|       | 'Deselect point' | ||||
|     'Update code selection cursors': 'Make line horizontal' | ||||
|   } | ||||
|   eventsCausingDelays: {} | ||||
|   eventsCausingGuards: { | ||||
|     'Can make selection horizontal': 'Make line horizontal' | ||||
|     'Can make selection vertical': 'Make segment vertical' | ||||
|     'Selection contains edge': 'Deselect edge' | ||||
|     'Selection contains face': 'Deselect face' | ||||
|     'Selection contains line': 'Deselect line' | ||||
|     'Selection contains point': 'Deselect point' | ||||
|     'Selection is empty': 'Equip extrude' | 'Equip fillet' | ||||
|     'Selection is not empty': 'Deselect all' | ||||
|     'Selection is one face': | ||||
|       | 'Enter sketch' | ||||
|       | 'Equip Extrude Tool' | ||||
|       | 'Equip extrude' | ||||
|     'Selection is one or more edges': 'Equip fillet' | ||||
|   } | ||||
|   eventsCausingServices: { | ||||
|     createExtrude: 'Equip extrude' | ||||
|     createFillet: 'Equip fillet' | ||||
|     createLine: 'Equip Line Tool' | ||||
|     createSketch: 'Enter sketch' | 'Select face' | ||||
|   } | ||||
|   matchesStates: | ||||
|     | 'Extrude' | ||||
|     | 'Extrude.Idle' | ||||
|     | 'Extrude.Ready' | ||||
|     | 'Extrude.Selection Ready' | ||||
|     | 'Fillet' | ||||
|     | 'Fillet.Idle' | ||||
|     | 'Fillet.Ready' | ||||
|     | 'Fillet.Selection Ready' | ||||
|     | 'Sketch' | ||||
|     | 'Sketch no face' | ||||
|     | 'Sketch.Extrude' | ||||
|     | 'Sketch.Extrude.Idle' | ||||
|     | 'Sketch.Extrude.Ready' | ||||
|     | 'Sketch.Extrude.Selection Ready' | ||||
|     | 'Sketch.Idle' | ||||
|     | 'Sketch.Line Tool' | ||||
|     | 'Sketch.Line Tool.Done' | ||||
|     | 'Sketch.Line Tool.No Points' | ||||
|     | 'Sketch.Line Tool.Point Added' | ||||
|     | 'Sketch.Line Tool.Segment Added' | ||||
|     | 'idle' | ||||
|     | { | ||||
|         Extrude?: 'Idle' | 'Ready' | 'Selection Ready' | ||||
|         Fillet?: 'Idle' | 'Ready' | 'Selection Ready' | ||||
|         Sketch?: | ||||
|           | 'Extrude' | ||||
|           | 'Idle' | ||||
|           | 'Line Tool' | ||||
|           | { | ||||
|               Extrude?: 'Idle' | 'Ready' | 'Selection Ready' | ||||
|               'Line Tool'?: | ||||
|                 | 'Done' | ||||
|                 | 'No Points' | ||||
|                 | 'Point Added' | ||||
|                 | 'Segment Added' | ||||
|             } | ||||
|       } | ||||
|    | ||||
|   tags: never | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user