All files / packages/core/src/loaders/utils/contourSet validateContourSet.ts

0% Statements 0/12
0% Branches 0/19
0% Functions 0/3
0% Lines 0/12

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39                                                                             
import { PublicContourSetData } from '../../../types';
 
export function validateContourSet(contourSetData: PublicContourSetData) {
  if (!contourSetData || contourSetData.data.length === 0) {
    throw new Error(
      'Invalid contour set data, see publicContourSetData type for more info'
    );
  }
 
  // make sure it each has id, and each has data of type Point3[]
  if (!contourSetData.id) {
    throw new Error(
      'Invalid contour set data, each contour set must have an id'
    );
  }
 
  if (!contourSetData.data || !Array.isArray(contourSetData.data)) {
    throw new Error(
      'Invalid contour set data, each contour set must have an array of contours'
    );
  }
 
  contourSetData.data.forEach((contourData) => {
    if (!contourData.points || !Array.isArray(contourData.points)) {
      throw new Error(
        'Invalid contour set data, each contour must have an array of points'
      );
    }
 
    contourData.points.forEach((point) => {
      if (!point || !Array.isArray(point) || point.length !== 3) {
        throw new Error(
          'Invalid contour set data, each point must be an array of length 3'
        );
      }
    });
  });
}