Source: dicom-microscopy-viewer.js

import EVENTS from './events.js'
import { AnnotationGroup } from './annotation.js'
import { ParameterMapping } from './mapping.js'
import {
  ColormapNames,
  createColormap,
  PaletteColorLookupTable,
  buildPaletteColorLookupTable
} from './color.js'
import {
  Comprehensive3DSR,
  MicroscopyBulkSimpleAnnotations,
  ParametricMap,
  Segmentation,
  VLWholeSlideMicroscopyImage,
  formatMetadata,
  groupMonochromeInstances,
  groupColorInstances
} from './metadata.js'
import { ROI } from './roi.js'
import {
  Point,
  Multipoint,
  Polyline,
  Polygon,
  Ellipsoid,
  Ellipse
} from './scoord3d.js'
import {
  applyInverseTransform,
  applyTransform,
  buildInverseTransform,
  buildTransform,
  computeRotation,
  mapSlideCoordToPixelCoord,
  mapPixelCoordToSlideCoord
} from './utils.js'
import {
  LabelImageViewer,
  OverviewImageViewer,
  VolumeImageViewer
} from './viewer.js'
import {
  OpticalPath
} from './opticalPath.js'
import {
  Segment
} from './segment.js'

/**
 * Namespace for annotations of DICOM Micrsocopy Bulk Simple Annotations
 * instances.
 *
 * @namespace annotation
 */
const annotation = {
  AnnotationGroup
}

/**
 * Namespace for the viewer.
 *
 * @namespace api
 * @deprecated use the viewer namespace instead
 */
const api = {
  VLWholeSlideMicroscopyImageViewer: VolumeImageViewer
}

/**
 * Namespace for the viewer.
 *
 * @namespace viewer
 */
const viewer = {
  LabelImageViewer,
  OverviewImageViewer,
  VolumeImageViewer
}

/**
 * Namespace for parameter mappings of DICOM Parametric Map instances.
 *
 * @namespace mapping
 */
const mapping = {
  ParameterMapping
}

/**
 * Namespace for working with DICOM Metadata.
 *
 * @namespace metadata
 */
const metadata = {
  formatMetadata,
  groupMonochromeInstances,
  groupColorInstances,
  MicroscopyBulkSimpleAnnotations,
  ParametricMap,
  Segmentation,
  VLWholeSlideMicroscopyImage,
  Comprehensive3DSR
}

/**
 * Namespace for color.
 *
 * @namespace color
 */
const color = {
  ColormapNames,
  createColormap,
  PaletteColorLookupTable,
  buildPaletteColorLookupTable
}

/**
 * Namespace for optical paths.
 *
 * @namespace opticalPath
 */
const opticalPath = {
  OpticalPath
}

/**
 * Namespace for 3-dimensional spatial coordinates (SCOORD3D).
 *
 * @namespace scoord3d
 */
const scoord3d = {
  Point,
  Multipoint,
  Polyline,
  Polygon,
  Ellipsoid,
  Ellipse
}

/**
 * Namespace for regions of interest (ROIs).
 *
 * @namespace roi
 */
const roi = {
  ROI
}

/**
 * Namespace for segments of DICOM Segmentation instances.
 *
 * @namespace segment
 */
const segment = {
  Segment
}

/**
 * Namespace for viewer events.
 *
 * @namespace events
 */
const events = {
  EVENTS
}

/**
 * Namespace for various utilities.
 *
 * @namespace utils
 */
const utils = {
  applyInverseTransform,
  applyTransform,
  buildInverseTransform,
  buildTransform,
  computeRotation,
  mapSlideCoordToPixelCoord,
  mapPixelCoordToSlideCoord
}

export {
  annotation,
  api,
  color,
  events,
  mapping,
  metadata,
  opticalPath,
  roi,
  scoord3d,
  segment,
  utils,
  viewer
}