UNPKG

@babylonjs/core

Version:

Getting started? Play directly with the Babylon.js API using our [playground](https://playground.babylonjs.com/). It also contains a lot of samples to learn how to use it.

146 lines (145 loc) 5.62 kB
import type { Nullable } from "../types.js"; import type { Scene } from "../scene.js"; import { Color3 } from "../Maths/math.color.js"; import type { Node } from "../node.js"; import type { SubMesh } from "../Meshes/subMesh.js"; import { Mesh } from "../Meshes/mesh.js"; import { InstancedMesh } from "../Meshes/instancedMesh.js"; import { Material } from "../Materials/material.js"; import type { Effect } from "../Materials/effect.js"; import type { MeshCreationOptions } from "./mesh.js"; import { ShaderLanguage } from "../Materials/shaderLanguage.js"; /** * Line mesh * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/creation/param */ export declare class LinesMesh extends Mesh { /** * If vertex color should be applied to the mesh */ readonly useVertexColor?: boolean | undefined; /** * If vertex alpha should be applied to the mesh */ readonly useVertexAlpha?: boolean | undefined; /** * Force all the LineMeshes to compile their default color material to glsl even on WebGPU engines. * False by default. This is mostly meant for backward compatibility. */ static ForceGLSL: boolean; /** * Color of the line (Default: White) */ color: Color3; /** * Alpha of the line (Default: 1) */ alpha: number; /** * The intersection Threshold is the margin applied when intersection a segment of the LinesMesh with a Ray. * This margin is expressed in world space coordinates, so its value may vary. * Default value is 0.1 */ intersectionThreshold: number; private _isShaderMaterial; private _color4; /** Shader language used by the material */ protected _shaderLanguage: ShaderLanguage; /** * Creates a new LinesMesh * @param name defines the name * @param scene defines the hosting scene * @param parent defines the parent mesh if any * @param source defines the optional source LinesMesh used to clone data from * @param doNotCloneChildren When cloning, skip cloning child meshes of source, default False. * When false, achieved by calling a clone(), also passing False. * This will make creation of children, recursive. * @param useVertexColor defines if this LinesMesh supports vertex color * @param useVertexAlpha defines if this LinesMesh supports vertex alpha * @param material material to use to draw the line. If not provided, will create a new one */ constructor(name: string, scene?: Nullable<Scene>, parent?: Nullable<Node>, source?: Nullable<LinesMesh>, doNotCloneChildren?: boolean, /** * If vertex color should be applied to the mesh */ useVertexColor?: boolean | undefined, /** * If vertex alpha should be applied to the mesh */ useVertexAlpha?: boolean | undefined, material?: Material); /** * @returns the string "LineMesh" */ getClassName(): string; /** * @internal */ get material(): Nullable<Material>; /** * @internal */ set material(value: Nullable<Material>); /** * @internal */ get checkCollisions(): boolean; set checkCollisions(value: boolean); /** * @internal */ _bind(_subMesh: SubMesh, colorEffect: Effect): Mesh; /** * @internal */ _draw(subMesh: SubMesh, fillMode: number, instancesCount?: number): Mesh; /** * Disposes of the line mesh * @param doNotRecurse If children should be disposed * @param disposeMaterialAndTextures This parameter is not used by the LineMesh class * @param doNotDisposeMaterial If the material should not be disposed (default: false, meaning the material is disposed) */ dispose(doNotRecurse?: boolean, disposeMaterialAndTextures?: boolean, doNotDisposeMaterial?: boolean): void; /** * Returns a new LineMesh object cloned from the current one. * @param name defines the cloned mesh name * @param newParent defines the new mesh parent * @param doNotCloneChildren if set to true, none of the mesh children are cloned (false by default) * @returns the new mesh */ clone(name: string, newParent?: Nullable<Node> | MeshCreationOptions, doNotCloneChildren?: boolean): LinesMesh; /** * Creates a new InstancedLinesMesh object from the mesh model. * @see https://doc.babylonjs.com/features/featuresDeepDive/mesh/copies/instances * @param name defines the name of the new instance * @returns a new InstancedLinesMesh */ createInstance(name: string): InstancedLinesMesh; /** * Serializes this ground mesh * @param serializationObject object to write serialization to */ serialize(serializationObject: any): void; /** * Parses a serialized ground mesh * @param parsedMesh the serialized mesh * @param scene the scene to create the ground mesh in * @returns the created ground mesh */ static Parse(parsedMesh: any, scene: Scene): LinesMesh; } /** * Creates an instance based on a source LinesMesh */ export declare class InstancedLinesMesh extends InstancedMesh { /** * The intersection Threshold is the margin applied when intersection a segment of the LinesMesh with a Ray. * This margin is expressed in world space coordinates, so its value may vary. * Initialized with the intersectionThreshold value of the source LinesMesh */ intersectionThreshold: number; constructor(name: string, source: LinesMesh); /** * @returns the string "InstancedLinesMesh". */ getClassName(): string; }