@teleportlab/3d-engine
v1.0.241
Published
---
Downloads
601
Readme
3D Engine
This project is a 3D editor implemented in TypeScript using the Three.js library. It provides functionalities for creating and manipulating 3D entities, loading models, and managing materials.
Installation
To install the library, use npm or yarn:
npm install @teleportlab/3d-engine
# or
yarn add @teleportlab/3d-engine
Usage
A basic example of usage:
import Editor from '@teleportlab/3d-engine';
import {
CameraType,
ComponentType,
GeometryType,
LightType,
} from '@teleportlab/3d-engine/lib/core/types';
import { MaterialType } from '@teleportlab/3d-engine/lib/core/material';
const editor = new Editor();
// Create materials
editor.createMaterial(MaterialType.MeshPhysicalMaterial);
// Create entities
editor.createEntity(ComponentType.Camera, 'Camera', { type: CameraType.Perspective });
editor.createEntity(ComponentType.Geometry, 'Cube', { type: GeometryType.Box });
editor.createEntity(ComponentType.Light, 'Light', { type: LightType.Omni });
// Access scene data
const materials = editor.getAllMaterials();
const entities = editor.getAllEntities();
// Serialize and deserialize scene data
const serializedData = editor.serialize();
editor.deserialize(serializedData);
API
Methods
createMaterial(type: MaterialType, name: string, options?: any): string
: Creates a new material.createEntity(type: ComponentType, name: string, options?: any): void
: Creates a new entity with specified components.getAllMaterials(): Material[]
: Retrieves all materials.getAllEntities(): Entity[]
: Retrieves all entities in the scene.serialize(): string
: Serializes the current scene data into a JSON string.deserialize(serializedData: string): void
: Deserializes the provided JSON string into the scene.
Development
To build the project locally:
- Clone the repository.
- Install dependencies with
npm install
. - Use
npm run dev
for development mode ornpm run build
for production build.