UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

62 lines (61 loc) 2.16 kB
"use strict"; import { isObject3D } from "../../ObjectContent"; import { objectTypeFromObject } from "../../Constant"; import { EntityGroupCollection } from "../../EntityGroupCollection"; import { addToSetAtEntry } from "../../../MapUtils"; import { setToArray } from "../../../SetUtils"; export function objectData(object) { const childrenCount = isObject3D(object) ? object.children.length : 0; const objectType = isObject3D(object) ? objectTypeFromObject(object) : object.type; const groupData = EntityGroupCollection.data(object); return { type: objectType, name: object.name, childrenCount, groupData, verticesCount: 0, pointsCount: 0, primitivesCount: 0, primitiveName: "no name" }; } export function coreObjectsAttribSizesByName(coreObjects) { const _sizesByName = /* @__PURE__ */ new Map(); for (const coreObject of coreObjects) { const objectAttriNames = coreObject.attribNames(); for (const attribName of objectAttriNames) { const attribSize = coreObject.attribSize(attribName); addToSetAtEntry(_sizesByName, attribName, attribSize); } } const sizesByName = {}; _sizesByName.forEach((attribSizes, attribName) => { sizesByName[attribName] = setToArray(attribSizes, []); }); return sizesByName; } export function coreObjectAttributeTypesByName(coreObjects) { const _typesByName = /* @__PURE__ */ new Map(); for (const coreObject of coreObjects) { const objectAttriNames = coreObject.attribNames(); for (const attribName of objectAttriNames) { const attribType = coreObject.attribType(attribName); addToSetAtEntry(_typesByName, attribName, attribType); } } const typesByName = {}; _typesByName.forEach((attribTypes, attribName) => { typesByName[attribName] = setToArray(attribTypes, []); }); return typesByName; } export function coreObjectsAttribNames(coreObjects) { const names = /* @__PURE__ */ new Set(); for (const coreObject of coreObjects) { const objectAttriNames = coreObject.attribNames(); for (const attribName of objectAttriNames) { names.add(attribName); } } return setToArray(names, []); }