@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
25 lines (22 loc) • 793 B
text/typescript
import {CoreObjectType, ObjectContent} from '../../ObjectContent';
import {TopoDS_Shape} from './CadCommon';
import {CadGeometryType} from './CadCommon';
import {CadLoaderSync} from './CadLoaderSync';
import {CadObject} from './CadObject';
import {CadPrimitive} from './CadPrimitive';
import {traverseFaces} from './CadTraverse';
export class CadPrimitiveSolid extends CadPrimitive<CadGeometryType.SOLID> {
static primitiveName() {
return 'face';
}
static override entitiesCount<T extends CoreObjectType>(object: ObjectContent<T>) {
const oc = CadLoaderSync.oc();
const cadOobject = object as any as CadObject<CadGeometryType.SOLID>;
let count = 0;
const shape = cadOobject.geometry as TopoDS_Shape;
traverseFaces(oc, shape, (face) => {
count++;
});
return count;
}
}