| @@ -138,6 +138,7 @@ To make changes and run the example, click on the CodePen button on the top righ | |||
| - [@threepipe/plugin-tweakpane](#threepipeplugin-tweakpane) Tweakpane UI Plugin | |||
| - [@threepipe/plugin-blueprintjs](#threepipeplugin-blueprintjs) BlueprintJs UI Plugin | |||
| - [@threepipe/plugin-tweakpane-editor](#threepipeplugin-tweakpane-editor) - Tweakpane Editor Plugin | |||
| - [@threepipe/plugin-configurator](#threepipeplugin-configurator) - Provides Material Configurator and Switch Node Plugin to allow users to select variations | |||
| - [@threepipe/plugins-extra-importers](#threepipeplugins-extra-importers) - Plugin for loading more file types supported by loaders in three.js | |||
| - [@threepipe/plugin-blend-importer](#threepipeplugin-blend-importer) - Blender to add support for loading .blend file | |||
| - [@threepipe/plugin-geometry-generator](#threepipeplugin-geometry-generator) - Generate parametric geometry types that can be re-generated from UI/API. | |||
| @@ -3600,7 +3601,7 @@ Tweakpane Editor Plugin for ThreePipe | |||
| [Example](https://threepipe.org/examples/#tweakpane-editor/) — | |||
| [Source Code](./plugins/tweakpane-editor/src/TweakpaneEditorPlugin.ts) — | |||
| [API Reference](https://threepipe.org/plugins/tweakpane-editor/docs/classes/TweakpaneEditorPlugi — | |||
| [API Reference](https://threepipe.org/plugins/tweakpane-editor/docs/classes/TweakpaneEditorPlugin.html) | |||
| NPM: `npm install @threepipe/plugin-tweakpane-editor` | |||
| @@ -3636,6 +3637,67 @@ editor.loadPlugins({ | |||
| }) | |||
| ``` | |||
| ## @threepipe/plugin-configurator | |||
| Configurator Plugin implementations with basic UI for Threepipe. | |||
| Includes Material Configurator and Switch Node Configurator Plugins. | |||
| NPM: `npm install @threepipe/plugin-configurator` | |||
| CDN: https://threepipe.org/plugins/con/dist/configurator/index.mjs | |||
| ### MaterialConfiguratorPlugin | |||
| [//]: # (todo: image) | |||
| [Example](https://threepipe.org/examples/#material-configurator-plugin/) — | |||
| [Source Code](./plugins/configurator/src/MaterialConfiguratorPlugin.ts) — | |||
| [API Reference](https://threepipe.org/plugins/configurator/docs/classes/MaterialConfiguratorPlugin.html) | |||
| MaterialConfiguratorPlugin adds a UI to configure and switch between different material variations. | |||
| The variations of materials are mapped to material names or uuids in the scene. | |||
| These variations can be applied to the materials in the scene. (This copies the properties to the same material instances instead of assigning new materials) | |||
| The plugin interfaces with the picking plugin and also provides uiConfig to show and edit the variations. | |||
| This functionality is inherited from [MaterialConfiguratorBasePlugin](https://threepipe.org/docs/classes/MaterialConfiguratorBasePlugin.html). | |||
| Additionally, this plugin adds a simple Grid UI in the DOM over the viewer canvas to show various material variations and allow the user to apply them. | |||
| The UI can also be used in the editor to edit the variations and apply them. | |||
| To use, simply add the plugin in the viewer and configure using the created UI and UI Config. Note that `PickingPlugin` is required to be added before this to allow configurator. | |||
| To create a custom configurator UI, use the `MaterialConfiguratorBasePlugin` directly and call the function `applyVariation`, `getPreview` and `addVariation` to apply and add variations respectively. | |||
| [//]: # (TODO Add Example for custom UI) | |||
| ### SwitchNodePlugin | |||
| [//]: # (todo: image) | |||
| [Example](https://threepipe.org/examples/#switch-node-plugin/) — | |||
| [Source Code](./plugins/configurator/src/SwitchNodePlugin.ts) — | |||
| [API Reference](https://threepipe.org/plugins/configurator/docs/classes/SwitchNodePlugin.html) | |||
| SwitchNodePlugin adds a UI to configure and switch between different different object variations within a switch node object. | |||
| This plugin allows you to configure object variations with object names in a file and apply them in the scene. | |||
| Each SwitchNode is a parent object with multiple direct children. Only one child is visible at a time. | |||
| This works by toggling the `visible` property of the children of a parent object. | |||
| The plugin interfaces with the picking plugin and also provides uiConfig to show and edit the variations. | |||
| It also provides a function to create snapshot previews of individual variations. This creates a limited render of the object with the selected child visible. | |||
| To get a proper render, its better to render it offline and set the image as a preview. | |||
| This functionality is inherited from [SwitchNodeBasePlugin](https://threepipe.org/docs/classes/SwitchNodeBasePlugin.html). | |||
| Additionally, this plugin adds a simple Grid UI in the DOM over the viewer canvas to show various material variations and allow the user to apply them. | |||
| The UI can also be used in the editor to edit the variations and apply them. | |||
| To use, simply add the plugin in the viewer and configure using the created UI and UI Config. Note that `PickingPlugin` is required to be added before this to allow configurator. | |||
| To create a custom configurator UI, use the `SwitchNodeBasePlugin` directly and call the function `selectNode`, `getPreview` and `addNode` to apply and add variations respectively. | |||
| [//]: # (TODO Add Example for custom UI) | |||
| ## @threepipe/plugins-extra-importers | |||
| Exports several plugins to add support for various file types. | |||