Skip to content

Instantly share code, notes, and snippets.

View xeolabs's full-sized avatar
🏋️‍♂️
Developing http://xeokit.io

Lindsay Kay xeolabs

🏋️‍♂️
Developing http://xeokit.io
View GitHub Profile
@xeolabs
xeolabs / MetaModel.js
Created September 6, 2023 21:13
MetaModel w dictionary
import {PropertySet} from "./PropertySet";
import {MetaObject} from "./MetaObject";
import {math} from "../scene";
/**
* @desc Metadata corresponding to an {@link Entity} that represents a model.
*
* An {@link Entity} represents a model when {@link Entity#isModel} is ````true````
*
* A MetaModel corresponds to an {@link Entity} by having the same {@link MetaModel#id} as the {@link Entity#id}.
import {ENTITY_FLAGS} from '../../ENTITY_FLAGS.js';
import {RENDER_PASSES} from '../../RENDER_PASSES.js';
import {math} from "../../../math/math.js";
import {RenderState} from "../../../webgl/RenderState.js";
import {geometryCompressionUtils} from "../../../math/geometryCompressionUtils.js";
import {getDataTextureRenderers} from "./TrianglesDataTextureRenderers.js";
import {TrianglesDataTextureBuffer} from "./TrianglesDataTextureBuffer.js";
import {DataTextureState} from "./DataTextureState.js"
import {DataTextureGenerator} from "./DataTextureGenerator";
import {dataTextureRamStats} from "./dataTextureRamStats";
import {Component} from "../Component.js";
import {math} from "../math/math.js";
import {buildEdgeIndices} from '../math/buildEdgeIndices.js';
import {SceneModelMesh} from './SceneModelMesh.js';
import {getScratchMemory, putScratchMemory} from "./vbo/ScratchMemory.js";
import {TrianglesBatchingLayer} from './vbo/trianglesBatching/TrianglesBatchingLayer.js';
import {TrianglesInstancingLayer} from './vbo/trianglesInstancing/TrianglesInstancingLayer.js';
import {LinesBatchingLayer} from './vbo/linesBatching/LinesBatchingLayer.js';
import {LinesInstancingLayer} from './vbo/linesInstancing/LinesInstancingLayer.js';
import {PointsBatchingLayer} from './vbo/pointsBatching/PointsBatchingLayer.js';
import {Component} from "../Component.js";
import {math} from "../math/math.js";
import {buildEdgeIndices} from '../math/buildEdgeIndices.js';
import {SceneModelMesh} from './SceneModelMesh.js';
import {getScratchMemory, putScratchMemory} from "./vbo/ScratchMemory.js";
import {TrianglesBatchingLayer} from './vbo/trianglesBatching/TrianglesBatchingLayer.js';
import {TrianglesInstancingLayer} from './vbo/trianglesInstancing/TrianglesInstancingLayer.js';
import {LinesBatchingLayer} from './vbo/linesBatching/LinesBatchingLayer.js';
import {LinesInstancingLayer} from './vbo/linesInstancing/LinesInstancingLayer.js';
import {PointsBatchingLayer} from './vbo/pointsBatching/PointsBatchingLayer.js';
import {MetaModel} from "./MetaModel.js";
import {MetaObject} from "./MetaObject.js";
import {PropertySet} from "./PropertySet.js";
import {math} from "../scene/math/math.js";
/**
* @desc Metadata corresponding to a {@link Scene}.
*
* * Located in {@link Viewer#metaScene}.
* * Contains {@link MetaModel}s and {@link MetaObject}s.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>xeokit Example</title>
<link href="css/pageStyle.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/js/all.min.js"></script>
import {ViewLayer, ViewObject} from "@xeokit/viewer";
import {GeometryBucket, Mesh} from "@xeokit/scene";
import {
createKDTreeFromPrimitives,
KDLine,
KDPoint,
KDTree,
KDTriangle,
searchKDTreeWithFrustum
import {GeometryView, getSceneObjectGeometry, SceneObject} from "@xeokit/scene";
import {
Frustum,
INTERSECT,
OUTSIDE,
testFrustumIntersectsAABB3,
testFrustumIntersectsTriangle
} from "@xeokit/math/boundaries";
import {KDObjectsTree} from "./KDObjectsTree";
import {KDObjectsNode} from "./KDObjectsNode";
import {EventDispatcher} from "strongly-typed-events";
import type {Camera} from "./Camera";
import {Component, EventEmitter} from "@xeokit/core/components";
import {FrustumProjectionType} from "@xeokit/core/constants";
import {FloatArrayParam} from "@xeokit/math/math";
import {frustumMat4, inverseMat4, createMat4, mulMat4v4, mulVec3Scalar, transposeMat4} from "@xeokit/math/matrix";
/**
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>xeokit Example</title>
<link href="css/pageStyle.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/js/all.min.js"></script>
</head>