@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
62 lines (61 loc) • 2.16 kB
JavaScript
;
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, []);
}