import { CylinderCap, Segment, UvType } from "./segment"; import { IKey } from "./utility"; export declare class Geometry implements IKey { protected _key: number; protected _color: GeometryColor; protected _property: GeometryProperty; get typeName(): string; get key(): number; get owner(): Segment; get keyType(): any; get color(): GeometryColor; get property(): GeometryProperty; get area(): any; get volume(): any; get shellSize(): any; constructor(key: number); delete(): void; equals(obj: IKey): boolean; moveTo(segment: Segment): void; static fromKey(key: number): Geometry; distanceTo(geom: Geometry, path1?: Int32Array, path2?: Int32Array): Float32Array; } export declare class Surface extends Geometry { constructor(key: number); ComputeTessellateData(image: Image, precision?: number): { positions: Float32Array; indexes: Int32Array; normals: Float32Array; texcoords: Float32Array; }; set normals(value: Float32Array); get normals(): Float32Array; set texCoords(value: Float32Array); } export declare class Curve extends Geometry { constructor(key: number); ComputeTessellateData(precision?: number): { positions: Float32Array; indexes: Int32Array; normals: Float32Array; texcoords: Float32Array; }; } export declare class Marker extends Geometry { get typeName(): string; constructor(key: number); } export declare class PointCloud extends Geometry { get typeName(): string; constructor(key: number); } export declare class Line extends Curve { get typeName(): string; constructor(key: number); get points(): Float32Array; } export declare class Polyline extends Curve { get typeName(): string; get points(): Float32Array; constructor(key: number); } export declare class Circle extends Curve { get typeName(): string; constructor(key: number); } export declare class Cylinder extends Surface { get typeName(): string; get start(): any; get end(): any; get radius(): any; get cap(): string; get points(): Float32Array; get indexes(): Int32Array; constructor(key: number); } export declare class Shell extends Surface { get typeName(): string; get points(): Float32Array; get indexes(): Int32Array; constructor(key: number); merge(from: Segment): void; static createStripe(points: ArrayLike, normal: ArrayLike, width: number, createUv?: boolean, uvType?: UvType, scale?: ArrayLike): { points: Float32Array; indexes: Int32Array; texcoords: any; }; static createVerticalStripe(points: ArrayLike, height: number, createUv?: boolean, uvType?: UvType, scale?: Float64Array): { points: Float32Array; indexes: Int32Array; texcoords: Float32Array; }; edit(points: ArrayLike, indexes: ArrayLike): void; editStripe(points: ArrayLike, normal: ArrayLike, width: number, createUv?: boolean, uvType?: UvType, scale?: ArrayLike): void; editVerticalStripe(points: ArrayLike, height: number, createUv?: boolean, uvType?: UvType, scale?: Float64Array): void; } export declare class Mesh extends Surface { get typeName(): string; constructor(key: number); } export declare class Light extends Geometry { get typeName(): string; constructor(key: number); } export declare class TriangularShell extends Surface { get typeName(): string; get data(): any; constructor(key: number); merge(from: Segment): void; } export declare class CircularArc extends Curve { get typeName(): string; constructor(key: number); } export declare class Ellipse extends Surface { get typeName(): string; constructor(key: number); } export declare class EllipseArc extends Curve { get typeName(): string; constructor(key: number); } export declare class PolyCylinder extends Surface { get typeName(): string; constructor(key: number); edit(points: ArrayLike, radii: ArrayLike, cap: CylinderCap): void; } export declare class ParametricGeometry extends Surface { relatedPositiveGeo: ParametricGeometry; protected _isJointInBoolean: boolean; /** * 三角形法向方向 */ protected _indexInverse: boolean; get typeName(): string; constructor(key: number); get type(): string; get params(): Float64Array; set params(params: Float64Array); get indexInverse(): boolean; set indexInverse(value: boolean); get isJointInBoolean(): boolean; set isJointInBoolean(value: boolean); /** * 计算三维物体在平面中的轮廓线(未消隐) * @returns 二维轮廓线数组 */ computeContourProjection(plane_normal: Float32Array): Float32Array; private computeSCYL; private computeLCYL; private computeCONE; private computeTUBE; private computeCYLI; private computeDISH; private computeSSPH; private computeSDSH; private computeSNOU; private computeLSNO; private computeSLCY; private computeSSLC; private computeCTOR; private computeSCTO; private computeSCON; private computeBend; /** * 设置镜像矩阵. * @param x * @param y * @param z */ applyMirriorMatrix(x: number, y: number, z: number): void; /** * 必须是负实体几何. * @param params */ editNegativeParams(params: Float64Array): void; editIsJointBoolean(isJointInBoolean: boolean): void; insertNegativeEntity(type: string, params: ArrayLike): ParametricGeometry; static checkParametericParamLegal(type: string, params: ArrayLike): boolean; /** * 向量是否为(0,0,0) */ private static checkParametricParamLegal_Vector; /** * 判断参数化图元的参数长度是否合法. * @param type * @param param * @returns */ private static checkParametricParamLegal_arrayLength; /** * 向量是否垂直 * @param vx * @param vy * @returns */ private static checkParametricParamLegal_Perpendicular; /** * 长度是否大于0 */ private static checkParametricParamLegal_Length; /** * 长度的绝对值是否大于0 */ private static checkParametricParamLegal_LengthAbs; delete(): void; private deleteNegativeEntity; insertNegativeEntities(types: string, params: ArrayLike, counts: ArrayLike): number; } export declare class ParametricGeometries extends Surface { get typeName(): string; constructor(key: number); } export declare enum TilingType { Clamp = 0, Repeat = 1, Mirror = 2 } export declare enum FilteringType { Linear = 0, Nearest = 1 } export declare class Image extends Geometry { get typeName(): string; get options(): string; get size(): any; get format(): any; get data(): Uint8Array; get name(): string | null; set name(value: string | null); get id(): string | null; set id(value: string | null); get tiling(): TilingType | null; set tiling(value: TilingType | null); get filtering(): FilteringType | null; set filtering(value: FilteringType | null); get mipMap(): boolean | null; set mipMap(value: boolean | null); get discard(): boolean | null; set discard(value: boolean | null); get local(): boolean | null; set local(value: boolean | null); get externalLoad(): boolean | null; set externalLoad(value: boolean | null); get scale(): [number, number] | null; set scale(value: [number, number] | null); set translate(value: [number, number] | null); get translate(): [number, number] | null; set rotate(value: number | null); get rotate(): number | null; constructor(key: number); } export declare class VectorText extends Surface { get typeName(): string; constructor(key: number); } export declare class CuttingPlanes extends Geometry { get typeName(): string; get planes(): any; constructor(key: number); edit(planes: ArrayLike): void; } declare class Attribute { protected _key: number; constructor(key: number); } export declare class GeometryColor extends Attribute { constructor(key: number); get face(): ArrayLike | null; set face(val: ArrayLike | null); setFace(color: ArrayLike): this; unsetFace(): this; get line(): ArrayLike | null; set line(val: ArrayLike | null); setLine(color: ArrayLike): this; unsetLine(): this; get marker(): ArrayLike | null; set marker(val: ArrayLike | null); setMarker(color: ArrayLike): this; unsetMarker(): this; get edge(): ArrayLike | null; set edge(val: ArrayLike | null); setEdge(color: ArrayLike): this; unsetEdge(): this; get vertex(): ArrayLike | null; set vertex(val: ArrayLike | null); setVertex(color: ArrayLike): this; unsetVertex(): this; } export declare class GeometryProperty extends Attribute { constructor(key: number); get list(): any; addBoolean(name: string, value: boolean): void; addInteger(name: string, value: number): void; addDouble(name: string, value: number): void; addString(name: string, value: string): void; addJson(name: string, value: string): void; showBoolean(name: string): boolean; showInteger(name: string): number; showDouble(name: string): number; showString(name: string): string; remove(name: string): void; clear(): void; exists(name: string): boolean; } export {};