UNPKG

@threepipe/plugin-svg-renderer

Version:

Plugins for SVG Rendering of 3d objects for Threepipe

42 lines (37 loc) 1.18 kB
/* * Author: Axel Antoine * mail: ax.antoine@gmail.com * website: http://axantoine.com * Created on Mon Dec 12 2022 * * Loki, Inria project-team with Université de Lille * within the Joint Research Unit UMR 9189 * CNRS - Centrale Lille - Université de Lille, CRIStAL * https://loki.lille.inria.fr * * Licence: Licence.md */ import { Vector3 } from "three"; import { hashVector2, hashVector3, projectPoint } from "../../../utils"; import { Viewmap } from "../Viewmap"; import { ViewVertex } from "../ViewVertex"; /** * Creates a ViewVertex at the given position if no one already exist * @param viewmap * @param pos3d * @returns */ export function createViewVertex(viewmap: Viewmap, pos3d: Vector3) { const {camera, viewVertexMap, renderSize} = viewmap; const hash3d = hashVector3(pos3d); let viewVertex = viewVertexMap.get(hash3d); if (!viewVertex) { viewVertex = new ViewVertex(); viewVertex.pos3d.copy(pos3d); projectPoint(pos3d, viewVertex.pos2d, camera, renderSize); viewVertex.hash2d = hashVector2(viewVertex.pos2d); viewVertex.hash3d = hash3d; viewVertexMap.set(hash3d, viewVertex); } return viewVertex; }