@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
96 lines (95 loc) • 4.37 kB
TypeScript
import { Color } from 'three';
import type { OpenCascadeInstance, TopoDS_Shape, TopoDS_Vertex, TopoDS_Edge, TopoDS_Wire, TopoDS_Face, TopoDS_Shell, TopoDS_Solid, TopoDS_CompSolid, TopoDS_Compound, Geom2d_Curve, Geom_Curve, BRepMesh_IncrementalMesh, gp_Pln, gp_Pnt2d, gp_Pnt, gp_Quaternion, gp_Vec2d, gp_Vec, Bnd_Box, gp_Trsf, gp_Ax1, gp_Ax2, gp_Dir, gp_XYZ, TopAbs_ShapeEnum, TopExp, TopTools_IndexedMapOfShape, TopLoc_Location, Message_ProgressRange, TopTools_ListOfShape, GProp_GProps } from './build/polygonjs-occt';
export type { OpenCascadeInstance, BRepMesh_IncrementalMesh, TopoDS_Shape, TopoDS_Vertex, TopoDS_Face, TopoDS_Shell, TopoDS_Solid, TopoDS_CompSolid, TopoDS_Compound, TopoDS_Edge, TopoDS_Wire, Geom2d_Curve, Geom_Curve, Bnd_Box, gp_Pln, gp_Pnt2d, gp_Pnt, gp_Quaternion, gp_Vec2d, gp_Vec, gp_Trsf, gp_Ax1, gp_Ax2, gp_Dir, gp_XYZ, TopAbs_ShapeEnum, TopExp, TopTools_IndexedMapOfShape, TopLoc_Location, Message_ProgressRange, TopTools_ListOfShape, GProp_GProps, };
export type CadGeometry = gp_Pnt2d | Geom2d_Curve | TopoDS_Vertex | TopoDS_Edge | TopoDS_Wire | TopoDS_Shape;
export declare enum CadGeometryType {
POINT_2D = "CADPoint2D",
CURVE_2D = "CADCurve2D",
VERTEX = "CADVertex",
EDGE = "CADEdge",
WIRE = "CADWire",
FACE = "CADFace",
SHELL = "CADShell",
SOLID = "CADSolid",
COMPSOLID = "CADCompsolid",
COMPOUND = "CADCompound"
}
export declare const CAD_GEOMETRY_TYPES_SET: Set<CadGeometryType>;
export type CadGeometryTypeShape = CadGeometryType.VERTEX | CadGeometryType.EDGE | CadGeometryType.WIRE | CadGeometryType.FACE | CadGeometryType.SHELL | CadGeometryType.SOLID | CadGeometryType.COMPSOLID | CadGeometryType.COMPOUND;
export declare const CAD_GEOMETRY_TYPES_SHAPE: CadGeometryTypeShape[];
export declare const CAD_GEOMETRY_TYPES_SET_SHAPE: Set<CadGeometryType>;
export type CadShape = TopoDS_Vertex | TopoDS_Edge | TopoDS_Wire | TopoDS_Face | TopoDS_Shell | TopoDS_Solid | TopoDS_CompSolid | TopoDS_Compound;
export declare function cadGeometryTypeFromShape(oc: OpenCascadeInstance, shape: TopoDS_Shape): CadGeometryType | undefined;
export declare function cadDowncast(oc: OpenCascadeInstance, shape: TopoDS_Shape): CadShape;
export interface CadTypeMap {
[CadGeometryType.POINT_2D]: gp_Pnt2d;
[CadGeometryType.CURVE_2D]: Geom2d_Curve;
[CadGeometryType.VERTEX]: TopoDS_Vertex;
[CadGeometryType.EDGE]: TopoDS_Edge;
[CadGeometryType.WIRE]: TopoDS_Wire;
[CadGeometryType.FACE]: TopoDS_Face;
[CadGeometryType.SHELL]: TopoDS_Shell;
[CadGeometryType.SOLID]: TopoDS_Solid;
[CadGeometryType.COMPSOLID]: TopoDS_CompSolid;
[CadGeometryType.COMPOUND]: TopoDS_Compound;
}
export interface CachedCADTesselationParams {
linearTolerance: number;
angularTolerance: number;
curveAbscissa: number;
curveTolerance: number;
}
export interface CachedCADOBJTesselationParams {
CADLinearTolerance: number;
CADAngularTolerance: number;
CADCurveAbscissa: number;
CADCurveTolerance: number;
}
export interface CADTesselationParams extends CachedCADTesselationParams {
wireframe: boolean;
displayMeshes: boolean;
displayEdges: boolean;
meshesColor: Color;
edgesColor: Color;
}
export interface CADOBJTesselationParams extends CachedCADOBJTesselationParams {
CADWireframe: boolean;
CADDisplayMeshes: boolean;
CADDisplayEdges: boolean;
CADMeshesColor: Color;
CADEdgesColor: Color;
}
export interface FaceData {
positions: number[];
normals: number[];
indices: number[];
}
export interface EdgeData {
positions: number[];
}
export interface CadObjectData {
type: CadGeometryType;
}
export interface CadNumberHandle {
current: number;
}
export declare const _createCadNumberHandle: () => CadNumberHandle;
export interface CadVector3Handle {
x: CadNumberHandle;
y: CadNumberHandle;
z: CadNumberHandle;
}
export declare const _createCadVector3Handle: () => CadVector3Handle;
export interface CadBox3Handle {
min: CadVector3Handle;
max: CadVector3Handle;
}
export declare const _createCadBox3Handle: () => CadBox3Handle;
interface Deletable {
delete: () => void;
}
export type GCRegisterFunction = <D extends Deletable>(deletable: D) => D;
type GCCallback<T> = (r: GCRegisterFunction) => T;
export declare class CadGC {
static withGC<T>(callback: GCCallback<T>): T;
}