brepjs-viewer 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -0
- package/LICENSE +191 -0
- package/README.md +31 -0
- package/dist/EdgeRenderer.d.ts +12 -0
- package/dist/GradientBackground.d.ts +6 -0
- package/dist/InfiniteGrid.d.ts +9 -0
- package/dist/Renderer.d.ts +11 -0
- package/dist/SceneLighting.d.ts +1 -0
- package/dist/SceneSetup.d.ts +31 -0
- package/dist/SelectionHighlight.d.ts +9 -0
- package/dist/ViewerCanvas.d.ts +14 -0
- package/dist/ViewerControls.d.ts +20 -0
- package/dist/ViewerInfoPanel.d.ts +12 -0
- package/dist/ViewerSectionControls.d.ts +15 -0
- package/dist/ViewerSelectionPanel.d.ts +8 -0
- package/dist/brepjs-viewer.cjs +1194 -0
- package/dist/brepjs-viewer.js +1156 -0
- package/dist/geometry.d.ts +12 -0
- package/dist/index.d.ts +11 -0
- package/dist/types.d.ts +40 -0
- package/package.json +50 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { MeshData, FaceGroup } from './types.js';
|
|
2
|
+
import * as THREE from 'three';
|
|
3
|
+
export declare function buildGeometry(data: MeshData): THREE.BufferGeometry;
|
|
4
|
+
export interface MeshBounds {
|
|
5
|
+
min: [number, number, number];
|
|
6
|
+
max: [number, number, number];
|
|
7
|
+
}
|
|
8
|
+
export declare function meshBounds(data: MeshData): MeshBounds;
|
|
9
|
+
export declare function meshSize(data: MeshData): [number, number, number];
|
|
10
|
+
export type SectionAxis = 'x' | 'y' | 'z';
|
|
11
|
+
export declare function sectionPlane(axis: SectionAxis, position: number, flip?: boolean): THREE.Plane;
|
|
12
|
+
export declare function findFaceGroupAt(groups: FaceGroup[], triangleIndex: number): FaceGroup | null;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { Renderer, type RendererProps } from './Renderer.js';
|
|
2
|
+
export { default as EdgeRenderer } from './EdgeRenderer.js';
|
|
3
|
+
export { default as SelectionHighlight } from './SelectionHighlight.js';
|
|
4
|
+
export { default as SceneSetup } from './SceneSetup.js';
|
|
5
|
+
export { ViewerCanvas, type ViewerCanvasProps } from './ViewerCanvas.js';
|
|
6
|
+
export { ViewerControls, type ViewerControlsProps } from './ViewerControls.js';
|
|
7
|
+
export { ViewerInfoPanel, type ViewerInfoPanelProps } from './ViewerInfoPanel.js';
|
|
8
|
+
export { ViewerSelectionPanel, type ViewerSelectionPanelProps } from './ViewerSelectionPanel.js';
|
|
9
|
+
export { ViewerSectionControls, type ViewerSectionControlsProps, } from './ViewerSectionControls.js';
|
|
10
|
+
export * from './types.js';
|
|
11
|
+
export { buildGeometry, findFaceGroupAt, meshSize, meshBounds, sectionPlane, type MeshBounds, type SectionAxis, } from './geometry.js';
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export interface FaceGroup {
|
|
2
|
+
start: number;
|
|
3
|
+
count: number;
|
|
4
|
+
faceId: number;
|
|
5
|
+
}
|
|
6
|
+
export interface EdgeGroup {
|
|
7
|
+
start: number;
|
|
8
|
+
count: number;
|
|
9
|
+
edgeId: number;
|
|
10
|
+
}
|
|
11
|
+
export interface FaceInfo {
|
|
12
|
+
faceId: number;
|
|
13
|
+
surfaceType: string;
|
|
14
|
+
area: number;
|
|
15
|
+
normal: [number, number, number];
|
|
16
|
+
}
|
|
17
|
+
export interface EdgeInfo {
|
|
18
|
+
edgeId: number;
|
|
19
|
+
curveType: string;
|
|
20
|
+
length: number;
|
|
21
|
+
}
|
|
22
|
+
export interface MeshData {
|
|
23
|
+
position: Float32Array;
|
|
24
|
+
normal: Float32Array;
|
|
25
|
+
index: Uint32Array;
|
|
26
|
+
edges: Float32Array;
|
|
27
|
+
faceGroups?: FaceGroup[];
|
|
28
|
+
edgeGroups?: EdgeGroup[];
|
|
29
|
+
faceInfos?: FaceInfo[];
|
|
30
|
+
edgeInfos?: EdgeInfo[];
|
|
31
|
+
color?: string;
|
|
32
|
+
}
|
|
33
|
+
export type ViewMode = 'solid' | 'wireframe' | 'xray';
|
|
34
|
+
export type Projection = 'perspective' | 'orthographic';
|
|
35
|
+
export interface ScreenPos {
|
|
36
|
+
x: number;
|
|
37
|
+
y: number;
|
|
38
|
+
}
|
|
39
|
+
export declare const VIEW_NAMES: readonly ["iso", "front", "top", "right"];
|
|
40
|
+
export type ViewName = (typeof VIEW_NAMES)[number];
|
package/package.json
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "brepjs-viewer",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Shared React/R3F renderer for brepjs meshes (used by the playground and the brepjs-agent viewer)",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"sideEffects": false,
|
|
8
|
+
"engines": { "node": ">=24" },
|
|
9
|
+
"main": "./dist/brepjs-viewer.cjs",
|
|
10
|
+
"module": "./dist/brepjs-viewer.js",
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"import": { "types": "./dist/index.d.ts", "default": "./dist/brepjs-viewer.js" },
|
|
15
|
+
"require": { "types": "./dist/index.d.ts", "default": "./dist/brepjs-viewer.cjs" }
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"files": ["dist", "CHANGELOG.md", "LICENSE", "README.md"],
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "vite build",
|
|
21
|
+
"typecheck": "tsc --noEmit",
|
|
22
|
+
"lint": "eslint src",
|
|
23
|
+
"test": "vitest run"
|
|
24
|
+
},
|
|
25
|
+
"peerDependencies": {
|
|
26
|
+
"react": ">=19",
|
|
27
|
+
"react-dom": ">=19",
|
|
28
|
+
"three": ">=0.184",
|
|
29
|
+
"@react-three/fiber": ">=9",
|
|
30
|
+
"@react-three/drei": ">=10"
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@eslint/js": "*",
|
|
34
|
+
"@react-three/test-renderer": "*",
|
|
35
|
+
"@types/react": "19.2.15",
|
|
36
|
+
"@types/three": "0.184.1",
|
|
37
|
+
"eslint": "*",
|
|
38
|
+
"jsdom": "*",
|
|
39
|
+
"react": "19.2.6",
|
|
40
|
+
"react-dom": "19.2.6",
|
|
41
|
+
"@react-three/fiber": "9.6.1",
|
|
42
|
+
"@react-three/drei": "10.7.7",
|
|
43
|
+
"three": "0.184.0",
|
|
44
|
+
"typescript": "*",
|
|
45
|
+
"typescript-eslint": "*",
|
|
46
|
+
"vite": "^8.0.0",
|
|
47
|
+
"vite-plugin-dts": "*",
|
|
48
|
+
"vitest": "^4.0.0"
|
|
49
|
+
}
|
|
50
|
+
}
|