Directory Structure
In this project, the Core implementations such as geometry processing and node graphs are managed by the @nodi/core module, and managed by the @nodi/web module, which is available on the web.
.โโโ core: @nodi/coreโโโ web: @nodi/web
#
@nodi/core@nodi/core is a collection of reusable implementations that are referenced by other packages, and It manages core implementations such as geometry processing and node graphs.
โโ preprocess: Scripts to automate the creation of Node class dictionary objects, etc.โโ src| โโ data: Type information for data handled by nodes and implementation of DataTreeโ โโ io: Classes to manage Nodi IOโ โโ lib: Libraries that are not supported by npm (vrbnurbs)โ โโ mathโ โโโ geometry: Geometric representation classes and implementations of various geometric operationsโ โโ misc: Utility implementationsโ โโ primitive: Basic classes for complex numbers, NDomain, etc.ใโ โโ misc: Interface and event definitions, etc.โ โโ nodes: Class files for all nodesโ โโ preview: Implementation for previewโโ test: Test code by jestโโ types: Type definition fileโโ wasm: WebAssembly module by Rust
#
@nodi/web@nodi/web uses NuxtJS as its main framework.
Basically, we follow the structure of NuxtJS, but However, it should be noted that we are developing the implementation of the node-based editor part in a state that is separated from Vue as much as possible.
This is because we intend to modularize the node-based editor part in the future, so that it can be run on a different application.
.โโ assetsโ โโ images: Image materialโ โโ json: Text to manage node descriptions, etc.โ โโ styles: Style filesโ โโ scripts| โโ editor: Editor UI implementation| โโ service: Implementation for services such as project and user management| โโ viewer: Viewer UI implementationโโ componentsโโ pages.. (Others are basically in accordance with NuxtJS structure, so omitted)