@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.
75 lines (74 loc) • 2.71 kB
TypeScript
import { type Nullable } from "../../types.js";
import { type Scene } from "../../scene.js";
import { Mesh } from "../mesh.js";
import { type GaussianSplattingMesh } from "./gaussianSplattingMesh.js";
import { type Ray } from "../../Culling/ray.core.js";
import { PickingInfo } from "../../Collisions/pickingInfo.js";
/**
* Class used as a proxy mesh for a part of a compound Gaussian Splatting mesh
*/
export declare class GaussianSplattingPartProxyMesh extends Mesh {
/**
* The Gaussian Splatting mesh that this proxy represents a part of
*/
readonly proxiedMesh: GaussianSplattingMesh;
/**
* The index of the part in the compound mesh (internal storage)
*/
private _partIndex;
/**
* Gets the index of the part in the compound mesh
*/
get partIndex(): number;
/**
* The original Gaussian Splatting mesh that was merged into the compound
*/
readonly compoundSplatMesh: GaussianSplattingMesh;
/**
* Creates a new Gaussian Splatting part proxy mesh
* @param name The name of the proxy mesh
* @param scene The scene the proxy mesh belongs to
* @param compoundSplatMesh The original Gaussian Splatting mesh that was merged into the compound
* @param proxiedMesh The Gaussian Splatting mesh that this proxy represents a part of
* @param partIndex The index of the part in the compound mesh
*/
constructor(name: string, scene: Nullable<Scene>, compoundSplatMesh: GaussianSplattingMesh, proxiedMesh: GaussianSplattingMesh, partIndex: number);
/**
* Updates the bounding info of this proxy mesh from the proxied mesh
*/
updateBoundingInfoFromProxiedMesh(): void;
/**
* Returns the class name
* @returns "GaussianSplattingPartProxyMesh"
*/
getClassName(): string;
/**
* Updates the part index for this proxy mesh.
* This should only be called internally when parts are removed from the compound mesh.
* @param newPartIndex the new part index
* @internal
*/
updatePartIndex(newPartIndex: number): void;
/**
* Gets whether the part is visible
*/
get isVisible(): boolean;
/**
* Sets whether the part is visible
*/
set isVisible(value: boolean);
/**
* Gets the visibility of the part (0.0 to 1.0)
*/
get visibility(): number;
/**
* Sets the visibility of the part (0.0 to 1.0)
*/
set visibility(value: number);
/**
* Checks if a ray intersects with this proxy mesh using only bounding info
* @param ray defines the ray to test
* @returns the picking info with this mesh set as pickedMesh if hit
*/
intersects(ray: Ray): PickingInfo;
}