Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
mirtk Namespace Reference

Namespaces

 ConvolutionFunction
 Voxel functions implementing convolution of an image with a discrete kernel.
 
 ForEachVoxelDomain
 
 InterpolationDomain
 
 MultipleVoxelTransformation
 
 NaryVoxelFunction
 
 TernaryVoxelFunction
 
 UnaryVoxelFunction
 

Classes

class  AdaptiveLineSearch
 
class  AddBSplineSVFFD
 Evaluate and add B-spline SV FFD at image voxels. More...
 
class  AddBSplineSVFFD3D
 Evaluate and add 3D B-spline SV FFD at image voxels. More...
 
class  AddDOFsOfBSplineSVFFD
 Add parameters of B-spline SV FFD. More...
 
class  AffineTransformation
 
class  AsConformalAsPossibleMapper
 
class  AuthalicSurfaceMapper
 
class  BalloonForce
 
class  BaseImage
 
struct  BinaryForEachVoxelBody
 
struct  BinaryForEachVoxelBody_1Const
 
struct  BinaryForEachVoxelBody_Const
 
struct  BinaryForEachVoxelIfBody
 
struct  BinaryForEachVoxelIfBody_1Const
 
struct  BinaryForEachVoxelIfBody_Const
 
class  blocked_range
 One-dimensional range. More...
 
class  blocked_range2d
 Two-dimensional range. More...
 
class  blocked_range3d
 Three-dimensional range. More...
 
class  BoundaryMapper
 
class  BoundarySegment
 
class  BoundarySegmentMapper
 
class  BoundarySegmentParameterizer
 
class  BoundaryToDiskMapper
 
class  BoundaryToPolygonMapper
 
class  BoundaryToSquareMapper
 
class  BrentLineSearch
 
class  BSpline
 
class  BSplineFreeFormTransformation3D
 
class  BSplineFreeFormTransformation4D
 
class  BSplineFreeFormTransformationStatistical
 
class  BSplineFreeFormTransformationSV
 
class  BSplineFreeFormTransformationTD
 
class  BSplineInterpolateImageFunction
 
class  BSplineInterpolateImageFunction2D
 
class  BSplineInterpolateImageFunction3D
 
class  BSplineInterpolateImageFunction4D
 
class  CellDataFilter
 
class  CharbonnierErrorFunction
 
class  ChordLengthBoundarySegmentParameterizer
 
class  ChordLengthSurfaceMapper
 
class  Cifstream
 
class  CityBlockDistanceTransform
 
class  CloseCellData
 
class  ClosePointData
 
class  ClosestCell
 
class  ClosestPoint
 
class  ClosestPointLabel
 
class  Closing
 
class  Cofstream
 
class  CompareIndicesOfArrayByDecreasingValue
 Compare functor used to sort array indices by decreasing element attribute. More...
 
class  CompareIndicesOfArrayByIncreasingValue
 Compare functor used to sort array indices increasing element attribute. More...
 
class  Configurable
 
class  ConformalSurfaceFlattening
 
class  ConjugateGradientDescent
 
class  ConnectedComponents
 
class  ConstExtrapolateImageFunction
 
class  ConstExtrapolateImageFunctionWithPeriodicTime
 
class  ConstGenericImageIterator
 
class  ConstImageIterator
 
class  CosineOfNormalizedGradientField
 
class  CSplineInterpolateImageFunction
 
class  CSplineInterpolateImageFunction2D
 
class  CSplineInterpolateImageFunction3D
 
class  CSplineInterpolateImageFunction4D
 
class  CubicBSplineConvolution
 
class  CubicBSplineInterpolateImageFunction
 
class  CubicBSplineInterpolateImageFunction2D
 
class  CubicBSplineInterpolateImageFunction3D
 
class  CubicBSplineInterpolateImageFunction4D
 
class  CurrentsDistance
 
class  CurvatureConstraint
 
class  DataFidelity
 
class  DeformableSurfaceDebugger
 
class  DeformableSurfaceLogger
 
class  DeformableSurfaceModel
 
class  DifferenceOfCompositionLieBracketImageFilter3D
 
class  DilateCellData
 
class  DilatePointData
 
class  Dilation
 
class  DisplacementToVelocityField
 
class  DisplacementToVelocityFieldBCH
 
class  DistanceErrorFunction
 
struct  double2x2
 2x2 double-precision matrix More...
 
struct  double3x3
 3x3 double-precision matrix More...
 
struct  double3x4
 3x4 double-precision coordinate transformation matrix More...
 
struct  double4x4
 4x4 double-precision matrix More...
 
class  Downsampling
 
class  EdgeConnectivity
 
class  EdgeIterator
 
class  EdgeTable
 
class  EnergyTerm
 
class  EnergyThreshold
 
class  ErodeCellData
 
class  ErodePointData
 
class  Erosion
 
class  EulerMethod
 
class  EulerMethodWithDamping
 
class  EulerMethodWithMomentum
 
class  EvaluateBSplineSVFFD
 Evaluate B-spline SV FFD at image voxels. More...
 
class  EvaluateBSplineSVFFD3D
 Evaluate B-spline SV FFD at image voxels. More...
 
class  EvaluateGlobalSVFFD
 Evaluate global SV FFD at image voxels of vector field. More...
 
class  EvaluateGlobalSVFFD3D
 Evaluate global SV FFD at image voxels of 3D vector field. More...
 
class  EventDelegate
 
class  ExternalForce
 
class  ExtrapolateImageFunction
 
class  FastCubicBSplineInterpolateImageFunction
 
class  FastCubicBSplineInterpolateImageFunction2D
 
class  FastCubicBSplineInterpolateImageFunction3D
 
class  FastCubicBSplineInterpolateImageFunction4D
 
class  FastLinearImageGradientFunction
 
class  FastLinearImageGradientFunction2D
 
class  FastLinearImageGradientFunction3D
 
class  FiducialMatch
 
class  FiducialRegistrationError
 
class  FixedBoundarySurfaceMapper
 
struct  float2x2
 2x2 single-precision matrix More...
 
struct  float3x3
 3x3 single-precision matrix More...
 
struct  float3x4
 3x4 single-precision coordinate transformation matrix More...
 
struct  float4x4
 4x4 single-precision matrix More...
 
class  FluidFreeFormTransformation
 
struct  ForEachVoxelBody
 
struct  ForEachVoxelIfBody
 
class  FreeBoundarySurfaceMapper
 
class  FreeFormTransformation
 
class  FreeFormTransformation3D
 
class  FreeFormTransformation4D
 
class  FreeFormTransformationEmbeddedRungeKutta
 
class  FreeFormTransformationExplicitRungeKutta
 
class  FreeFormTransformationIntegrationRK4
 Classical Runge-Kutta method. More...
 
class  FreeFormTransformationIntegrationRKBS23
 Bogacki-Shampine method of order 3(2) More...
 
class  FreeFormTransformationIntegrationRKCK45
 Cash-Karp method of order 5(4) More...
 
class  FreeFormTransformationIntegrationRKDP45
 Dormand–Prince method of order 5(4) More...
 
class  FreeFormTransformationIntegrationRKE1
 Forward Euler method. More...
 
class  FreeFormTransformationIntegrationRKE2
 Modified Euler method (Heun's method, explicit midpoint rule) More...
 
class  FreeFormTransformationIntegrationRKEH12
 Euler-Heun method of order 2(1) More...
 
class  FreeFormTransformationIntegrationRKF45
 Fehlberg method of order 5(4) More...
 
class  FreeFormTransformationIntegrationRKH2
 Improved Euler method (Heun's method, explicit trapezoidal rule) More...
 
class  FreeFormTransformationRungeKutta
 
class  FuzzyCorrespondence
 
class  GaussCurvatureConstraint
 
class  GaussianBlurring
 
class  GaussianBlurring2D
 
class  GaussianBlurring4D
 
class  GaussianBlurringWithPadding
 
class  GaussianBlurringWithPadding2D
 
class  GaussianErrorFunction
 
class  GaussianInterpolateImageFunction
 
class  GaussianInterpolateImageFunction2D
 
class  GaussianInterpolateImageFunction3D
 
class  GaussianInterpolateImageFunction4D
 
class  GaussianPyramidFilter
 
class  GenericBSplineInterpolateImageFunction
 
class  GenericBSplineInterpolateImageFunction2D
 
class  GenericBSplineInterpolateImageFunction3D
 
class  GenericBSplineInterpolateImageFunction4D
 
class  GenericConstExtrapolateImageFunction
 
class  GenericConstExtrapolateImageFunctionWithPeriodicTime
 
class  GenericCSplineInterpolateImageFunction
 
class  GenericCSplineInterpolateImageFunction2D
 
class  GenericCSplineInterpolateImageFunction3D
 
class  GenericCSplineInterpolateImageFunction4D
 
class  GenericCubicBSplineInterpolateImageFunction
 
class  GenericCubicBSplineInterpolateImageFunction2D
 
class  GenericCubicBSplineInterpolateImageFunction3D
 
class  GenericCubicBSplineInterpolateImageFunction4D
 
class  GenericExtrapolateImageFunction
 
class  GenericFastCubicBSplineInterpolateImageFunction
 
class  GenericFastCubicBSplineInterpolateImageFunction2D
 
class  GenericFastCubicBSplineInterpolateImageFunction3D
 
class  GenericFastCubicBSplineInterpolateImageFunction4D
 
class  GenericFastLinearImageGradientFunction
 
class  GenericFastLinearImageGradientFunction2D
 
class  GenericFastLinearImageGradientFunction3D
 
class  GenericGaussianInterpolateImageFunction
 
class  GenericGaussianInterpolateImageFunction2D
 
class  GenericGaussianInterpolateImageFunction3D
 
class  GenericGaussianInterpolateImageFunction4D
 
class  GenericImage
 
class  GenericImageGradientFunction
 
class  GenericImageIterator
 
class  GenericInterpolateImageFunction
 
class  GenericLinearImageGradientFunction
 
class  GenericLinearImageGradientFunction2D
 
class  GenericLinearImageGradientFunction3D
 
class  GenericLinearInterpolateImageFunction
 
class  GenericLinearInterpolateImageFunction2D
 
class  GenericLinearInterpolateImageFunction3D
 
class  GenericLinearInterpolateImageFunction4D
 
class  GenericMirrorExtrapolateImageFunction
 
class  GenericNearestNeighborExtrapolateImageFunction
 
class  GenericNearestNeighborInterpolateImageFunction
 
class  GenericRegistrationDebugger
 
class  GenericRegistrationFilter
 
class  GenericRegistrationLogger
 
class  GenericRepeatExtrapolateImageFunction
 
class  GenericSincInterpolateImageFunction
 
class  GenericSincInterpolateImageFunction2D
 
class  GenericSincInterpolateImageFunction3D
 
class  GenericSincInterpolateImageFunction4D
 
class  GenericSparseMatrix
 
class  GIPLImageReader
 
class  GIPLImageWriter
 
class  GradientDescent
 
class  GradientFieldSimilarity
 
class  GradientImageFilter
 
class  HarmonicSurfaceMapper
 
class  HarmonicTetrahedralMeshMapper
 
class  HashImage
 
class  HessianImageFilter
 
class  Histogram1D
 
class  Histogram2D
 
class  HistogramImageSimilarity
 
class  HistogramMatching
 
class  HomogeneousTransformation
 
class  HomogeneousTransformationIterator
 
struct  ImageAttributes
 
class  ImageChannel
 
class  ImageCovariance
 
class  ImageEdgeDistance
 
class  ImageEdgeForce
 
class  ImageFrame
 
class  ImageFunction
 
class  ImageGradientFunction
 
class  ImageIterator
 
class  ImageReader
 
class  ImageReaderFactory
 
class  ImageRegion
 
class  ImageSequence
 
class  ImageSimilarity
 
class  ImageSurfaceStatistics
 
class  ImageToImage
 
class  ImageTransformation
 
class  ImageTransformationCache
 
class  ImageWriter
 
class  ImageWriterFactory
 
class  ImplicitSurfaceDistance
 
class  ImplicitSurfaceForce
 
class  Indent
 
class  IndexExtrapolateImageFunction
 
class  InexactLineSearch
 
class  InflationForce
 
class  InflationStoppingCriterion
 
class  IntensityCorrelationRatioXY
 
class  IntensityCorrelationRatioYX
 
class  IntensityCrossCorrelation
 
class  InternalForce
 
class  InterpolateImageFunction
 
class  IntrinsicLeastAreaDistortionSurfaceMapper
 
class  IntrinsicLeastEdgeLengthDistortionSurfaceMapper
 
class  IntrinsicSurfaceMapper
 
class  InverseAffineTransformation
 
struct  Iteration
 
class  JacobianConstraint
 
class  JointImageEntropy
 
class  LabelConsistency
 
class  LeastSquaresConformalSurfaceMapper
 
class  LieBracketImageFilter
 
class  LieBracketImageFilter2D
 
class  LieBracketImageFilter3D
 
class  LimitedMemoryBFGSDescent
 
class  LinearElasticityConstraint
 
class  LinearFixedBoundarySurfaceMapper
 
class  LinearFreeFormTransformation3D
 
class  LinearFreeFormTransformation4D
 
class  LinearFreeFormTransformationTD
 
class  LinearImageGradientFunction
 
class  LinearImageGradientFunction2D
 
class  LinearImageGradientFunction3D
 
class  LinearInterpolateImageFunction
 
class  LinearInterpolateImageFunction2D
 
class  LinearInterpolateImageFunction3D
 
class  LinearInterpolateImageFunction4D
 
class  LinearTetrahedralMeshMapper
 
class  LineSearch
 
struct  LineSearchStep
 Data of AcceptedStepEvent and RejectedStepEvent. More...
 
class  LocalOptimizer
 
class  LogJacobianConstraint
 
class  Mapping
 
class  Matlab
 
class  Matrix
 
class  MaximumCurvatureConstraint
 
class  MaxStepLineSearch
 
class  MeanCurvatureConstraint
 
class  MeanSquaredDisplacementError
 
class  MeanValueSurfaceMapper
 
class  MedianPointData
 
class  MeshFilter
 
class  MeshlessBiharmonicMap
 
class  MeshlessHarmonicMap
 
class  MeshlessHarmonicVolumeMapper
 
class  MeshlessMap
 
class  MeshlessVolumeMapper
 
class  MeshSmoothing
 
class  MetricDistortion
 
class  MinActiveStoppingCriterion
 
class  MirrorExtrapolateImageFunction
 
class  Module
 
class  MultiLevelFreeFormTransformation
 
class  MultiLevelStationaryVelocityTransformation
 
class  MultiLevelTransformation
 
class  MutualImageInformation
 
class  NearestNeighborExtrapolateImageFunction
 
class  NearestNeighborInterpolateImageFunction
 
class  NearOptimalIntrinsicSurfaceMapper
 
class  NegJacobianConstraint
 
class  NeighborhoodOffsets
 
class  NiftiImage
 
struct  NiftiImageInfo
 
class  NiftiImageReader
 
class  NiftiImageWriter
 
struct  NonaryForEachVoxelBody
 
struct  NonaryForEachVoxelBody_1Const
 
struct  NonaryForEachVoxelBody_2Const
 
struct  NonaryForEachVoxelBody_3Const
 
struct  NonaryForEachVoxelBody_4Const
 
struct  NonaryForEachVoxelBody_5Const
 
struct  NonaryForEachVoxelBody_6Const
 
struct  NonaryForEachVoxelBody_7Const
 
struct  NonaryForEachVoxelBody_8Const
 
struct  NonaryForEachVoxelBody_Const
 
struct  NonaryForEachVoxelIfBody
 
struct  NonaryForEachVoxelIfBody_1Const
 
struct  NonaryForEachVoxelIfBody_2Const
 
struct  NonaryForEachVoxelIfBody_3Const
 
struct  NonaryForEachVoxelIfBody_4Const
 
struct  NonaryForEachVoxelIfBody_5Const
 
struct  NonaryForEachVoxelIfBody_6Const
 
struct  NonaryForEachVoxelIfBody_7Const
 
struct  NonaryForEachVoxelIfBody_8Const
 
struct  NonaryForEachVoxelIfBody_Const
 
class  NonSelfIntersectionConstraint
 
class  NonSymmetricWeightsSurfaceMapper
 
class  NormalForce
 
class  NormalizedGradientFieldSimilarity
 
class  NormalizedIntensityCrossCorrelation
 
class  NormalizedMutualImageInformation
 
class  Object
 
class  ObjectFactory
 
class  ObjectiveFunction
 
class  Observable
 
class  Observer
 
struct  OctaryForEachVoxelBody
 
struct  OctaryForEachVoxelBody_1Const
 
struct  OctaryForEachVoxelBody_2Const
 
struct  OctaryForEachVoxelBody_3Const
 
struct  OctaryForEachVoxelBody_4Const
 
struct  OctaryForEachVoxelBody_5Const
 
struct  OctaryForEachVoxelBody_6Const
 
struct  OctaryForEachVoxelBody_7Const
 
struct  OctaryForEachVoxelBody_Const
 
struct  OctaryForEachVoxelIfBody
 
struct  OctaryForEachVoxelIfBody_1Const
 
struct  OctaryForEachVoxelIfBody_2Const
 
struct  OctaryForEachVoxelIfBody_3Const
 
struct  OctaryForEachVoxelIfBody_4Const
 
struct  OctaryForEachVoxelIfBody_5Const
 
struct  OctaryForEachVoxelIfBody_6Const
 
struct  OctaryForEachVoxelIfBody_7Const
 
struct  OctaryForEachVoxelIfBody_Const
 
class  OpenCellData
 
class  OpenPointData
 
class  PartialAffineTransformation
 
class  PartialBSplineFreeFormTransformationSV
 
class  PartialMultiLevelStationaryVelocityTransformation
 
class  PeakSignalToNoiseRatio
 
class  PeronaMalikErrorFunction
 
class  PGMImageReader
 
class  PGMImageWriter
 
class  PiecewiseLinearMap
 
class  Plane
 
class  PNGImageWriter
 
class  Point
 
class  PointCorrespondence
 
class  PointCorrespondenceDistance
 
class  PointDataFilter
 
class  PointLocator
 
class  PointSamples
 
class  PointSet
 
class  PointSetDistance
 
class  PointSetForce
 
class  Polyhedron
 
class  Polynomial
 
class  QuadraticCurvatureConstraint
 
struct  QuaternaryForEachVoxelBody
 
struct  QuaternaryForEachVoxelBody_1Const
 
struct  QuaternaryForEachVoxelBody_2Const
 
struct  QuaternaryForEachVoxelBody_3Const
 
struct  QuaternaryForEachVoxelBody_Const
 
struct  QuaternaryForEachVoxelIfBody
 
struct  QuaternaryForEachVoxelIfBody_1Const
 
struct  QuaternaryForEachVoxelIfBody_2Const
 
struct  QuaternaryForEachVoxelIfBody_3Const
 
struct  QuaternaryForEachVoxelIfBody_Const
 
struct  QuinaryForEachVoxelBody
 
struct  QuinaryForEachVoxelBody_1Const
 
struct  QuinaryForEachVoxelBody_2Const
 
struct  QuinaryForEachVoxelBody_3Const
 
struct  QuinaryForEachVoxelBody_4Const
 
struct  QuinaryForEachVoxelBody_Const
 
struct  QuinaryForEachVoxelIfBody
 
struct  QuinaryForEachVoxelIfBody_1Const
 
struct  QuinaryForEachVoxelIfBody_2Const
 
struct  QuinaryForEachVoxelIfBody_3Const
 
struct  QuinaryForEachVoxelIfBody_4Const
 
struct  QuinaryForEachVoxelIfBody_Const
 
class  RadialErrorFunction
 
class  RegisteredImage
 
class  RegisteredPointSet
 
class  RegisteredSurface
 
class  RegistrationEnergy
 
class  RegistrationEnergyParser
 
class  RegistrationFilter
 
class  RepeatExtrapolateImageFunction
 
class  RepulsiveForce
 
class  Resampling
 
class  ResamplingWithPadding
 
class  RigidTransformation
 
class  RobustClosestPoint
 
class  RobustPointMatch
 
class  ScalarFunction
 
class  ScalarFunctionToImage
 
class  ScalarGaussian
 
class  ScalingAndSquaring
 
struct  SenaryForEachVoxelBody
 
struct  SenaryForEachVoxelBody_1Const
 
struct  SenaryForEachVoxelBody_2Const
 
struct  SenaryForEachVoxelBody_3Const
 
struct  SenaryForEachVoxelBody_4Const
 
struct  SenaryForEachVoxelBody_5Const
 
struct  SenaryForEachVoxelBody_Const
 
struct  SenaryForEachVoxelIfBody
 
struct  SenaryForEachVoxelIfBody_1Const
 
struct  SenaryForEachVoxelIfBody_2Const
 
struct  SenaryForEachVoxelIfBody_3Const
 
struct  SenaryForEachVoxelIfBody_4Const
 
struct  SenaryForEachVoxelIfBody_5Const
 
struct  SenaryForEachVoxelIfBody_Const
 
class  SeparableConvolution
 
struct  SeptenaryForEachVoxelBody
 
struct  SeptenaryForEachVoxelBody_1Const
 
struct  SeptenaryForEachVoxelBody_2Const
 
struct  SeptenaryForEachVoxelBody_3Const
 
struct  SeptenaryForEachVoxelBody_4Const
 
struct  SeptenaryForEachVoxelBody_5Const
 
struct  SeptenaryForEachVoxelBody_6Const
 
struct  SeptenaryForEachVoxelBody_Const
 
struct  SeptenaryForEachVoxelIfBody
 
struct  SeptenaryForEachVoxelIfBody_1Const
 
struct  SeptenaryForEachVoxelIfBody_2Const
 
struct  SeptenaryForEachVoxelIfBody_3Const
 
struct  SeptenaryForEachVoxelIfBody_4Const
 
struct  SeptenaryForEachVoxelIfBody_5Const
 
struct  SeptenaryForEachVoxelIfBody_6Const
 
struct  SeptenaryForEachVoxelIfBody_Const
 
class  ShapeBasedInterpolateImageFunction
 
class  ShapePreservingSurfaceMapper
 
class  SimilarityTransformation
 
class  Sinc
 
class  SincInterpolateImageFunction
 
class  SincInterpolateImageFunction2D
 
class  SincInterpolateImageFunction3D
 
class  SincInterpolateImageFunction4D
 
class  SmoothnessConstraint
 
class  SparsityConstraint
 
class  SpectralConformalSurfaceMapper
 
class  SpectralMatch
 
class  SphericalSurfaceMapper
 
struct  split
 Dummy type used to distinguish split constructor from copy constructor. More...
 
class  SpringForce
 
class  SquaredErrorFunction
 
class  StoppingCriterion
 
class  StretchingForce
 
class  Stripper
 
class  SubdividedBoundarySegmentParameterizer
 
class  SumOfSquaredIntensityDifferences
 
class  SurfaceBoundary
 
class  SurfaceCollisions
 
class  SurfaceConstraint
 
class  SurfaceCurvature
 
class  SurfaceDistance
 
class  SurfaceFilter
 
class  SurfaceForce
 
class  SurfaceMapper
 
class  SurfacePatches
 
class  SurfaceRemeshing
 
class  SymmetricWeightsSurfaceMapper
 
class  task_scheduler_init
 Helper for initialization of task scheduler. More...
 
struct  TernaryForEachVoxelBody
 
struct  TernaryForEachVoxelBody_1Const
 
struct  TernaryForEachVoxelBody_2Const
 
struct  TernaryForEachVoxelBody_Const
 
struct  TernaryForEachVoxelIfBody
 
struct  TernaryForEachVoxelIfBody_1Const
 
struct  TernaryForEachVoxelIfBody_2Const
 
struct  TernaryForEachVoxelIfBody_Const
 
class  TetrahedralMeshMapper
 
class  TopologyPreservationConstraint
 
class  Transformation
 
class  TransformationApproximationError
 
class  TransformationConstraint
 
class  TransformationJacobian
 
class  Triangle
 
struct  UnaryForEachVoxelBody
 
struct  UnaryForEachVoxelBody_Const
 
struct  UnaryForEachVoxelIfBody
 
struct  UnaryForEachVoxelIfBody_Const
 
class  UniformBoundarySegmentParameterizer
 
class  UniformSurfaceMapper
 
class  Vector
 
class  Vector3
 
struct  Vector3D
 
struct  Vector4D
 
struct  VectorND
 
class  VelocityToDisplacementField
 
class  VelocityToDisplacementFieldEuler
 
class  VelocityToDisplacementFieldSS
 
class  Version
 Software version object. More...
 
class  VolumeMapper
 
class  VolumePreservationConstraint
 
struct  VoxelCaster
 Auxiliary template class for partial voxel_cast specialization. More...
 
struct  VoxelFunction
 
struct  VoxelReduction
 

Typedefs

typedef GenericImage< BinaryPixel > BinaryImage
 Binary image as used for masks (0: off, otherwise: on)
 
typedef List< Pair< int, int > > EdgeList
 List of pairs of edge end point IDs.
 
typedef BaseImage Image
 Alternative/backwards compatible type name.
 
typedef Array< Pair< string, string > > ParameterList
 Ordered list of parameter name/value pairs.
 
typedef GenericSparseMatrix< float > SparseFloatMatrix
 Typically used template instantiations.
 
typedef SparseDoubleMatrix SparseMatrix
 Sparse matrix with default entry value type.
 
typedef GenericImage< double > WorldCoordsImage
 FIXME: Use double3 as voxel type instead.
 

Enumerations

enum  ByteOrder
 Byte order of each word in memory.
 
enum  ConnectedComponentsOrdering { CC_NoOrdering, CC_LargestFirst, CC_SmallestFirst }
 Enumeration of possible orderings of connected components. More...
 
enum  ConnectivityType
 Type of image connectivity, i.e., number of neighbors for each voxel.
 
enum  ConstraintMeasure {
  CM_Unknown = CM_Begin, CM_VolumePreservation = EM_VolumePreservation, CM_TopologyPreservation = EM_TopologyPreservation, CM_Sparsity = EM_Sparsity,
  CM_BendingEnergy = EM_BendingEnergy, CM_LinearElasticity = EM_LinearElasticity, CM_L0Norm = EM_L0Norm, CM_L1Norm = EM_L1Norm,
  CM_L2Norm = EM_L2Norm, CM_SqLogDetJac = EM_SqLogDetJac, CM_NegDetJac = EM_NegDetJac
}
 
enum  EnergyMeasure {
  EM_Unknown , EM_JE, EM_CC, EM_MI,
  EM_NMI, EM_SSD, EM_CR_XY, EM_CR_YX,
  EM_LC, EM_K, EM_ML, EM_NGF_COS,
  EM_NCC, EM_LNCC = EM_NCC, EM_CoVar, EM_PSNR ,
  EM_FRE, EM_CorrespondenceDistance, EM_CurrentsDistance, EM_VarifoldDistance ,
  EM_BalloonForce, EM_ImageEdgeForce, EM_ImageEdgeDistance, EM_ImplicitSurfaceDistance ,
  EM_MetricDistortion, EM_Stretching, EM_Curvature, EM_QuadraticCurvature,
  EM_GaussCurvature, EM_MeanCurvature, EM_MaximumCurvature, EM_NonSelfIntersection,
  EM_RepulsiveForce, EM_InflationForce, EM_SpringForce, EM_NormalForce ,
  EM_VolumePreservation, EM_TopologyPreservation, EM_Sparsity, EM_BendingEnergy,
  EM_LinearElasticity, EM_L0Norm, EM_L1Norm, EM_L2Norm,
  EM_SqLogDetJac, EM_NegDetJac , EM_MeanSquaredDisplacementError, EM_Last
}
 Enumeration of all available energy terms. More...
 
enum  ErrorType
 Enumeration of error types / exit codes.
 
enum  Event {
  AnyEvent, ModifiedEvent, StatusEvent, LogEvent,
  InitEvent, StartEvent, RestartEvent, EndEvent,
  FinishEvent, IterationEvent, IterationStartEvent, IterationEndEvent,
  RegisteredEvent, UnregisteredEvent, LineSearchStartEvent, LineSearchIterationStartEvent,
  LineSearchIterationEndEvent, LineSearchEndEvent, AcceptedStepEvent, RejectedStepEvent
}
 Events that can be observed. More...
 
enum  ExtensionMode {
  EXT_Default, EXT_None, EXT_Last, EXT_LastWithGz,
  EXT_LastWithoutGz, EXT_All
}
 Enumeration of file path extension retrival modes. More...
 
enum  ExternalForceTerm
 
enum  ExtrapolationMode
 Image extrapolation modes.
 
enum  FFDIntegrationMethod
 Enumeration of implemented numerical integration methods.
 
enum  FileOption { FO_Default, FO_ASCII, FO_Binary, FO_NoCompress }
 Enumeration of file type options. More...
 
enum  ImageDataType
 Enumeration of voxel data types.
 
enum  InterpolationMode
 Image interpolation modes.
 
enum  LineSearchStrategy { LS_None, LS_Adaptive, LS_Brent, LS_LinMin = LS_Brent }
 Enumeration of available line search strategies. More...
 
enum  MFFDMode {
  MFFD_Default, MFFD_None, MFFD_Sum, MFFD_Fluid,
  MFFD_LogSum
}
 Enumeration of available multi-level transformation modes. More...
 
enum  NiftiDataType
 NIfTI datatype codes.
 
enum  NiftiIntent
 NIfTI intent codes, to describe intended meaning of dataset contents.
 
enum  NiftiUnits {
  NIFTI_UNITS_UNKNOWN = 0, NIFTI_UNITS_METER = 1, NIFTI_UNITS_MM = 2, NIFTI_UNITS_MICRON = 3,
  NIFTI_UNITS_SEC = 8, NIFTI_UNITS_MSEC = 16, NIFTI_UNITS_USEC = 24, NIFTI_UNITS_HZ = 32,
  NIFTI_UNITS_PPM = 40, NIFTI_UNITS_RADS = 48
}
 
enum  NiftiXForm {
  NIFTI_XFORM_UNKNOWN = 0, NIFTI_XFORM_SCANNER_ANAT = 1, NIFTI_XFORM_ALIGNED_ANAT = 2, NIFTI_XFORM_TALAIRACH = 3,
  NIFTI_XFORM_MNI_152 = 4
}
 NIfTI xform codes to describe the "standard" coordinate system. More...
 
enum  OptimizationMethod { , OM_EulerMethod, OM_EulerMethodWithDamping, OM_EulerMethodWithMomentum }
 Enumeration of available optimization methods. More...
 
enum  PointSetDistanceMeasure
 
enum  SimilarityMeasure {
  SIM_Unknown = SIM_Begin, SIM_JE = EM_JE, SIM_CC = EM_CC, SIM_MI = EM_MI,
  SIM_NMI = EM_NMI, SIM_SSD = EM_SSD, SIM_CR_XY = EM_CR_XY, SIM_CR_YX = EM_CR_YX,
  SIM_LC = EM_LC, SIM_K = EM_K, SIM_ML = EM_ML, SIM_NGF_COS = EM_NGF_COS,
  SIM_NCC = EM_NCC, SIM_LNCC = EM_LNCC, SIM_CoVar = EM_CoVar, SIM_PSNR = EM_PSNR
}
 
enum  Status
 Enumeration of common states for entities such as objective function parameters.
 
enum  TimeFormat { TIME_FORMAT_UNITS, TIME_FORMAT_HHMMSS, TIME_FORMAT_H_MIN_SEC, TIME_FORMAT_MIN_SEC }
 
enum  TransformationModel {
  TM_Unknown, TM_Rigid, TM_Similarity, TM_Affine,
  TM_LinearFFD, TM_BSplineFFD, TM_BSplineStatFFD, TM_BSplineSVFFD,
  TM_BSplineTDFFD, TM_Last
}
 
enum  TransformationType
 

Functions

void AddPoints (PointSet &oset, vtkPointSet *iset)
 
void AffineParametersToMatrix (double tx, double ty, double tz, double rx, double ry, double rz, double sx, double sy, double sz, double sxy, double sxz, double syz, Matrix &m)
 
Matrix AffineParametersToMatrix (double tx, double ty, double tz, double rx, double ry, double rz, double sx, double sy, double sz, double sxy, double sxz, double syz)
 
void AffineParametersToMatrix (double tx, double ty, double tz, double rx, double ry, double rz, double sx, double sy, double sz, Matrix &m)
 
Matrix AffineParametersToMatrix (double tx, double ty, double tz, double rx, double ry, double rz, double sx, double sy, double sz)
 
template<class Type >
void Allocate (Type *&matrix, int n)
 Allocate 1D array.
 
template<class Type >
Type * Allocate (int n)
 Allocate 1D array.
 
template<class Type >
void Allocate (Type **&matrix, int x, int y, Type *data=nullptr)
 Allocate 2D array stored in contiguous memory block.
 
template<typename Type >
Type ** Allocate (int x, int y, Type *data=nullptr)
 Allocate 2D array stored in contiguous memory block.
 
template<class Type >
void Allocate (Type ***&matrix, int x, int y, int z, Type *data=nullptr)
 Allocate 3D array stored in contiguous memory block.
 
template<typename Type >
Type *** Allocate (int x, int y, int z, Type *data=nullptr)
 Allocate 3D array stored in contiguous memory block.
 
template<class Type >
void Allocate (Type ****&matrix, int x, int y, int z, int t, Type *data=nullptr)
 Allocate 4D array stored in contiguous memory block.
 
template<typename Type >
Type **** Allocate (int x, int y, int z, int t, Type *data=nullptr)
 Allocate 4D array stored in contiguous memory block.
 
Matrix ApproximateAffineMatrix (const PointSet &target, const PointSet &source, const Vector &weight)
 
Matrix ApproximateAffineMatrix (const PointSet &target, const PointSet &source)
 
double Area (vtkPolyData *, bool per_cell=false)
 Area of surface mesh.
 
double Area (vtkSmartPointer< vtkPolyData > surface, bool per_cell=false)
 Area of surface mesh.
 
double Area (vtkSmartPointer< vtkPointSet >)
 Area of point set surface.
 
MIRTKCU_API bool AreEqual (double a, double b, double tol=1e-12)
 Determine equality of two floating point numbers.
 
MIRTKCU_API bool AreEqualOrNaN (double a, double b, double tol=1e-12)
 Determine equality of two floating point numbers including check if both are NaN.
 
double AverageEdgeLength (vtkSmartPointer< vtkPoints >, const EdgeTable &)
 Determine average edge length of point set given a precomputed edge table.
 
double AverageEdgeLength (vtkSmartPointer< vtkPointSet >)
 Determine average edge length of point set.
 
double AverageInterval (const OrderedSet< double > &values)
 Get average interval between consecutive values of an ordered set.
 
string BaseName (const char *)
 Get file name of file path incl. file extension.
 
string BaseName (const string &)
 Get file name of file path incl. file extension.
 
Matrix BiInvariantMean (int n, const Matrix *matrices, const double *weights=NULL, int niter=20, double tol=1e-12, const Matrix *mu0=NULL)
 
template<class T >
Array< T >::iterator BinarySearch (Array< T > &values, const T &value)
 Find value in sorted Array using binary search.
 
template<class T >
Array< T >::const_iterator BinarySearch (const Array< T > &values, const T &value)
 Find value in sorted Array using binary search.
 
template<class T , class Compare >
Array< T >::iterator BinarySearch (Array< T > &values, const T &value, Compare comp)
 Find value in sorted Array using binary search with custom comparator.
 
template<class T , class Compare >
Array< T >::const_iterator BinarySearch (const Array< T > &values, const T &value, Compare comp)
 Find value in sorted Array using binary search with custom comparator.
 
EdgeList BoundaryEdges (vtkDataSet *)
 Get list of all boundary edges.
 
EdgeList BoundaryEdges (vtkDataSet *, const EdgeTable &)
 Get list of all boundary edges.
 
UnorderedSet< int > BoundaryPoints (vtkDataSet *, const EdgeTable *=nullptr)
 Get IDs of end points of boundary edges.
 
Array< Array< int > > BoundarySegments (vtkDataSet *, const EdgeTable *=nullptr)
 Get connected boundary segments as (closed) line strips.
 
template<class Type >
void CAllocate (Type *&matrix, int n, const Type &init=Type())
 Allocate 1D array and initialize it.
 
template<class Type >
Type * CAllocate (int n, const Type *init=nullptr)
 Allocate 1D array and initialize it.
 
template<class Type >
void CAllocate (Type **&matrix, int x, int y, const Type &init=Type())
 Allocate 2D array stored in contiguous memory block.
 
template<typename Type >
Type ** CAllocate (int x, int y, const Type *init=nullptr)
 Allocate 2D array stored in contiguous memory block and initialize it.
 
template<class Type >
void CAllocate (Type ***&matrix, int x, int y, int z, const Type &init=Type())
 Allocate 3D array stored in contiguous memory block.
 
template<typename Type >
Type *** CAllocate (int x, int y, int z, const Type *init=nullptr)
 Allocate 3D array stored in contiguous memory block and initialize it.
 
template<class Type >
void CAllocate (Type ****&matrix, int x, int y, int z, int t, const Type &init=Type())
 Allocate 4D array stored in contiguous memory block and initialize it.
 
template<typename Type >
Type **** CAllocate (int x, int y, int z, int t, const Type *init=nullptr)
 Allocate 4D array stored in contiguous memory block and initialize it.
 
string CamelCaseToPrettyParameterName (const string &s)
 
void Center (vtkSmartPointer< vtkPointSet > pointset)
 Translate point set such that center is at origin.
 
MIRTKCU_API double clamp (double f, double a, double b)
 Clamp the value v to be in the range [a, b].
 
double ComputeArea (vtkCell *cell)
 
template<class TReal >
void ComputeBSplineIndicesAndWeights (double x, double y, int spline_degree, int xIndex [6], int yIndex [6], TReal xWeight[6], TReal yWeight[6])
 Compute indices and weights required for 2D B-spline interpolation.
 
template<class TReal >
void ComputeBSplineIndicesAndWeights (double x, double y, double z, int spline_degree, int xIndex [6], int yIndex [6], int zIndex [6], TReal xWeight[6], TReal yWeight[6], TReal zWeight[6])
 Compute indices and weights required for 3D B-spline interpolation.
 
template<class TReal >
void ComputeBSplineIndicesAndWeights (double x, double y, double z, double t, int spline_degree, int xIndex [6], int yIndex [6], int zIndex [6], int tIndex[6], TReal xWeight[6], TReal yWeight[6], TReal zWeight[6], TReal tWeight[6])
 Compute indices and weights required for 4D B-spline interpolation.
 
bool ComputeTangents (const double n[3], double e1[3], double e2[3])
 
bool ComputeTangents (const double n[3], double e1[3], double e2[3], double e3[3], double e4[3])
 Compute 4 (8) equally spaced tangent vectors (angular sampling of 45 degrees)
 
double ComputeVolume (vtkCell *cell)
 
bool Contains (const ParameterList &params, string name)
 Whether parameter is in parameters list.
 
template<class TData >
void ConvertToCubicBSplineCoefficients (GenericImage< TData > &image, int l)
 Convert 3D floating point scalar or vector image to cubic spline coefficients.
 
template<class TData >
void ConvertToCubicBSplineCoefficients (GenericImage< TData > &image)
 Convert 4D floating point scalar or vector image to cubic spline coefficients.
 
template<class TData >
void ConvertToSplineCoefficients (int degree, GenericImage< TData > &image, int k, int l)
 Convert 2D floating point scalar or vector image to spline coefficients.
 
template<class TData >
void ConvertToSplineCoefficients (int degree, GenericImage< TData > &image, int l)
 Convert 3D floating point scalar or vector image to spline coefficients.
 
template<class TData >
void ConvertToSplineCoefficients (int degree, GenericImage< TData > &image)
 Convert 4D floating point scalar or vector image to spline coefficients.
 
vtkSmartPointer< vtkPolyData > ConvexHull (vtkSmartPointer< vtkPointSet > pointset, int levels=3)
 
const Version current_version (MIRTK_VERSION_MAJOR, MIRTK_VERSION_MINOR, MIRTK_VERSION_PATCH)
 Current software version.
 
vtkSmartPointer< vtkPolyData > DataSetSurface (vtkSmartPointer< vtkDataSet > dataset, bool passPtIds=false, bool passCellIds=false)
 
template<typename Type >
void Deallocate (Type *&p)
 Deallocate 1D array.
 
template<class Type >
void Deallocate (Type **&matrix, void *data=NULL)
 
template<class Type >
void Deallocate (Type ***&matrix, void *data=NULL)
 
template<class Type >
void Deallocate (Type ****&matrix, void *data=NULL)
 
template<class T >
Array< int > DecreasingOrder (const Array< T > &values)
 Get permutation of array indices corresponding to sorted order of values.
 
int DeepCopyArrayUsingCaseInsensitiveName (vtkDataSetAttributes *dst, vtkDataSetAttributes *src, const char *name)
 
const char * DefaultExtension (vtkDataSet *)
 Default extension for given data set.
 
InterpolationMode DefaultInterpolationMode ()
 Get default interpolation mode.
 
template<typename Type >
void Delete (Type *&p)
 Delete object.
 
int Dimension (vtkDataSet *)
 Determine dimension of data set.
 
string Directory (const char *)
 Get directory part of file path.
 
string Directory (const string &)
 Get directory part of file path.
 
void EdgeLengthNormalDistribution (vtkSmartPointer< vtkPoints > points, const EdgeTable &edgeTable, double &mean, double &sigma)
 
void EdgeLengthNormalDistribution (vtkSmartPointer< vtkPointSet > pointset, double &mean, double &sigma)
 
Vector EdgeLengths (vtkSmartPointer< vtkPoints >, const EdgeTable &)
 Compute edge lengths of point set given a precomputed edge table.
 
double EdgeLengthToTriangleArea (double l)
 Calculate are of triangle with given edge length.
 
string ElapsedTimeToString (double t, TimeUnit units=TIME_IN_SECONDS, TimeFormat fmt=TIME_FORMAT_HHMMSS, int w=0, char c=' ', bool left=false)
 
int EulerCharacteristic (vtkDataSet *dataset, const EdgeTable &, int *npoints=nullptr, int *nedges=nullptr, int *nfaces=nullptr)
 Euler characeteristic, i.e., V - E + F.
 
int EulerCharacteristic (vtkDataSet *dataset, int *npoints=nullptr, int *nedges=nullptr, int *nfaces=nullptr)
 Euler characeteristic, i.e., V - E + F.
 
template<class VoxelType >
void Exp (GenericImage< VoxelType > *v)
 Compute exponential map of given velocity field.
 
string Extension (const char *, ExtensionMode=EXT_Default)
 Get file name extension in lower case incl. leading dot ('.')
 
string Extension (const string &, ExtensionMode=EXT_Default)
 Get file name extension in lower case incl. leading dot ('.')
 
ExtrapolationMode ExtrapolationWithoutPeriodicTime (ExtrapolationMode m)
 Get corresponding extrapolation without periodic time.
 
ExtrapolationMode ExtrapolationWithPeriodicTime (ExtrapolationMode m)
 Get corresponding extrapolation with periodic time.
 
MIRTKCU_API double fdec (double f)
 
MIRTKCU_API double fdec (double f, double df)
 
MIRTKCU_API bool fequal (double a, double b, double tol=1e-12)
 
string FileName (const char *, ExtensionMode=EXT_Default)
 Get file name of file path excl. file extension.
 
string FileName (const string &, ExtensionMode=EXT_Default)
 Get file name of file path excl. file extension.
 
string FilePrefix (const char *, ExtensionMode=EXT_Default)
 Get file path excl. file extension.
 
string FilePrefix (const string &, ExtensionMode=EXT_Default)
 Get file path excl. file extension.
 
template<class TData >
void FillBackgroundBeforeConversionToSplineCoefficients (GenericImage< TData > &image)
 Fill background by front propagation of foreground.
 
MIRTKCU_API double finc (double f)
 
MIRTKCU_API double finc (double f, double df)
 
ParameterConstIterator Find (const ParameterList &params, string name)
 Find parameter in parameters list.
 
ParameterIterator Find (ParameterList &params, string name)
 Find parameter in parameters list.
 
template<class T >
Array< T >::iterator Find (Array< T > &values, const T &value)
 Find value in unsorted Array.
 
template<class T >
Array< T >::const_iterator Find (const Array< T > &values, const T &value)
 Find value in unsorted Array.
 
template<class T >
int FindIndex (const Array< T > &values, const T &value)
 Find value in unsorted Array.
 
Matrix FrechetMean (const Matrix *matrices, const double *weights, int n, int niter=20, double tol=1e-12, const Matrix *mu0=NULL)
 
Matrix FrechetMean (const Matrix *matrices, int n, int niter=20, double tol=1e-12, const Matrix *mu0=NULL)
 
template<>
bool FromString (const char *str, FFDIM &value)
 Convert FFD integration method string to enumeration value.
 
template<>
bool FromString (const char *str, vtkDataSetAttributes::AttributeTypes &type)
 Convert string to vtkDataSetAttributes::AttributeType.
 
template<>
bool FromString (const char *str, NiftiIntent &value)
 Convert string to NIfTI intent code.
 
template<typename T >
bool FromString (const char *str, T &value)
 Convert string to numeric value.
 
template<typename T >
bool FromString (const string &s, T &value)
 Convert string to numeric value.
 
template<>
bool FromString (const char *, ImageDataType &)
 Convert string to image data type enumeration value.
 
template<>
bool FromString (const char *str, bool &value)
 Convert string to boolean value.
 
template<>
bool FromString (const char *str, ConnectivityType &value)
 Convert string to image connectivity type.
 
template<>
bool FromString (const char *str, ConnectedComponentsOrdering &value)
 Convert string to connected components ordering.
 
bool FromString (const char *, NiftiUnits &)
 Convert string to NIfTI units code.
 
template<>
bool FromString (const char *str, float &value)
 Convert string to float value.
 
template<>
bool FromString (const char *str, double &value)
 Convert string to double value.
 
template<>
bool FromString (const char *str, enum ImplicitSurfaceForce::DistanceMeasureType &value)
 Convert string to implicit surface distance measure enumeration value.
 
template<>
bool FromString (const char *str, EnergyMeasure &value)
 Convert energy measure string to enumeration value.
 
double Genus (vtkDataSet *dataset, const EdgeTable &, int *npoints=nullptr, int *nedges=nullptr, int *nfaces=nullptr, int *nbounds=nullptr, int *ncomps=nullptr, int *euler=nullptr)
 Genus of surface mesh.
 
double Genus (vtkDataSet *dataset, int *npoints=nullptr, int *nedges=nullptr, int *nfaces=nullptr, int *nbounds=nullptr, int *ncomps=nullptr, int *euler=nullptr)
 Genus of surface mesh.
 
string Get (const ParameterList &params, string name)
 Get parameter value from parameters list.
 
vtkDataArray * GetArrayByCaseInsensitiveName (vtkDataSetAttributes *data, const char *name, int *loc=NULL)
 
ByteOrder GetByteOrder ()
 Get byte order of this system.
 
size_t GetCurrentRSS ()
 
string GetDate ()
 
string GetDateTime ()
 
void GetMinMaxEdgeLength (vtkSmartPointer< vtkPoints > points, const EdgeTable &edgeTable, double &min, double &max)
 
void GetMinMaxEdgeLength (vtkSmartPointer< vtkPointSet > pointset, double &min, double &max)
 
size_t GetPeakRSS ()
 
EdgeList GetPointEdges (const EdgeList &edges, int ptId)
 
string GetTime ()
 
string GetUser ()
 Get name of user executing this program.
 
template<class T >
MIRTKCU_API int iceil (T x)
 Round floating-point value to next greater integer and cast to int.
 
bool iequal (char const *a, char const *b)
 Case insensitive string comparison.
 
bool iequal (const string &a, char const *b)
 Case insensitive string comparison.
 
bool iequal (const char *a, const string &b)
 Case insensitive string comparison.
 
bool iequal (const string &a, const string &b)
 Case insensitive string comparison.
 
template<class T >
MIRTKCU_API int ifloor (T x)
 Round floating-point value to next smaller integer and cast to int.
 
vtkSmartPointer< vtkImageStencilData > ImageStencil (vtkSmartPointer< vtkImageData > image, vtkSmartPointer< vtkPointSet > pointset)
 Get inside surface image stencil.
 
void ImageStencilToMask (vtkSmartPointer< vtkImageStencilData > stencil, vtkSmartPointer< vtkImageData > image)
 
template<class T >
Array< int > IncreasingOrder (const Array< T > &values)
 Get permutation of array indices corresponding to sorted order of values.
 
void InitializeDeformableLibrary ()
 
void InitializeIOLibrary ()
 Initialize MIRTK IO library.
 
void InitializeNumericsLibrary ()
 
void InitializeRegistrationLibrary ()
 
void InitializeTransformationLibrary ()
 
template<class T >
ParameterListInsert (ParameterList &params, string name, T value)
 Insert/replace value into/in parameters list.
 
template<>
ParameterListInsert (ParameterList &params, string name, const char *value)
 Insert/replace string value into/in parameters list.
 
template<>
ParameterListInsert (ParameterList &params, string name, string value)
 Insert/replace string value into/in parameters list.
 
ParameterListInsert (ParameterList &params, const ParameterList &other, const char *prefix=NULL)
 Insert/replace values into/in parameters list.
 
InterpolationMode InterpolationWithoutPadding (InterpolationMode m)
 Get corresponding interpolation without padding.
 
InterpolationMode InterpolationWithPadding (InterpolationMode m)
 Get corresponding interpolation with padding.
 
template<class T >
UnorderedSet< T > Intersection (const UnorderedSet< T > &a, const UnorderedSet< T > &b)
 
template<class T >
MIRTKCU_API int iround (T x)
 Round floating-point value and cast to int.
 
bool IsCategoricalArrayName (const string &name)
 
bool IsDiffeo (TransformationModel model)
 Whether a given transformation model is diffeomorphic (velocity parameterization)
 
bool IsDiffeo (const Array< TransformationModel > &model)
 Whether any given transformation model is a diffeomorphic model.
 
MIRTKCU_API bool IsInf (double x)
 Check if floating point value represents infinity.
 
bool IsInteger (const char *str)
 Check if given string is an integer value.
 
bool IsInterpolationWithoutPadding (InterpolationMode m)
 Whether interpolation mode is "without padding".
 
bool IsInterpolationWithPadding (InterpolationMode m)
 Whether interpolation mode is "with padding".
 
bool IsLinear (TransformationModel model)
 Whether a given transformation model is linear.
 
bool IsLinear (const Array< TransformationModel > &model)
 Whether any given transformation model is linear.
 
bool IsLinearFFD (TransformationModel model)
 Whether a given transformation model is a FFD with a linear interpolation kernel.
 
bool IsLinearFFD (const Array< TransformationModel > &model)
 Whether any given transformation model is a FFD with a linear interpolation kernel.
 
MIRTKCU_API bool IsNaN (double x)
 Check if floating point value is not a number (NaN)
 
bool IsNonLinear (const Array< TransformationModel > &model)
 Whether any given transformation model is non-linear.
 
bool IsNumber (const char *str)
 Check if given string is a (floating point) number.
 
bool IsParallelOption (const char *)
 Check if given option is a parallelization option.
 
bool IsProfilingOption (const char *)
 Check if given option is a profiling option.
 
bool IsSpatioTemporal (TransformationModel model)
 Whether a given transformation model is 3D+t.
 
bool IsSpatioTemporal (const Array< TransformationModel > &model)
 Whether any given transformation model is 3D+t.
 
bool IsStandardOption (const char *)
 Check if given option is a standard option.
 
bool IsSurfaceMesh (vtkDataSet *)
 Determine whether a point set is a surface mesh.
 
bool IsTerminalOption (const char *)
 Check if given option is a terminal option.
 
bool IsTetrahedralMesh (vtkDataSet *)
 Check whether given point set is a tetrahedral mesh.
 
bool IsTransformation (const char *name)
 
bool IsTriangularMesh (vtkDataSet *)
 Check whether given point set is a triangular mesh.
 
template<typename T >
bool IsValueOfType (const char *str)
 Check if given string represents a value of the specified template type.
 
MIRTKCU_API bool IsZero (double a, double tol=1e-12)
 Determine equality of a floating point number with zero.
 
template<class VoxelType >
void Log (GenericImage< VoxelType > *d)
 Compute logarithmic map of displacement field.
 
Matrix LogEuclideanMean (int n, const Matrix *matrices, const double *weights=NULL)
 
MIRTKCU_API double1 make_double1 (float1 f)
 Create double scalar value.
 
MIRTKCU_API double2 make_double2 (double s)
 Create double 2D vector from scalar.
 
MIRTKCU_API double2 make_double2 (float2 f)
 Create double 2D vector from single-precision.
 
MIRTKCU_API double2 make_double2 (int2 i)
 Create double 2D vector from integer vector.
 
MIRTKCU_API double2 make_double2 (uint2 i)
 Create double 2D vector from integer vector.
 
MIRTKCU_API double3 make_double3 (double s)
 Create double 3D vector from scalar.
 
MIRTKCU_API double3 make_double3 (int3 i)
 Create double 3D vector from integer vector.
 
MIRTKCU_API double3 make_double3 (uint3 i)
 Create double 3D vector from integer vector.
 
MIRTKCU_API double3 make_double3 (float3 f)
 Create double 3D vector from single-precision.
 
MIRTKCU_API double4 make_double4 (double s)
 Create double 4D vector from scalar.
 
MIRTKCU_API double4 make_double4 (int4 i)
 Create double 4D vector from integer vector.
 
MIRTKCU_API double4 make_double4 (float4 f)
 Create double 4D vector from single-precision.
 
void MatrixToAffineParameters (const Matrix &m, double &tx, double &ty, double &tz, double &rx, double &ry, double &rz, double &sx, double &sy, double &sz, double &sxy, double &sxz, double &syz)
 
void MatrixToEulerAngles (const Matrix &m, double &rx, double &ry, double &rz)
 
void MatrixToRigidParameters (const Matrix &m, double &tx, double &ty, double &tz, double &rx, double &ry, double &rz)
 
double MaxEdgeLength (vtkSmartPointer< vtkPoints > points, const EdgeTable &edgeTable)
 
double MaxEdgeLength (vtkSmartPointer< vtkPointSet > pointset)
 
template<class T >
MaxElement (const Array< T > &values)
 Get maximum array element.
 
double MedianEdgeLength (vtkSmartPointer< vtkPoints >, const EdgeTable &)
 Determine median edge length of point set given a precomputed edge table.
 
double MedianEdgeLength (vtkSmartPointer< vtkPointSet >)
 Determine median edge length of point set.
 
template<class T >
MedianValue (const Array< T > &values)
 Get median value.
 
double MinEdgeLength (vtkSmartPointer< vtkPoints > points, const EdgeTable &edgeTable)
 
double MinEdgeLength (vtkSmartPointer< vtkPointSet > pointset)
 
template<class T >
MinElement (const Array< T > &values)
 Get minimum array element.
 
template<class T >
Pair< T, T > MinMaxElement (const Array< T > &values)
 Get minimum and maximum array element.
 
template<class BaseType , class ObjectType >
BaseType * New ()
 Default object creation function.
 
vtkSmartPointer< vtkDataArray > NewVtkDataArray (int type=VTK_VOID, int tuples=0, int comps=1, const char *name=nullptr)
 
vtkSmartPointer< vtkDataArray > NewVTKDataArray (int type=VTK_VOID)
 
vtkSmartPointer< vtkImageData > NewVtkMask (int nx, int ny, int nz)
 
template<class T >
T & NthElement (Array< T > &values, int n)
 
template<class T , class Compare >
T & NthElement (Array< T > &values, int n, Compare comp)
 
int NumberOfBoundarySegments (vtkDataSet *, const EdgeTable *=nullptr)
 Number of connected boundary components.
 
int NumberOfConnectedComponents (vtkDataSet *)
 Number of connected components.
 
int NumberOfEdges (vtkDataSet *, const EdgeTable *=nullptr)
 Number of edges.
 
int NumberOfEmptyCells (vtkDataSet *)
 Number of empty/deleted cells.
 
int NumberOfFaces (vtkDataSet *)
 Number of faces.
 
int NumberOfPoints (vtkDataSet *)
 Number of points.
 
TransformationJacobian operator* (TransformationJacobian &a, double s)
 Multiply transformation Jacobian and scalar.
 
TransformationJacobian operator* (double s, TransformationJacobian &a)
 Multiply transformation Jacobian and scalar.
 
TransformationJacobian operator* (Matrix &a, TransformationJacobian &b)
 Calculate product of 3x3 matrix and transformation Jacobian.
 
MIRTKCU_API uint3 operator* (uint3 idx, dim3 dim)
 Multiply blockIdx and blockDim.
 
MIRTKCU_API uint3 operator* (dim3 dim, uint3 idx)
 Multiply blockDim and blockIdx.
 
MIRTKCU_API float1 operator* (float1 v, float s)
 Compute product of 1D vector and scalar.
 
MIRTKCU_API float2x2 operator* (float2x2 m, float s)
 Compute product of 2x2 matrix and scalar.
 
MIRTKCU_API float2x2 operator* (float s, float2x2 m)
 Compute product of scalar and 2x2 matrix.
 
MIRTKCU_API float2 operator* (float2x2 m, float2 p)
 Compute product of 2x2 matrix and 2D column vector.
 
MIRTKCU_API float2 operator* (float2 p, float2x2 m)
 Compute product of 2D row vector and 2x2 matrix.
 
MIRTKCU_API float3x3 operator* (float3x3 m, float s)
 Compute product of 3x3 matrix and scalar.
 
MIRTKCU_API float3x3 operator* (float s, float3x3 m)
 Compute product of scalar and 3x3 matrix.
 
MIRTKCU_API float3 operator* (float3x3 m, float3 p)
 Compute product of 3x3 matrix and 3D column vector.
 
MIRTKCU_API float3 operator* (float3 p, float3x3 m)
 Compute product of 3D row vector and 3x3 matrix.
 
MIRTKCU_API float3x4 operator* (float3x4 m, float s)
 Compute product of 3x4 matrix and scalar.
 
MIRTKCU_API float3x4 operator* (float s, float3x4 m)
 Compute product of scalar and 3x4 matrix.
 
MIRTKCU_API float2 operator* (float3x4 m, float2 p)
 Compute product of 3x4 coordinate transformation matrix and 2D point.
 
MIRTKCU_API float2 operator* (float3x4 m, int2 p)
 Compute product of 3x4 coordinate transformation matrix and 2D voxel.
 
MIRTKCU_API float2 operator* (float3x4 m, uint2 p)
 Compute product of 3x4 coordinate transformation matrix and 2D voxel.
 
MIRTKCU_API float3 operator* (float3x4 m, float3 p)
 Compute product of 3x4 coordinate transformation matrix and 3D point.
 
MIRTKCU_API float3 operator* (float3x4 m, int3 p)
 Compute product of 3x4 coordinate transformation matrix and 3D voxel.
 
MIRTKCU_API float3 operator* (float3x4 m, uint3 p)
 Compute product of 3x4 coordinate transformation matrix and 3D voxel.
 
MIRTKCU_API float4x4 operator* (float4x4 m, float s)
 Compute product of 4x4 matrix and scalar.
 
MIRTKCU_API float4x4 operator* (float s, float4x4 m)
 Compute product of scalar and 4x4 matrix.
 
MIRTKCU_API float2x2 operator* (float2x2 m, float2x2 n)
 Compute product of 2x2 matrices.
 
MIRTKCU_API float3x3 operator* (float3x3 m, float3x3 n)
 Compute product of 3x3 matrices.
 
MIRTKCU_API double1 operator* (double1 v, double s)
 Compute product of 1D vector and scalar.
 
MIRTKCU_API double1 operator* (double s, double1 a)
 Compute product of scalar and 1D vector.
 
MIRTKCU_API double2 operator* (double2 v, double s)
 Compute product of 2D vector and scalar.
 
MIRTKCU_API double2 operator* (double s, double2 a)
 Compute product of scalar and 2D vector.
 
MIRTKCU_API double3 operator* (double3 v, double s)
 Compute product of 3D vector and scalar.
 
MIRTKCU_API double3 operator* (double s, double3 a)
 Compute product of scalar and 3D vector.
 
MIRTKCU_API double4 operator* (double4 v, double s)
 Compute product of 4D vector and scalar.
 
MIRTKCU_API double4 operator* (double s, double4 a)
 Compute product of scalar and 4D vector.
 
MIRTKCU_API double1 operator* (double1 a, double1 b)
 Compute element-wise product of 1D vectors.
 
MIRTKCU_API double2 operator* (double2 a, double2 b)
 Compute element-wise product of 2D vectors.
 
MIRTKCU_API double3 operator* (double3 a, double3 b)
 Compute element-wise product of 3D vectors.
 
MIRTKCU_API double4 operator* (double4 a, double4 b)
 Compute element-wise product of 4D vectors.
 
MIRTKCU_API double2x2 operator* (double2x2 m, double s)
 Compute product of 2x2 matrix and scalar.
 
MIRTKCU_API double2x2 operator* (double s, double2x2 m)
 Compute product of scalar and 2x2 matrix.
 
MIRTKCU_API double2 operator* (double2x2 m, double2 p)
 Compute product of 2x2 matrix and 2D column vector.
 
MIRTKCU_API double2 operator* (double2 p, double2x2 m)
 Compute product of transpose of 2D row vector and 2x2 matrix.
 
MIRTKCU_API double3x3 operator* (double3x3 m, double s)
 Compute product of 3x3 matrix and scalar.
 
MIRTKCU_API double3x3 operator* (double s, double3x3 m)
 Compute product of scalar and 3x3 matrix.
 
MIRTKCU_API double3 operator* (double3x3 m, double3 p)
 Compute product of 3x3 matrix and 3D column vector.
 
MIRTKCU_API double3 operator* (double3 p, double3x3 m)
 Compute product of transpose of 3D row vector and 3x3 matrix.
 
MIRTKCU_API double3x4 operator* (double3x4 m, double s)
 Compute product of 3x4 matrix and scalar.
 
MIRTKCU_API double3x4 operator* (double s, double3x4 m)
 Compute product of scalar and 3x4 matrix.
 
MIRTKCU_API double4x4 operator* (double4x4 m, double s)
 Compute product of 4x4 matrix and scalar.
 
MIRTKCU_API double4x4 operator* (double s, double4x4 m)
 Compute product of scalar and 4x4 matrix.
 
MIRTKCU_API double2 operator* (double3x4 m, double2 p)
 Compute product of 3x4 coordinate transformation matrix and 2D point.
 
MIRTKCU_API double2 operator* (double3x4 m, int2 p)
 Compute product of 3x4 coordinate transformation matrix and 2D voxel.
 
MIRTKCU_API double2 operator* (double3x4 m, uint2 p)
 Compute product of 3x4 coordinate transformation matrix and 2D voxel.
 
MIRTKCU_API double3 operator* (double3x4 m, double3 p)
 Compute product of 3x4 coordinate transformation matrix and 3D point.
 
MIRTKCU_API double3 operator* (double3x4 m, int3 p)
 Compute product of 3x4 coordinate transformation matrix and 3D voxel.
 
MIRTKCU_API double3 operator* (double3x4 m, uint3 p)
 Compute product of 3x4 coordinate transformation matrix and 3D voxel.
 
MIRTKCU_API double2x2 operator* (double2x2 m, double2x2 n)
 Compute product of 2x2 matrices.
 
MIRTKCU_API double3x3 operator* (double3x3 m, double3x3 n)
 Compute product of 3x3 matrices.
 
MIRTKCU_API void operator*= (float2x2 &m, float s)
 Multiply 2x2 matrix by a scalar.
 
MIRTKCU_API void operator*= (float3x3 &m, float s)
 Multiply 3x3 matrix by a scalar.
 
MIRTKCU_API void operator*= (float3x4 &m, float s)
 Multiply 3x4 matrix by a scalar.
 
MIRTKCU_API void operator*= (float4x4 &m, float s)
 Multiply 4x4 matrix by a scalar.
 
MIRTKCU_API void operator*= (float2x2 &m, float2x2 n)
 Compute product of 2x2 matrices.
 
MIRTKCU_API void operator*= (float3x3 &m, float3x3 n)
 Compute product of 3x3 matrices.
 
MIRTKCU_API void operator*= (double1 &a, double s)
 Compute product of 1D vector and scalar.
 
MIRTKCU_API void operator*= (double2 &a, double s)
 Compute product of 2D vector and scalar.
 
MIRTKCU_API void operator*= (double3 &a, double s)
 Compute product of 3D vector and scalar.
 
MIRTKCU_API void operator*= (double4 &a, double s)
 Compute product of 4D vector and scalar.
 
MIRTKCU_API void operator*= (double1 &a, double1 b)
 Compute element-wise product of 1D vectors.
 
MIRTKCU_API void operator*= (double2 &a, double2 b)
 Compute element-wise product of 2D vectors.
 
MIRTKCU_API void operator*= (double3 &a, double3 b)
 Compute element-wise product of 3D vectors.
 
MIRTKCU_API void operator*= (double4 &a, double4 b)
 Compute element-wise product of 4D vectors.
 
MIRTKCU_API void operator*= (double2x2 &m, double s)
 Multiply 2x2 matrix by a scalar.
 
MIRTKCU_API void operator*= (double3x3 &m, double s)
 Multiply 3x3 matrix by a scalar.
 
MIRTKCU_API void operator*= (double3x4 &m, double s)
 Multiply 3x4 matrix by a scalar.
 
MIRTKCU_API void operator*= (double4x4 &m, double s)
 Multiply 4x4 matrix by a scalar.
 
MIRTKCU_API void operator*= (double2x2 &m, double2x2 n)
 Compute product of 2x2 matrices.
 
MIRTKCU_API void operator*= (double3x3 &m, double3x3 n)
 Compute product of 3x3 matrices.
 
TransformationJacobian operator+ (TransformationJacobian &a, TransformationJacobian &b)
 Calculate column-by-column sum of transformation Jacobian.
 
MIRTKCU_API float1 operator+ (float1 a, float1 b)
 Add two 1D vectors.
 
MIRTKCU_API float2x2 operator+ (float2x2 m, float s)
 Add scalar to 2x2 matrix.
 
MIRTKCU_API float3x3 operator+ (float3x3 m, float s)
 Add scalar to 3x3 matrix.
 
MIRTKCU_API float3x4 operator+ (float3x4 m, float s)
 Add scalar to 3x4 matrix.
 
MIRTKCU_API float4x4 operator+ (float4x4 m, float s)
 Add scalar to 4x4 matrix.
 
MIRTKCU_API float2x2 operator+ (float2x2 a, float2x2 b)
 Add two 2x2 matrices.
 
MIRTKCU_API float3x3 operator+ (float3x3 a, float3x3 b)
 Add two 3x3 matrices.
 
MIRTKCU_API float3x4 operator+ (float3x4 a, float3x4 b)
 Add two 3x4 matrices.
 
MIRTKCU_API float4x4 operator+ (float4x4 a, float4x4 b)
 Add two 4x4 matrices.
 
MIRTKCU_API double1 operator+ (double1 a, double s)
 Add scalar to 1D vector.
 
MIRTKCU_API double1 operator+ (double s, double1 a)
 Add scalar to 1D vector.
 
MIRTKCU_API double2 operator+ (double2 a, double s)
 Add scalar to 2D vector.
 
MIRTKCU_API double2 operator+ (double s, double2 a)
 Add scalar to 2D vector.
 
MIRTKCU_API double3 operator+ (double3 a, double s)
 Add scalar to 3D vector.
 
MIRTKCU_API double3 operator+ (double s, double3 a)
 Add scalar to 3D vector.
 
MIRTKCU_API double4 operator+ (double4 a, double s)
 Add scalar to 4D vector.
 
MIRTKCU_API double4 operator+ (double s, double4 a)
 Add scalar to 4D vector.
 
MIRTKCU_API double2x2 operator+ (double2x2 m, double s)
 Add scalar to 2x2 matrix.
 
MIRTKCU_API double3x3 operator+ (double3x3 m, double s)
 Add scalar to 3x3 matrix.
 
MIRTKCU_API double3x4 operator+ (double3x4 m, double s)
 Add scalar to 3x4 matrix.
 
MIRTKCU_API double4x4 operator+ (double4x4 m, double s)
 Add scalar to 4x4 matrix.
 
MIRTKCU_API double1 operator+ (double1 a, double1 b)
 Add two 1D vectors.
 
MIRTKCU_API double2 operator+ (double2 a, double2 b)
 Add two 2D vectors.
 
MIRTKCU_API double3 operator+ (double3 a, double3 b)
 Add two 3D vectors.
 
MIRTKCU_API double4 operator+ (double4 a, double4 b)
 Add two 4D vectors.
 
MIRTKCU_API double2x2 operator+ (double2x2 a, double2x2 b)
 Add two 2x2 matrices.
 
MIRTKCU_API double3x3 operator+ (double3x3 a, double3x3 b)
 Add two 3x3 matrices.
 
MIRTKCU_API double3x4 operator+ (double3x4 a, double3x4 b)
 Add two 3x4 matrices.
 
MIRTKCU_API double4x4 operator+ (double4x4 a, double4x4 b)
 Add two 4x4 matrices.
 
MIRTKCU_API void operator+= (float1 &a, float1 b)
 Add two 1D vectors.
 
MIRTKCU_API void operator+= (float2x2 &m, float s)
 Add scalar to 2x2 matrix.
 
MIRTKCU_API void operator+= (float3x3 &m, float s)
 Add scalar to 3x3 matrix.
 
MIRTKCU_API void operator+= (float3x4 &m, float s)
 Add scalar to 3x4 matrix.
 
MIRTKCU_API void operator+= (float4x4 &m, float s)
 Add scalar to 4x4 matrix.
 
MIRTKCU_API void operator+= (float2x2 &a, float2x2 b)
 Add two 2x2 matrices.
 
MIRTKCU_API void operator+= (float3x3 &a, float3x3 b)
 Add two 3x3 matrices.
 
MIRTKCU_API void operator+= (float3x4 &a, float3x4 b)
 Add two 3x4 matrices.
 
MIRTKCU_API void operator+= (float4x4 &a, float4x4 b)
 Add two 4x4 matrices.
 
MIRTKCU_API void operator+= (double1 &a, double s)
 Add scalar to 1D vector.
 
MIRTKCU_API void operator+= (double2 &a, double s)
 Add scalar to 2D vector.
 
MIRTKCU_API void operator+= (double3 &a, double s)
 Add scalar to 3D vector.
 
MIRTKCU_API void operator+= (double4 &a, double s)
 Add scalar to 4D vector.
 
MIRTKCU_API void operator+= (double2x2 &m, double s)
 Add scalar to 2x2 matrix.
 
MIRTKCU_API void operator+= (double3x3 &m, double s)
 Add scalar to 3x3 matrix.
 
MIRTKCU_API void operator+= (double3x4 &m, double s)
 Add scalar to 3x4 matrix.
 
MIRTKCU_API void operator+= (double4x4 &m, double s)
 Add scalar to 4x4 matrix.
 
MIRTKCU_API void operator+= (double1 &a, double1 b)
 Add two 1D vectors.
 
MIRTKCU_API void operator+= (double2 &a, double2 b)
 Add two 2D vectors.
 
MIRTKCU_API void operator+= (double3 &a, double3 b)
 Add two 3D vectors.
 
MIRTKCU_API void operator+= (double4 &a, double4 b)
 Add two 4D vectors.
 
MIRTKCU_API void operator+= (double2x2 &a, double2x2 b)
 Add two 2x2 matrices.
 
MIRTKCU_API void operator+= (double3x3 &a, double3x3 b)
 Add two 3x3 matrices.
 
MIRTKCU_API void operator+= (double3x4 &a, double3x4 b)
 Add two 3x4 matrices.
 
MIRTKCU_API void operator+= (double4x4 &a, double4x4 b)
 Add two 4x4 matrices.
 
MIRTKCU_API float1 operator- (float1 a, float1 b)
 Subtract two 1D vectors.
 
MIRTKCU_API float2x2 operator- (float2x2 m, float s)
 Subtract scalar from 2x2 matrix.
 
MIRTKCU_API float3x3 operator- (float3x3 m, float s)
 Subtract scalar from 3x3 matrix.
 
MIRTKCU_API float3x4 operator- (float3x4 m, float s)
 Subtract scalar from 3x4 matrix.
 
MIRTKCU_API float4x4 operator- (float4x4 m, float s)
 Subtract scalar from 4x4 matrix.
 
MIRTKCU_API float2x2 operator- (float2x2 a, float2x2 b)
 Subtract two 2x2 matrices.
 
MIRTKCU_API float3x3 operator- (float3x3 a, float3x3 b)
 Subtract two 3x3 matrices.
 
MIRTKCU_API float3x4 operator- (float3x4 a, float3x4 b)
 Subtract two 3x4 matrices.
 
MIRTKCU_API float4x4 operator- (float4x4 a, float4x4 b)
 Subtract two 4x4 matrices.
 
MIRTKCU_API double1 operator- (double1 a, double s)
 Subtract scalar from 1D vector.
 
MIRTKCU_API double1 operator- (double s, double1 a)
 Subtract 1D vector from scalar.
 
MIRTKCU_API double2 operator- (double2 a, double s)
 Subtract scalar from 2D vector.
 
MIRTKCU_API double2 operator- (double s, double2 a)
 Subtract 2D vector from scalar.
 
MIRTKCU_API double3 operator- (double3 a, double s)
 Subtract scalar from 3D vector.
 
MIRTKCU_API double3 operator- (double s, double3 a)
 Subtract 3D vector from scalar.
 
MIRTKCU_API double4 operator- (double4 a, double s)
 Subtract scalar from 4D vector.
 
MIRTKCU_API double4 operator- (double s, double4 a)
 Subtract 4D vector from scalar.
 
MIRTKCU_API double2x2 operator- (double2x2 m, double s)
 Subtract scalar from 2x2 matrix.
 
MIRTKCU_API double3x3 operator- (double3x3 m, double s)
 Subtract scalar from 3x3 matrix.
 
MIRTKCU_API double3x4 operator- (double3x4 m, double s)
 Subtract scalar from 3x4 matrix.
 
MIRTKCU_API double4x4 operator- (double4x4 m, double s)
 Subtract scalar from 4x4 matrix.
 
MIRTKCU_API double1 operator- (double1 a, double1 b)
 Subtract two 1D vectors.
 
MIRTKCU_API double2 operator- (double2 a, double2 b)
 Subtract two 2D vectors.
 
MIRTKCU_API double3 operator- (double3 a, double3 b)
 Subtract two 3D vectors.
 
MIRTKCU_API double4 operator- (double4 a, double4 b)
 Subtract two 4D vectors.
 
MIRTKCU_API double2x2 operator- (double2x2 a, double2x2 b)
 Subtract two 2x2 matrices.
 
MIRTKCU_API double3x3 operator- (double3x3 a, double3x3 b)
 Subtract two 3x3 matrices.
 
MIRTKCU_API double3x4 operator- (double3x4 a, double3x4 b)
 Subtract two 3x4 matrices.
 
MIRTKCU_API double4x4 operator- (double4x4 a, double4x4 b)
 Subtract two 4x4 matrices.
 
MIRTKCU_API void operator-= (float1 &a, float1 b)
 Subtract two 1D vectors.
 
MIRTKCU_API void operator-= (float2x2 &m, float s)
 Subtract scalar from 2x2 matrix.
 
MIRTKCU_API void operator-= (float3x3 &m, float s)
 Subtract scalar from 3x3 matrix.
 
MIRTKCU_API void operator-= (float3x4 &m, float s)
 Subtract scalar from 3x4 matrix.
 
MIRTKCU_API void operator-= (float4x4 &m, float s)
 Subtract scalar from 4x4 matrix.
 
MIRTKCU_API void operator-= (float2x2 &a, float2x2 b)
 Subtract two 2x2 matrices.
 
MIRTKCU_API void operator-= (float3x3 &a, float3x3 b)
 Subtract two 3x3 matrices.
 
MIRTKCU_API void operator-= (float3x4 &a, float3x4 b)
 Subtract two 3x4 matrices.
 
MIRTKCU_API void operator-= (float4x4 &a, float4x4 b)
 Subtract two 4x4 matrices.
 
MIRTKCU_API void operator-= (double1 &a, double s)
 Subtract scalar from 1D vector.
 
MIRTKCU_API void operator-= (double2 &a, double s)
 Subtract scalar from 2D vector.
 
MIRTKCU_API void operator-= (double3 &a, double s)
 Subtract scalar from 3D vector.
 
MIRTKCU_API void operator-= (double4 &a, double s)
 Subtract scalar from 4D vector.
 
MIRTKCU_API void operator-= (double2x2 &m, double s)
 Subtract scalar from 2x2 matrix.
 
MIRTKCU_API void operator-= (double3x3 &m, double s)
 Subtract scalar from 3x3 matrix.
 
MIRTKCU_API void operator-= (double3x4 &m, double s)
 Subtract scalar from 3x4 matrix.
 
MIRTKCU_API void operator-= (double4x4 &m, double s)
 Subtract scalar from 4x4 matrix.
 
MIRTKCU_API void operator-= (double1 &a, double1 b)
 Subtract two 1D vectors.
 
MIRTKCU_API void operator-= (double2 &a, double2 b)
 Subtract two 2D vectors.
 
MIRTKCU_API void operator-= (double3 &a, double3 b)
 Subtract two 3D vectors.
 
MIRTKCU_API void operator-= (double4 &a, double4 b)
 Subtract two 4D vectors.
 
MIRTKCU_API void operator-= (double2x2 &a, double2x2 b)
 Subtract two 2x2 matrices.
 
MIRTKCU_API void operator-= (double3x3 &a, double3x3 b)
 Subtract two 3x3 matrices.
 
MIRTKCU_API void operator-= (double3x4 &a, double3x4 b)
 Subtract two 3x4 matrices.
 
MIRTKCU_API void operator-= (double4x4 &a, double4x4 b)
 Subtract two 4x4 matrices.
 
MIRTKCU_API float2x2 operator/ (float2x2 m, float s)
 Compute division of 2x2 matrix by scalar.
 
MIRTKCU_API float3x3 operator/ (float3x3 m, float s)
 Compute division of 3x3 matrix by scalar.
 
MIRTKCU_API float3x4 operator/ (float3x4 m, float s)
 Compute division of 3x4 matrix by scalar.
 
MIRTKCU_API float4x4 operator/ (float4x4 m, float s)
 Compute division of 4x4 matrix by scalar.
 
MIRTKCU_API double1 operator/ (double1 v, double s)
 Compute division of 1D vector by scalar.
 
MIRTKCU_API double2 operator/ (double2 v, double s)
 Compute division of 2D vector by scalar.
 
MIRTKCU_API double3 operator/ (double3 v, double s)
 Compute division of 3D vector by scalar.
 
MIRTKCU_API double4 operator/ (double4 v, double s)
 Compute division of 4D vector by scalar.
 
MIRTKCU_API double2x2 operator/ (double2x2 m, double s)
 Compute division of 2x2 matrix by scalar.
 
MIRTKCU_API double3x3 operator/ (double3x3 m, double s)
 Compute division of 3x3 matrix by scalar.
 
MIRTKCU_API double3x4 operator/ (double3x4 m, double s)
 Compute division of 3x4 matrix by scalar.
 
MIRTKCU_API double4x4 operator/ (double4x4 m, double s)
 Compute division of 4x4 matrix by scalar.
 
MIRTKCU_API double1 operator/ (double1 a, double1 b)
 Compute element-wise division of 1D vectors.
 
MIRTKCU_API double2 operator/ (double2 a, double2 b)
 Compute element-wise division of 2D vectors.
 
MIRTKCU_API double3 operator/ (double3 a, double3 b)
 Compute element-wise division of 3D vectors.
 
MIRTKCU_API double4 operator/ (double4 a, double4 b)
 Compute element-wise division of 4D vectors.
 
MIRTKCU_API void operator/= (float2x2 &m, float s)
 Divide 2x2 matrix by a scalar.
 
MIRTKCU_API void operator/= (float3x3 &m, float s)
 Divide 3x3 matrix by a scalar.
 
MIRTKCU_API void operator/= (float3x4 &m, float s)
 Divide 3x4 matrix by a scalar.
 
MIRTKCU_API void operator/= (float4x4 &m, float s)
 Divide 4x4 matrix by a scalar.
 
MIRTKCU_API void operator/= (double1 &a, double s)
 Compute division of 1D vector by scalar.
 
MIRTKCU_API void operator/= (double2 &a, double s)
 Compute division of 2D vector by scalar.
 
MIRTKCU_API void operator/= (double3 &a, double s)
 Compute division of 3D vector by scalar.
 
MIRTKCU_API void operator/= (double4 &a, double s)
 Compute division of 4D vector by scalar.
 
MIRTKCU_API void operator/= (double2x2 &m, double s)
 Divide 2x2 matrix by a scalar.
 
MIRTKCU_API void operator/= (double3x3 &m, double s)
 Divide 3x3 matrix by a scalar.
 
MIRTKCU_API void operator/= (double3x4 &m, double s)
 Divide 3x4 matrix by a scalar.
 
MIRTKCU_API void operator/= (double4x4 &m, double s)
 Divide 4x4 matrix by a scalar.
 
MIRTKCU_API void operator/= (double1 &a, double1 b)
 Compute element-wise division of 1D vectors.
 
MIRTKCU_API void operator/= (double2 &a, double2 b)
 Compute element-wise division of 2D vectors.
 
MIRTKCU_API void operator/= (double3 &a, double3 b)
 Compute element-wise division of 3D vectors.
 
MIRTKCU_API void operator/= (double4 &a, double4 b)
 Compute element-wise division of 4D vectors.
 
MIRTKCU_API bool operator< (const float1 &a, const float1 &b)
 Check if 1D vector is lexicographically less than another.
 
MIRTKCU_API bool operator< (const float2 &a, const float2 &b)
 Check if 2D vector is lexicographically less than another.
 
MIRTKCU_API bool operator< (const float3 &a, const float3 &b)
 Check if 3D vector is lexicographically less than another.
 
MIRTKCU_API bool operator< (const float4 &a, const float4 &b)
 Check if 4D vector is lexicographically less than another.
 
MIRTKCU_API bool operator< (const double1 &a, const double1 &b)
 Check if 1D vector is lexicographically less than another.
 
MIRTKCU_API bool operator< (const double2 &a, const double2 &b)
 Check if 2D vector is lexicographically less than another.
 
MIRTKCU_API bool operator< (const double3 &a, const double3 &b)
 Check if 3D vector is lexicographically less than another.
 
MIRTKCU_API bool operator< (const double4 &a, const double4 &b)
 Check if 4D vector is lexicographically less than another.
 
MIRTKCU_API bool operator< (uint3 p, uint3 dim)
 Comparison operator for voxel coordinates with image dimensions.
 
ostream & operator<< (ostream &os, const Version &version)
 Write version to output stream.
 
Cofstreamoperator<< (Cofstream &, const PointSet &)
 Write point set to binary output file stream.
 
ostream & operator<< (ostream &, const PointSet &)
 Write point set to text output stream.
 
ostream & operator<< (ostream &, const Point &)
 Write point coordinates to output stream.
 
MIRTKCU_API bool operator== (const float1 &a, const float1 &b)
 Check two 1D vectors for equality.
 
MIRTKCU_API bool operator== (const float2 &a, const float2 &b)
 Check two 2D vectors for equality.
 
MIRTKCU_API bool operator== (const float3 &a, const float3 &b)
 Check two 3D vectors for equality.
 
MIRTKCU_API bool operator== (const float4 &a, const float4 &b)
 Check two 4D vectors for equality.
 
MIRTKCU_API bool operator== (const float3x3 &a, const float3x3 &b)
 Check two 3x3 matrices for equality.
 
MIRTKCU_API bool operator== (const float3x4 &a, const float3x4 &b)
 Check two 3x4 matrices for equality.
 
MIRTKCU_API bool operator== (const float4x4 &a, const float4x4 &b)
 Check two 4x4 matrices for equality.
 
MIRTKCU_API bool operator== (const double1 &a, const double1 &b)
 Check two 1D vectors for equality.
 
MIRTKCU_API bool operator== (const double2 &a, const double2 &b)
 Check two 2D vectors for equality.
 
MIRTKCU_API bool operator== (const double3 &a, const double3 &b)
 Check two 3D vectors for equality.
 
MIRTKCU_API bool operator== (const double4 &a, const double4 &b)
 Check two 4D vectors for equality.
 
MIRTKCU_API bool operator== (const double3x3 &a, const double3x3 &b)
 Check two 3x3 matrices for equality.
 
MIRTKCU_API bool operator== (const double3x4 &a, const double3x4 &b)
 Check two 3x4 matrices for equality.
 
MIRTKCU_API bool operator== (const double4x4 &a, const double4x4 &b)
 Check two 4x4 matrices for equality.
 
MIRTKCU_API bool operator== (uint3 p, unsigned int s)
 Component-wise comparison operator for voxel coordinates with scalar value.
 
MIRTKCU_API bool operator> (uint3 p, uint3 dim)
 Comparison operator for voxel coordinates with image dimensions.
 
MIRTKCU_API bool operator>= (uint3 p, uint3 dim)
 Comparison operator for voxel coordinates with image dimensions.
 
istream & operator>> (istream &is, Version &version)
 Read version from input stream.
 
Cifstreamoperator>> (Cifstream &, PointSet &)
 Read point set from binary input file stream.
 
istream & operator>> (istream &, PointSet &)
 Read point set from text input stream.
 
istream & operator>> (istream &, Point &)
 Read point coordiantes from input stream.
 
ImageAttributes OrthogonalFieldOfView (const ImageAttributes &)
 
void OrthoNormalize3x3 (Matrix &)
 Orthonormalize upper 3x3 matrix using stabilized Gram-Schmidt.
 
ImageAttributes OverallFieldOfView (const Array< ImageAttributes > &)
 
template<typename Type >
void PAllocate (Type **&matrix, int n)
 Allocate 1D array of pointers initialized to nullptr.
 
template<typename Type >
Type ** PAllocate (int n)
 Allocate 1D array of pointers initialized to nullptr.
 
template<class Range , class Body >
void parallel_for (const Range &range, const Body &body)
 parallel_for dummy template function which executes the body serially
 
template<class Range , class Body >
void parallel_reduce (const Range &range, Body &body)
 parallel_reduce dummy template function which executes the body serially
 
string ParameterUnits (const string &str, string *name=nullptr, const char *dflt="")
 
void ParseParallelOption (int &, int &, char *[])
 Parse parallelization option.
 
void ParseProfilingOption (int &, int &, char *[])
 Parse profiling option.
 
void ParseStandardOption (int &, int &, char *[])
 Parse standard option.
 
void ParseTerminalOption (int &, int &, char *[])
 Parse terminal option.
 
template<class T >
void PartialSort (Array< T > &values, int n)
 Sort first n values in array.
 
template<class T , class Compare >
void PartialSort (Array< T > &values, int n, Compare comp)
 Sort values in array using custom comparator.
 
template<class T >
Array< T > Permutation (const Array< int > &order, const Array< T > &values)
 
ImageAttributes PointSetDomain (vtkPointSet *data, double dx=-1, double dy=-1, double dz=-1)
 
ImageAttributes PointSetDomain (vtkPointSet *data, const Vector3D< double > &ds)
 
int PolyDataAttributeType (const char *type)
 
ImageAttributes PolyDataDomain (vtkPolyData *data, double dx=-1, double dy=-1, double dz=-1)
 
ImageAttributes PolyDataDomain (vtkPolyData *data, const Vector3D< double > &ds)
 
EdgeList PopPointEdges (EdgeList &edges, int ptId)
 
template<typename T >
std::ostream & Print (std::ostream &os, T value)
 Print single argument to output stream.
 
template<typename T , typename... Args>
std::ostream & Print (std::ostream &os, T value, Args... args)
 
void PrintElapsedTime (const char *, double, TimeUnit=TIME_IN_SECONDS)
 Print elapsed time for profiled section.
 
void PrintParallelOptions (ostream &)
 Print parallelization command-line options.
 
void PrintParameter (std::ostream &os, const char *name, const char *value)
 Write "<name> = <value>" configuration entry to output stream.
 
void PrintParameter (std::ostream &os, const char *name, const string &value)
 Write "<name> = <value>" configuration entry to output stream.
 
void PrintParameter (std::ostream &os, const string &name, const string &value)
 Write "<name> = <value>" configuration entry to output stream.
 
template<class TValue >
void PrintParameter (std::ostream &os, const char *name, const TValue &value)
 Write "<name> = <value>" configuration entry to output stream.
 
template<class TValue >
void PrintParameter (std::ostream &os, const string &name, const TValue &value)
 Write "<name> = <value>" configuration entry to output stream.
 
void PrintProfilingOptions (ostream &)
 Print profiling command-line options.
 
void PrintRevision (ostream &)
 Print software revision number (or version if not available) only.
 
void PrintTerminalOptions (ostream &)
 Print terminal command-line options.
 
void PrintVersion (ostream &, const char *=NULL)
 Print build time stamp as version string.
 
vtkSmartPointer< vtkPolyData > ReadDFS (const char *fname)
 
MIRTK_Common_DEPRECATED float ReadFloat (std::ifstream &)
 General routine to read float from a file stream.
 
MIRTK_Common_DEPRECATED int ReadInt (std::ifstream &)
 General routine to read float from a file stream.
 
vtkSmartPointer< vtkPolyData > ReadOFF (const char *fname)
 
vtkSmartPointer< vtkPointSet > ReadPointSet (const char *fname, bool exit_on_failure=true)
 
vtkSmartPointer< vtkPointSet > ReadPointSet (const char *fname, FileOption &fopt, bool exit_on_failure=true)
 
vtkSmartPointer< vtkPointSet > ReadPointSetTable (const char *fname, char sep=',', vtkPointSet *pointset=nullptr)
 
vtkSmartPointer< vtkPolyData > ReadPolyData (const char *fname, bool exit_on_failure=true)
 
vtkSmartPointer< vtkPolyData > ReadPolyData (const char *fname, FileOption &fopt, bool exit_on_failure=true)
 
MIRTK_Common_DEPRECATED char * ReadString (std::ifstream &)
 General routine to read list of char (string) from a file stream.
 
ParameterListRemove (ParameterList &params, string name)
 Remove parameter from parameters list.
 
template<class Type >
Type ** Reshape (Type **matrix, int x, int y)
 Reshape 2D array stored in contiguous memory block.
 
template<class Type >
Type *** Reshape (Type ***matrix, int x, int y, int z)
 Reshape 3D array stored in contiguous memory block.
 
template<class Type >
Type **** Reshape (Type ****matrix, int x, int y, int z, int t)
 Reshape 4D array stored in contiguous memory block.
 
void RigidParametersToMatrix (double tx, double ty, double tz, double cosrx, double cosry, double cosrz, double sinrx, double sinry, double sinrz, Matrix &m)
 
void RigidParametersToMatrix (double tx, double ty, double tz, double rx, double ry, double rz, Matrix &m)
 
Matrix RigidParametersToMatrix (double tx, double ty, double tz, double rx, double ry, double rz)
 
double RobustAverageEdgeLength (vtkSmartPointer< vtkPoints >, const EdgeTable &)
 
double RobustAverageEdgeLength (vtkSmartPointer< vtkPointSet >)
 Determine average edge length of point set.
 
void Scale (vtkSmartPointer< vtkPointSet > pointset, double)
 Scale point set around center.
 
template<typename T >
MIRTKCU_API int sgn (T val)
 Sign function - https://en.wikipedia.org/wiki/Sign_function.
 
template<class T >
void Sort (Array< T > &values)
 Sort values in array.
 
template<class T , class Compare >
void Sort (Array< T > &values, Compare comp)
 Sort values in array using custom comparator.
 
template<class TReal >
void SplinePoles (int degree, TReal pole[2], int &npoles)
 Recover spline poles from a lookup table.
 
Array< string > Split (string s, const char *d, int n=0, bool e=false, bool q=false)
 
Array< string > Split (string s, char d, int n=0, bool e=false, bool q=false)
 
Vector SquaredEdgeLengths (vtkSmartPointer< vtkPoints >, const EdgeTable &)
 Compute squared edge lengths of point set given a precomputed edge table.
 
double SShapedMembershipFunction (double x, double a, double b)
 
template<class T >
void StableSort (Array< T > &values)
 Sort values in array while preserving order of equal entries.
 
template<class T , class Compare >
void StableSort (Array< T > &values, Compare comp)
 Sort values in array while preserving order of equal entries.
 
string StandardUnits (const string &str)
 
void swap16 (char *, char *, long)
 Swap bytes of a single word.
 
void swap32 (char *, char *, long)
 Swap bytes of two word.
 
void swap64 (char *, char *, long)
 Swap bytes of four word.
 
vtkSmartPointer< vtkPointSet > Tetrahedralize (vtkSmartPointer< vtkPointSet >)
 Tetrahedralize the interior of a piecewise linear complex (PLC)
 
template<typename... Args>
void Throw (ErrorType err, const char *func, Args... args)
 
template<class VoxelType >
MIRTKCU_HOST_API float * to_float (const VoxelType *in, unsigned int N)
 Copy and cast image to single-precision floating point.
 
string ToLower (const string &)
 Convert string to lowercase letters.
 
string ToPrettyString (const EnergyMeasure &value, int w=0, char c=' ', bool left=true)
 Convert energy measure enumeration value to human-friendly descriptive string.
 
template<>
string ToString (const ErrorType &value, int w, char c, bool left)
 Convert error type to string.
 
template<>
string ToString (const FFDIM &m, int w, char c, bool left)
 Convert FFD integration method enumeration value to string.
 
template<>
string ToString (const NiftiIntent &value, int w, char c, bool left)
 Convert NIfTI intent code to string.
 
template<>
string ToString (const ImageDataType &, int, char, bool)
 Convert image data type enumeration value to string.
 
template<>
string ToString (const ConnectivityType &value, int w, char c, bool left)
 Convert image connectivity type to string.
 
template<>
string ToString (const vtkDataSetAttributes::AttributeTypes &type, int w, char c, bool left)
 Convert vtkDataSetAttributes::AttributeType to string.
 
template<>
string ToString (const ConnectedComponentsOrdering &value, int w, char c, bool left)
 Convert connected components ordering to string.
 
template<>
string ToString (const EnergyMeasure &value, int w, char c, bool left)
 Convert energy measure enumeration value to string.
 
template<typename T >
string ToString (const T &value, int w=0, char c=' ', bool left=false)
 Convert numeric value to string.
 
template<>
string ToString (const enum ImplicitSurfaceForce::DistanceMeasureType &value, int w, char c, bool left)
 Convert implicit surface distance measure enumeration value to string.
 
template<>
string ToString (const bool &value, int w, char c, bool left)
 Convert boolean value to string.
 
TransformationType ToTransformationType (TransformationModel model, const ImageAttributes &domain)
 
string ToUpper (const string &)
 Convert string to uppercase letters.
 
template<class T , class UnaryOperation >
void Transform (Array< T > &values, UnaryOperation op)
 Apply unary operation for each array element in-place.
 
void Transform (const Matrix &m, double x, double y, double z, double &mx, double &my, double &mz)
 Muliply point by homogeneous transformation matrix.
 
void Transform (const Matrix &m, double &x, double &y, double &z)
 Muliply point by homogeneous transformation matrix.
 
Point Transform (const Matrix &m, const Point &p)
 Muliply point by homogeneous transformation matrix.
 
void TransformVector (const Matrix &m, double x, double y, double z, double &mx, double &my, double &mz)
 Muliply vector by 3x3 transformation matrix.
 
void TransformVector (const Matrix &m, double &x, double &y, double &z)
 Muliply vector by 3x3 transformation matrix.
 
void TransformVector (const Matrix &m, Vector &v)
 Muliply vector by 3x3 transformation matrix.
 
Vector TransformVector (const Matrix &m, const Vector &v)
 Muliply vector by 3x3 transformation matrix.
 
MIRTKCU_API float2x2 transpose (float2x2 m)
 Transpose 2x2 matrix.
 
MIRTKCU_API float3x3 transpose (float3x3 m)
 Transpose 3x3 matrix.
 
MIRTKCU_API double2x2 transpose (double2x2 m)
 Transpose 2x2 matrix.
 
MIRTKCU_API double3x3 transpose (double3x3 m)
 Transpose 3x3 matrix.
 
vtkSmartPointer< vtkPolyData > Triangulate (vtkSmartPointer< vtkPolyData >)
 Triangulate surface mesh.
 
string Trim (const string &str, const string &what=" \\)
 
string TrimAll (const string &str, const string &what=" \\)
 
const char * umfpack_status_message (int status)
 Translate UMFPACK status code to message string.
 
template<class T >
UnorderedSet< T > Union (const UnorderedSet< T > &a, const UnorderedSet< T > &b)
 
string ValueUnits (const string &str, string *value=nullptr, const char *dflt="")
 
double Volume (vtkSmartPointer< vtkPolyData >)
 Get approximate volume enclosed by polygonal mesh.
 
string VtkAttributeTypeString (int type)
 Convert vtkDataSetAttributes::AttributeType to string.
 
string VtkDataTypeString (int type)
 Convert vtkDataSetAttributes::AttributeType to string.
 
vtkSmartPointer< vtkPointSet > WorldToImage (vtkSmartPointer< vtkPointSet > pointset, const BaseImage *image)
 Map point set points to voxel coordinates.
 
bool WriteDFS (const char *fname, vtkPolyData *polydata)
 
bool WriteOFF (const char *fname, vtkPolyData *polydata)
 
bool WritePointSet (const char *fname, vtkPointSet *pointset, FileOption fopt=FO_Default)
 
bool WritePointSetTable (const char *fname, vtkPointSet *pointset, char sep=',', bool ids=true, bool coords=true)
 
bool WritePolyData (const char *fname, vtkPolyData *polydata, FileOption fopt=FO_Default)
 
bool WriteTetGenNode (const char *fname, vtkPointSet *pointset)
 
bool WriteTetGenPoly (const char *fname, vtkPolyData *polydata, const PointSet *holes=nullptr)
 
bool WriteTetGenSMesh (const char *fname, vtkPolyData *polydata, const PointSet *holes=nullptr)
 

Variables

MIRTK_Common_EXPORT int debug
 
MIRTK_Common_EXPORT int debug_gpu
 Debugging level of GPU code.
 
MIRTK_Common_EXPORT int debug_time
 
MIRTK_Common_EXPORT TimeUnit debug_time_unit
 Time unit to use for output of time measurements.
 
MIRTK_Common_EXPORT const double deg_per_rad
 Degree per radian, i.e., \( 180 / \pi \).
 
MIRTK_Common_EXPORT const double inf
 Positive infinity.
 
MIRTK_Common_EXPORT const double nan
 Not A Number (NaN)
 
MIRTK_Common_EXPORT const char PATHSEP
 Path separating character.
 
MIRTK_Common_EXPORT const double pi
 Constant value of \( \pi \).
 
MIRTK_Common_EXPORT const double pi_half
 Constant value of \( \pi / 2 \).
 
MIRTK_Common_EXPORT const double rad_per_deg
 Radians per degree, i.e., \( \pi / 180 \).
 
MIRTK_Common_EXPORT bool stdout_color
 Whether to use color output to STDOUT.
 
MIRTK_Common_EXPORT int tbb_debug
 Debugging level of TBB code.
 
MIRTK_Common_EXPORT const double two_pi
 Constant value of \( 2\pi \).
 
MIRTK_Common_EXPORT bool use_gpu
 Enable/disable GPU acceleration.
 
MIRTK_Common_EXPORT int verbose
 Verbosity of output messages.
 
MIRTK_Common_EXPORT Version version
 Version to emulate.
 
MIRTK_Common_EXPORT const char * xreset
 Color escape sequences.
 

Detailed Description

These basic binary voxel functions can be used as VoxelFunc template parameter of the binary ForEachVoxel function templates as follows:

// Add one image to another in-place
GreyImage input (attr);
GreyImage output(attr);
// Set image in-place to maximum of both images
BinaryVoxelFunction::Max max;
ForEachVoxel(input, output, max);
BinaryVoxelFunction::Add add;
ParallelForEachVoxel(input, output, add);
// Compute sum-of-squared differences (SSD)
GreyImage target(attr);
GreyImage source(attr);
BinaryVoxelFunction::SSD ssd;
ForEachVoxel(target, source, ssd);
printf("SSD=%f\n", ssd.value);

multivariate gaussian probability distribution

Enumeration Type Documentation

§ ConnectedComponentsOrdering

Enumeration of possible orderings of connected components.

Enumerator
CC_NoOrdering 

No sorting of output components.

CC_LargestFirst 

Sort by decreasing size.

CC_SmallestFirst 

Sort by increasing size.

Definition at line 34 of file ConnectedComponents.h.

§ ConstraintMeasure

Enumeration of available transformation regularization terms

Note
This enumeration constains only a subset of all EnergyMeasure enumeration values, whereby the integer value of corresponding enumeration values is equal.
See also
EnergyMeasure
Enumerator
CM_Unknown 

Unknown/invalid regularizer.

CM_VolumePreservation 

Volume preservation constraint.

CM_TopologyPreservation 

Topology preservation constraint.

CM_Sparsity 

Default sparsity constraint.

CM_BendingEnergy 

Thin-plate spline bending energy.

CM_LinearElasticity 

Linear elastic energy.

CM_L0Norm 

Sparsity constraint based on l0-norm.

CM_L1Norm 

Sparsity constraint based on l1-norm.

CM_L2Norm 

Sparsity constraint based on l2-norm.

CM_SqLogDetJac 

Squared logarithm of the Jacobian determinant.

CM_NegDetJac 

Penalize negative Jacobian determinant.

Definition at line 37 of file ConstraintMeasure.h.

§ EnergyMeasure

Enumeration of all available energy terms.

Enumerator
EM_Unknown 

Unknown/invalid energy term.

EM_JE 

Joint entropy.

EM_CC 

Cross-correlation.

EM_MI 

Mutual information.

EM_NMI 

Normalized mutual information.

EM_SSD 

Sum of squared differences.

EM_CR_XY 

Correlation ratio.

EM_CR_YX 

Correlation ratio.

EM_LC 

Label consistency.

EM_K 

Kappa statistic.

EM_ML 

Maximum likelihood.

EM_NGF_COS 

Cosine of normalzed gradient field.

EM_NCC 

Normalized cross-correlation.

EM_LNCC 

Local normalized cross-correlation.

EM_CoVar 

Covariance.

EM_PSNR 

Peak signal-to-noise ratio.

EM_FRE 

Fiducial registration error (FRE) measure.

EM_CorrespondenceDistance 

Point correspondence distance measure.

EM_CurrentsDistance 

Distance measure based on currents representation.

EM_VarifoldDistance 

Distance measure based on varifold representation.

EM_BalloonForce 

Balloon/inflation force.

EM_ImageEdgeForce 

Image edge force.

EM_ImageEdgeDistance 

Image edge distance.

EM_ImplicitSurfaceDistance 

Implicit surface distance force.

EM_MetricDistortion 

Minimize metric distortion.

EM_Stretching 

Stretching force (rest edge length)

EM_Curvature 

Minimize curvature of point set surface.

EM_QuadraticCurvature 

Quadratic fit of neighor to tangent plane distance.

EM_GaussCurvature 

Gauss curvature constraint.

EM_MeanCurvature 

Mean curvature constraint.

EM_MaximumCurvature 

Maximum curvature constraint.

EM_NonSelfIntersection 

Repels too close non-neighboring triangles.

EM_RepulsiveForce 

Repels too close non-neighboring nodes.

EM_InflationForce 

Inflate point set surface.

EM_SpringForce 

Spring force.

EM_NormalForce 

Constant force in normal direction.

EM_VolumePreservation 

Volume preservation constraint.

EM_TopologyPreservation 

Topology preservation constraint.

EM_Sparsity 

Default sparsity constraint.

EM_BendingEnergy 

Thin-plate spline bending energy.

EM_LinearElasticity 

Linear elastic energy.

EM_L0Norm 

Sparsity constraint based on l0-norm.

EM_L1Norm 

Sparsity constraint based on l1-norm.

EM_L2Norm 

Sparsity constraint based on l2-norm.

EM_SqLogDetJac 

Squared logarithm of the Jacobian determinant.

EM_NegDetJac 

Penalise negative Jacobian determinant.

EM_MeanSquaredDisplacementError 

Mean squared deviation from given deformation.

EM_Last 

Number of enumeration values + 1.

Definition at line 31 of file EnergyMeasure.h.

§ Event

Events that can be observed.

Enumerator
AnyEvent 

Any event.

ModifiedEvent 

Observable has modified state/parameters.

StatusEvent 

Status message given as event data (const char *)

LogEvent 

Log message given as event data (const char *)

InitEvent 

Before initialization of filter execution.

StartEvent 

Start of filter execution (after initialization)

RestartEvent 

Restart of filter execution.

EndEvent 

End of filter execution (before finalization)

FinishEvent 

After finalization of filter execution.

IterationEvent 

Iteration with line search about to start.

IterationStartEvent 

Iteration started.

IterationEndEvent 

Iteration finished.

RegisteredEvent 

Observer has been registered.

UnregisteredEvent 

Observer has been unregistered.

LineSearchStartEvent 

Line search started.

LineSearchIterationStartEvent 

Line search iteration.

LineSearchIterationEndEvent 

Line search iteration.

LineSearchEndEvent 

Line search finished.

AcceptedStepEvent 

Accepted objective function value Event data is the new value as double

RejectedStepEvent 

Rejected objective function value Event data is the rejected value as double

Definition at line 32 of file Event.h.

§ ExtensionMode

Enumeration of file path extension retrival modes.

Enumerator
EXT_Default 

Default extension mode.

EXT_None 

No part of the file is considered to be an extension.

EXT_Last 

Last file extension only.

EXT_LastWithGz 

Last file extension possibly plus ".gz".

EXT_LastWithoutGz 

Last file extension with possibly ".gz" removed first.

EXT_All 

All file extensions, i.e., everything after first dot (besides leading dot of hidden files on Unix)

Definition at line 42 of file Path.h.

§ ExternalForceTerm

Enumeration of available external point set force terms

Note
This enumeration constains only a subset of all EnergyMeasure enumeration values, whereby the integer value of corresponding enumeration values is equal.
See also
EnergyMeasure

Definition at line 37 of file ExternalForceTerm.h.

§ FileOption

Enumeration of file type options.

Enumerator
FO_Default 

Default options.

FO_ASCII 

Uncompressed ASCII.

FO_Binary 

(Compressed) binary

FO_NoCompress 

Unompressed binary.

Definition at line 64 of file PointSetIO.h.

§ LineSearchStrategy

Enumeration of available line search strategies.

Enumerator
LS_None 

No line search.

LS_Adaptive 

Inexact line search with adaptive step length.

LS_Brent 

Numerical recipes linmin function using Brent's method.

LS_LinMin 

Alias for LS_Brent.

Definition at line 32 of file LineSearch.h.

§ MFFDMode

Enumeration of available multi-level transformation modes.

Enumerator
MFFD_Default 

Choose suitable default multi-level transformation model.

MFFD_None 

Use single transformation without additional global or local transformations.

MFFD_Sum 

One transformation for each resolution level with additive composition.

MFFD_Fluid 

One transformation for each resolution level with fluid composition.

MFFD_LogSum 

Additive multi-level stationary velocity field.

Definition at line 234 of file TransformationModel.h.

§ NiftiUnits

NIfTI units codes to describe the unit of measurement for each dimension of the dataset

Enumerator
NIFTI_UNITS_UNKNOWN 

NIFTI code for unspecified units.

NIFTI_UNITS_METER 

NIFTI code for meters.

NIFTI_UNITS_MM 

NIFTI code for millimeters.

NIFTI_UNITS_MICRON 

NIFTI code for micrometers.

NIFTI_UNITS_SEC 

NIFTI code for seconds.

NIFTI_UNITS_MSEC 

NIFTI code for milliseconds.

NIFTI_UNITS_USEC 

NIFTI code for microseconds.

NIFTI_UNITS_HZ 

NIFTI code for Hertz.

NIFTI_UNITS_PPM 

NIFTI code for ppm.

NIFTI_UNITS_RADS 

NIFTI code for radians per second.

Definition at line 118 of file NiftiImageInfo.h.

§ NiftiXForm

NIfTI xform codes to describe the "standard" coordinate system.

Enumerator
NIFTI_XFORM_UNKNOWN 

Arbitrary coordinates (Method 1)

NIFTI_XFORM_SCANNER_ANAT 

Scanner-based anatomical coordinates.

NIFTI_XFORM_ALIGNED_ANAT 

Coordinates aligned to another file's, or to anatomical "truth"

NIFTI_XFORM_TALAIRACH 

Coordinates aligned to Talairach- Tournoux Atlas; (0,0,0)=AC, etc.

NIFTI_XFORM_MNI_152 

MNI 152 normalized coordinates.

Definition at line 105 of file NiftiImageInfo.h.

§ OptimizationMethod

Enumeration of available optimization methods.

Enumerator
OM_EulerMethod 

Explicit Euler method for deformable surface models.

OM_EulerMethodWithDamping 

Explicit Euler method with momentum for deformable surface models.

OM_EulerMethodWithMomentum 

Explicit Euler method with momentum for deformable surface models.

Definition at line 33 of file OptimizationMethod.h.

§ PointSetDistanceMeasure

Enumeration of available point set distance measures

Note
This enumeration constains only a subset of all EnergyMeasure enumeration values, whereby the integer value of corresponding enumeration values is equal.
See also
EnergyMeasure

Definition at line 37 of file PointSetDistanceMeasure.h.

§ SimilarityMeasure

Enumeration of available similarity measures

Note
This enumeration constains only a subset of all EnergyMeasure enumeration values, whereby the integer value of corresponding enumeration values is equal.
See also
EnergyMeasure
Enumerator
SIM_Unknown 

Unknown/invalid image (dis-)similarity measure.

SIM_JE 

Joint entropy.

SIM_CC 

Cross-correlation.

SIM_MI 

Mutual information.

SIM_NMI 

Normalized mutual information.

SIM_SSD 

Sum of squared differences.

SIM_CR_XY 

Correlation ratio.

SIM_CR_YX 

Correlation ratio.

SIM_LC 

Label consistency.

SIM_K 

Kappa statistic.

SIM_ML 

Maximum likelihood.

SIM_NGF_COS 

Cosine of normalzed gradient field.

SIM_NCC 

Normalized cross-correlation.

SIM_LNCC 

Local normalized cross-correlation.

SIM_CoVar 

Covariance.

SIM_PSNR 

Peak signal-to-noise ratio.

Definition at line 37 of file SimilarityMeasure.h.

§ TimeFormat

Enumerator
TIME_FORMAT_UNITS 

Print elapsed time using time units.

TIME_FORMAT_HHMMSS 

Print elapsed time with format "HH:MM:SS".

TIME_FORMAT_H_MIN_SEC 

Print elapsed time with format "[H h] [M min] [S sec]".

TIME_FORMAT_MIN_SEC 

Print elapsed time with format "[M min] [S sec]".

Definition at line 54 of file Profiling.h.

§ TransformationModel

Enumeration of transformation models

A transformation model is implemented by one or more transformation classes and futhermore may be used to determine additional registration settings, such as hard and soft transformation constraints. Thus, the transformation model differs in semantics from the transformation type.

See also
TransformationType, ToTransformationType
Enumerator
TM_Unknown 

Unknown/invalid transformation model.

TM_Rigid 

Linear transformation with up to 6 DoFs (rotate, translate)

TM_Similarity 

Linear transformation with up to 7 DoFs (rotate, translate, global scale)

TM_Affine 

Linear transformation with up to 12 DoFs (rotate, translate, scale, skew)

TM_LinearFFD 

Displacement field with linear interpolation.

TM_BSplineFFD 

Displacement field with B-spline interpolation.

TM_BSplineStatFFD 

Displacement field with B-spline interpolation using a statistical model.

TM_BSplineSVFFD 

Stationary velocity field with B-spline interpolation.

TM_BSplineTDFFD 

Non-stationary velocity field with B-spline interpolation.

TM_Last 

Number of available transformation models + 1.

Definition at line 41 of file TransformationModel.h.

§ TransformationType

Enumeration of transformation types

Each transformation class has its own enumeration value which is written to the transformation file right after the magic number. Different versions are distinguished by different type IDs.

Enumeration values 50-60 were assigned to the refactored FFD types which store the control point data in an instance of GenericImage.

Enumeration values 70-80 were assigned to the refactored FFD types which store also the method used to extrapolate control point coefficients outside the finite discrete lattice on which the FFD is defined.

Attention
Do not change the enumeration value of existing entries as then already saved transformation files are not identified correctly. To yet allow a better ordering of the entries, the enumeration values are thus assigned explicitly, also to remind of this.

Definition at line 45 of file TransformationType.h.

Function Documentation

§ AddPoints()

void mirtk::AddPoints ( PointSet oset,
vtkPointSet *  iset 
)

Add points of vtkPointSet to mirtk::PointSet

Parameters
[out]osetPoint set to which the vtkPointSet points are added.
[in]isetVTK point set.

§ AffineParametersToMatrix() [1/4]

void mirtk::AffineParametersToMatrix ( double  tx,
double  ty,
double  tz,
double  rx,
double  ry,
double  rz,
double  sx,
double  sy,
double  sz,
double  sxy,
double  sxz,
double  syz,
Matrix m 
)

Construct 4x4 homogeneous coordinate transformation matrix from affine transformation parameters. The output transformation matrix is the composition of a shearing, followed by a scaling, followed by a rotation, followed by a translation, i.e.,

T = Translate * Rotate * Scale * Shear, where Rotate = (Rz Ry Rx)^T

Parameters
[in]txTranslation along x axis.
[in]tyTranslation along y axis.
[in]tzTranslation along z axis.
[in]rxRotation around x axis in radians.
[in]ryRotation around y axis in radians.
[in]rzRotation around z axis in radians.
[in]sxScaling of x axis (factor, not percentage).
[in]syScaling of y axis (factor, not percentage).
[in]szScaling of z axis (factor, not percentage).
[in]sxySkew between x and y axes in radians.
[in]sxzSkew between x and z axes in radians.
[in]syzSkew between y and z axes in radians.
[out]mHomogeneous transformation matrix.

§ AffineParametersToMatrix() [2/4]

Matrix mirtk::AffineParametersToMatrix ( double  tx,
double  ty,
double  tz,
double  rx,
double  ry,
double  rz,
double  sx,
double  sy,
double  sz,
double  sxy,
double  sxz,
double  syz 
)
inline

Construct 4x4 homogeneous coordinate transformation matrix from affine transformation parameters. The output transformation matrix is the composition a scaling, followed by a rotation, followed by a translation, i.e.,

T = Translate * Rotate * Scale, where Rotate = (Rz Ry Rx)^T

Parameters
[in]txTranslation along x axis.
[in]tyTranslation along y axis.
[in]tzTranslation along z axis.
[in]rxRotation around x axis in radians.
[in]ryRotation around y axis in radians.
[in]rzRotation around z axis in radians.
[in]sxScaling of x axis (factor, not percentage).
[in]syScaling of y axis (factor, not percentage).
[in]szScaling of z axis (factor, not percentage).
[in]sxySkew between x and y axes in radians.
[in]sxzSkew between x and z axes in radians.
[in]syzSkew between y and z axes in radians.
Returns
Homogeneous transformation matrix.

Definition at line 1415 of file Matrix.h.

§ AffineParametersToMatrix() [3/4]

void mirtk::AffineParametersToMatrix ( double  tx,
double  ty,
double  tz,
double  rx,
double  ry,
double  rz,
double  sx,
double  sy,
double  sz,
Matrix m 
)
inline

Construct 4x4 homogeneous coordinate transformation matrix from affine transformation parameters. The output transformation matrix is the composition a scaling, followed by a rotation, followed by a translation, i.e.,

T = Translate * Rotate * Scale, where Rotate = (Rz Ry Rx)^T

Parameters
[in]txTranslation along x axis.
[in]tyTranslation along y axis.
[in]tzTranslation along z axis.
[in]rxRotation around x axis in radians.
[in]ryRotation around y axis in radians.
[in]rzRotation around z axis in radians.
[in]sxScaling of x axis (factor, not percentage).
[in]syScaling of y axis (factor, not percentage).
[in]szScaling of z axis (factor, not percentage).
[out]mHomogeneous transformation matrix.

Definition at line 1441 of file Matrix.h.

§ AffineParametersToMatrix() [4/4]

Matrix mirtk::AffineParametersToMatrix ( double  tx,
double  ty,
double  tz,
double  rx,
double  ry,
double  rz,
double  sx,
double  sy,
double  sz 
)
inline

Construct 4x4 homogeneous coordinate transformation matrix from affine transformation parameters. The output transformation matrix is the composition a scaling, followed by a rotation, followed by a translation, i.e.,

T = Translate * Rotate * Scale, where Rotate = (Rz Ry Rx)^T

Parameters
[in]txTranslation along x axis.
[in]tyTranslation along y axis.
[in]tzTranslation along z axis.
[in]rxRotation around x axis in radians.
[in]ryRotation around y axis in radians.
[in]rzRotation around z axis in radians.
[in]sxScaling of x axis (factor, not percentage).
[in]syScaling of y axis (factor, not percentage).
[in]szScaling of z axis (factor, not percentage).
Returns
Homogeneous transformation matrix.

Definition at line 1465 of file Matrix.h.

§ ApproximateAffineMatrix() [1/2]

Matrix mirtk::ApproximateAffineMatrix ( const PointSet target,
const PointSet source,
const Vector weight 
)

Find affine transformation matrix which minimizes the mean squared distance between two given sets of corresponding points (e.g., landmarks, fiducial markers)

Parameters
[in]target(Transformed) Target point set.
[in]sourceFixed source point set.
[in]weightWeight of corresponding point pair. All correspondences are weighted equally if vector is empty.
Returns
Homogeneous transformation matrix of the target points.

§ ApproximateAffineMatrix() [2/2]

Matrix mirtk::ApproximateAffineMatrix ( const PointSet target,
const PointSet source 
)

Find affine transformation matrix which minimizes the mean squared distance between two given sets of corresponding points (e.g., landmarks, fiducial markers)

Parameters
[in]target(Transformed) Target point set.
[in]sourceFixed source point set.
Returns
Homogeneous transformation matrix of the target points.

§ BiInvariantMean()

Matrix mirtk::BiInvariantMean ( int  n,
const Matrix matrices,
const double *  weights = NULL,
int  niter = 20,
double  tol = 1e-12,
const Matrix mu0 = NULL 
)

Compute exponential barycenter / bi-invariant mean of transformation matrices

This function finds the exponential barycenter of a set of rigid/affine transformation matrices using a fixed point iteration (Gauss-Newton; Barycentric fixed point iteration on Lie groups).

\[ mu_{t+1} = mu_t \exp\left( \sum w_i \log\left( mu_t^{-1} matrices_i \right) \right) \]

See also
Arsigny and Pennec, Exponential Barycenters of the Canonical Cartan Connection and Invariant Means on Lie Groups, Matrix Information Geometry (2012)
Parameters
[in]nNumber of matrices.
[in]matricesTransformation matrices.
[in]weightsWeights of transformation matrices. Uniform weighting if NULL.
[in]niterMaximum number of fixed point iterations.
[in]tolTolerance of residual infinity norm.
[in]mu0Start value of fixed point iteration. First matrix if NULL.
Returns
Mean transformation matrix.

§ CamelCaseToPrettyParameterName()

string mirtk::CamelCaseToPrettyParameterName ( const string &  s)

Convert (upper) camel case string to space separated string

Parameters
[in]sCamel case string.
Returns
String starting with uppercase letter followed by lowercase letters only and a space character before each uppercase letter in the camel case string.

§ ComputeArea()

double mirtk::ComputeArea ( vtkCell *  cell)

Compute area of cell

Returns
Area of cell or NaN if cell type is not supported.

§ ComputeTangents()

bool mirtk::ComputeTangents ( const double  n[3],
double  e1[3],
double  e2[3] 
)
inline

Compute orthogonal vectors spanning the tangent plane of a cell

Parameters
[in]nCell normal vector.
[out]e1First normal vector in tangent plane.
[out]e2Second normal vector in tangent plane.
Returns
Whether tangent vectors are valid.

Definition at line 187 of file PointSetUtils.h.

§ ComputeVolume()

double mirtk::ComputeVolume ( vtkCell *  cell)

Compute volume of cell

Returns
Volume of cell or NaN if cell type is not supported.

§ ConvexHull()

vtkSmartPointer<vtkPolyData> mirtk::ConvexHull ( vtkSmartPointer< vtkPointSet >  pointset,
int  levels = 3 
)

Get convex hull of point set

Parameters
[in]pointsetInput point set.
[in]levelsParameter of vtkHull::AddRecursiveSpherePlanes.
Returns
Convex hull of input point set.

§ DataSetSurface()

vtkSmartPointer<vtkPolyData> mirtk::DataSetSurface ( vtkSmartPointer< vtkDataSet >  dataset,
bool  passPtIds = false,
bool  passCellIds = false 
)

Get boundary surface mesh

Parameters
[in]datasetDataset whose boundary surface is extracted.
[in]passPtIdsWhether to pass point array with IDs of points in dataset.
[in]passCellIdsWhether to pass cell array with IDs of cells in dataset.
Returns
Boundary surface mesh.

§ Deallocate() [1/3]

template<class Type >
void mirtk::Deallocate ( Type **&  matrix,
void *  data = NULL 
)
inline

Deallocate 2D array stored in contiguous memory block

Parameters
[in]matrixPreviously allocated array or NULL.
[in]dataContiguous memory used by this array, but managed separately. If not NULL, only the pointers in the array are deallocated, but not the data memory itself. Otherwise, also the contiguous data memory block is freed.

Definition at line 50 of file Deallocate.h.

§ Deallocate() [2/3]

template<class Type >
void mirtk::Deallocate ( Type ***&  matrix,
void *  data = NULL 
)
inline

Deallocate 3D array stored in contiguous memory block

Parameters
[in]matrixPreviously allocated array or NULL.
[in]dataContiguous memory used by this array, but managed separately. If not NULL, only the pointers in the array are deallocated, but not the data memory itself. Otherwise, also the contiguous data memory block is freed.

Definition at line 69 of file Deallocate.h.

§ Deallocate() [3/3]

template<class Type >
void mirtk::Deallocate ( Type ****&  matrix,
void *  data = NULL 
)
inline

Deallocate 4D array stored in contiguous memory block

Parameters
[in]matrixPreviously allocated array or NULL.
[in]dataContiguous memory used by this array, but managed separately. If not NULL, only the pointers in the array are deallocated, but not the data memory itself. Otherwise, also the contiguous data memory block is freed.

Definition at line 89 of file Deallocate.h.

§ DeepCopyArrayUsingCaseInsensitiveName()

int mirtk::DeepCopyArrayUsingCaseInsensitiveName ( vtkDataSetAttributes *  dst,
vtkDataSetAttributes *  src,
const char *  name 
)

Copy named data array from one dataset attributes to another

If an array with the given name exists in the destination dataset attributes, it's data is overridden using the vtkDataSetAttributes::DeepCopy function. Otherwise, a new array is added.

Parameters
dstDestination dataset attributes.
srcSource dataset attributes.
nameCase insensitive name of data array.
Returns
Index of array in destination or -1 if source array not found.

§ EdgeLengthNormalDistribution() [1/2]

void mirtk::EdgeLengthNormalDistribution ( vtkSmartPointer< vtkPoints >  points,
const EdgeTable edgeTable,
double &  mean,
double &  sigma 
)

Compute statistics of edge lengths

Parameters
[in]pointsPoints.
[in]edgeTableEdge table.
[out]meanAverage edge length.
[out]sigmaStandard deviation of edge length.

§ EdgeLengthNormalDistribution() [2/2]

void mirtk::EdgeLengthNormalDistribution ( vtkSmartPointer< vtkPointSet >  pointset,
double &  mean,
double &  sigma 
)

Compute statistics of edge lengths

Parameters
[in]pointsetPoint set.
[out]meanAverage edge length.
[out]sigmaStandard deviation of edge length.

§ ElapsedTimeToString()

string mirtk::ElapsedTimeToString ( double  t,
TimeUnit  units = TIME_IN_SECONDS,
TimeFormat  fmt = TIME_FORMAT_HHMMSS,
int  w = 0,
char  c = ' ',
bool  left = false 
)

Convert elapsed time given in the specified units to string of given format

Parameters
[in]tElapsed time in specified units.
[in]unitsUnits of time measurement.
[in]fmtTime string format.
[in]wWidth of time field when fmt is not TIME_FORMAT_HHMMSS.
[in]cCharacter used to fill time field.
[in]leftWhether to print time value left justified.

§ fdec() [1/2]

MIRTKCU_API double mirtk::fdec ( double  f)
inline

Decrement floating-point number by the smallest possible amount such that the resulting number is less than the original number.

Definition at line 188 of file Math.h.

§ fdec() [2/2]

MIRTKCU_API double mirtk::fdec ( double  f,
double  df 
)
inline

Decrement floating point number by a given amount, ensuring that the result is not equal f.

Note that due to roundoff errors, subtracting a small number from a big number, may result in a number which is yet equal the initial big number. This function adjusts the decrement if necessary such that the result is guaranteed to be smaller (df > 0) or greater (df < 0) than f. If df is zero, f remains unchanged.

Definition at line 224 of file Math.h.

§ fequal()

MIRTKCU_API bool mirtk::fequal ( double  a,
double  b,
double  tol = 1e-12 
)
inline
Deprecated:
Use AreEqual instead.

Definition at line 138 of file Math.h.

§ finc() [1/2]

MIRTKCU_API double mirtk::finc ( double  f)
inline

Increment floating-point number by the smallest possible amount such that the resulting number is greater than the original number.

Definition at line 178 of file Math.h.

§ finc() [2/2]

MIRTKCU_API double mirtk::finc ( double  f,
double  df 
)
inline

Increment floating point number by a given amount, ensuring that the result is not equal f.

Note that due to roundoff errors, adding a small number to a big number, may result in a number which is yet equal the initial big number. This function adjusts the increment if necessary such that the result is guaranteed to be greater (df > 0) or smaller (df < 0) than f. If df is zero, f remains unchanged.

Definition at line 204 of file Math.h.

§ FrechetMean() [1/2]

Matrix mirtk::FrechetMean ( const Matrix matrices,
const double *  weights,
int  n,
int  niter = 20,
double  tol = 1e-12,
const Matrix mu0 = NULL 
)
inline
Deprecated:
Use BiInvariantMean instead

Definition at line 1205 of file Matrix.h.

§ FrechetMean() [2/2]

Matrix mirtk::FrechetMean ( const Matrix matrices,
int  n,
int  niter = 20,
double  tol = 1e-12,
const Matrix mu0 = NULL 
)
inline
Deprecated:
Use BiInvariantMean instead

Definition at line 1214 of file Matrix.h.

§ GetArrayByCaseInsensitiveName()

vtkDataArray* mirtk::GetArrayByCaseInsensitiveName ( vtkDataSetAttributes *  data,
const char *  name,
int *  loc = NULL 
)

Get point data array using case insensitive name

Parameters
[in]dataPoint or cell data attributes (cf. vtkPolyData::GetPointData, vtkPolyData::GetCellData).
[in]nameCase insenitive name of data array.
[out]locSet to array index if not NULL.
Returns
Pointer to data array or NULL if not found.

§ GetCurrentRSS()

size_t mirtk::GetCurrentRSS ( )

Returns the current resident set size (physical memory use) measured in bytes, or zero if the value cannot be determined on this OS.

§ GetDate()

string mirtk::GetDate ( )

Get current date in the format "%d %b %Y"

See also
std::put_time

§ GetDateTime()

string mirtk::GetDateTime ( )

Get current date and time in the format "%c %Z"

See also
std::put_time

§ GetMinMaxEdgeLength() [1/2]

void mirtk::GetMinMaxEdgeLength ( vtkSmartPointer< vtkPoints >  points,
const EdgeTable edgeTable,
double &  min,
double &  max 
)

Determine minimum and maximum edge length

Parameters
[in]pointsPoints.
[in]edgeTableEdge table.
[out]minMinimum edge length.
[out]maxMaximum edge length.

§ GetMinMaxEdgeLength() [2/2]

void mirtk::GetMinMaxEdgeLength ( vtkSmartPointer< vtkPointSet >  pointset,
double &  min,
double &  max 
)

Determine minimum and maximum edge length

Parameters
[in]pointsetPoint set.
[out]minMinimum edge length.
[out]maxMaximum edge length.

§ GetPeakRSS()

size_t mirtk::GetPeakRSS ( )

Returns the peak (maximum so far) resident set size (physical memory use) measured in bytes, or zero if the value cannot be determined on this OS.

§ GetPointEdges()

EdgeList mirtk::GetPointEdges ( const EdgeList edges,
int  ptId 
)

Get list of edges with given end point

Parameters
[in]edgesList of edges.
[in]ptIdEdge end point.
Returns
List of edges, where ptId is always the first entry.

§ GetTime()

string mirtk::GetTime ( )

Get current time in the format "%H:%M:%S %Z"

See also
std::put_time

§ ImageStencilToMask()

void mirtk::ImageStencilToMask ( vtkSmartPointer< vtkImageStencilData >  stencil,
vtkSmartPointer< vtkImageData >  image 
)

Convert surface image stencil to binary mask

Parameters
[out]imageImage data with voxel type IRTK_VOXEL_BINARY.
[in]stencilImage stencil.

§ InitializeDeformableLibrary()

void mirtk::InitializeDeformableLibrary ( )

Initialize MIRTK Deformable library

Registers all available types with their respective object factories.

§ InitializeNumericsLibrary()

void mirtk::InitializeNumericsLibrary ( )

Initialize MIRTK Numerics library

Registers all available types with their respective object factories.

§ InitializeRegistrationLibrary()

void mirtk::InitializeRegistrationLibrary ( )

Initialize MIRTK Registration library

Registers all available types with their respective object factories.

§ InitializeTransformationLibrary()

void mirtk::InitializeTransformationLibrary ( )

Initialize MIRTK Transformation library

Registers all available types with their respective object factories.

§ Intersection()

template<class T >
UnorderedSet<T> mirtk::Intersection ( const UnorderedSet< T > &  a,
const UnorderedSet< T > &  b 
)

Intersection of two unordered sets

Note
set_intersection cannot be used for unsorted containers!

Definition at line 302 of file Algorithm.h.

§ IsCategoricalArrayName()

bool mirtk::IsCategoricalArrayName ( const string &  name)

Determine whether data array name suggests it contains categorical values

Parameters
[in]nameData array name.

§ IsTransformation()

bool mirtk::IsTransformation ( const char *  name)

Check whether a named file is an MIRTK transformation file

Parameters
[in]nameFile name.
Returns
Whether the named file exists and stores an MIRTK transformation.

§ LogEuclideanMean()

Matrix mirtk::LogEuclideanMean ( int  n,
const Matrix matrices,
const double *  weights = NULL 
)

Compute log-Euclidean mean of transformation matrices

\[ mu = \exp\left( \sum w_i \log\left( matrices_i \right) \right) \]

Parameters
[in]nNumber of matrices.
[in]matricesTransformation matrices.
[in]weightsWeights of transformation matrices. Uniform weighting if NULL.
Returns
Mean transformation matrix.

§ MatrixToAffineParameters()

void mirtk::MatrixToAffineParameters ( const Matrix m,
double &  tx,
double &  ty,
double &  tz,
double &  rx,
double &  ry,
double &  rz,
double &  sx,
double &  sy,
double &  sz,
double &  sxy,
double &  sxz,
double &  syz 
)

Extract affine transformation parameters from 4x4 homogeneous coordinate transformation matrix. The input transformation matrix is assumed to be the composition of a shearing, followed by a scaling, followed by a rotation, followed by a translation, i.e.,

T = Translate * Rotate * Scale * Shear, where Rotate = (Rz Ry Rx)^T

See also
Graphicx Gems II, with a 12 DoF model without perspective distortion https://github.com/erich666/GraphicsGems/blob/master/gemsii/unmatrix.c
Parameters
[in]mHomogeneous coordinate transformation matrix.
[out]txTranslation along x axis.
[out]tyTranslation along y axis.
[out]tzTranslation along z axis.
[out]rxRotation around x axis in radians.
[out]ryRotation around y axis in radians.
[out]rzRotation around z axis in radians.
[out]sxScaling of x axis (factor, not percentage).
[out]syScaling of y axis (factor, not percentage).
[out]szScaling of z axis (factor, not percentage).
[out]sxySkew between x and y axes in radians.
[out]sxzSkew between x and z axes in radians.
[out]syzSkew between y and z axes in radians.

§ MatrixToEulerAngles()

void mirtk::MatrixToEulerAngles ( const Matrix m,
double &  rx,
double &  ry,
double &  rz 
)

Extract Euler angles from 4x4 homogeneous coordinate transformation matrix. The input transformation matrix is assumed to be the composition of a rotation followed by a translation, i.e.,

T = Translate * Rotate, where Rotate = (Rz Ry Rx)^T

Parameters
[in]mHomogeneous coordinate transformation matrix.
[out]rxRotation around x axis in radians.
[out]ryRotation around y axis in radians.
[out]rzRotation around z axis in radians.

§ MatrixToRigidParameters()

void mirtk::MatrixToRigidParameters ( const Matrix m,
double &  tx,
double &  ty,
double &  tz,
double &  rx,
double &  ry,
double &  rz 
)

Extract rigid transformation parameters from 4x4 homogeneous coordinate transformation matrix. The input transformation matrix is assumed to be the composition of a rotation followed by a translation, i.e.,

T = Translate * Rotate, where Rotate = (Rz Ry Rx)^T

Parameters
[in]mHomogeneous coordinate transformation matrix.
[out]txTranslation along x axis.
[out]tyTranslation along y axis.
[out]tzTranslation along z axis.
[out]rxRotation around x axis in radians.
[out]ryRotation around y axis in radians.
[out]rzRotation around z axis in radians.

§ MaxEdgeLength() [1/2]

double mirtk::MaxEdgeLength ( vtkSmartPointer< vtkPoints >  points,
const EdgeTable edgeTable 
)

Determine maximum edge length

Parameters
[in]pointsPoints.
[in]edgeTableEdge table.
Returns
Maximum edge length.

§ MaxEdgeLength() [2/2]

double mirtk::MaxEdgeLength ( vtkSmartPointer< vtkPointSet >  pointset)

Determine maximum edge length

Parameters
[in]pointsetPoint set.
Returns
Maximum edge length.

§ MinEdgeLength() [1/2]

double mirtk::MinEdgeLength ( vtkSmartPointer< vtkPoints >  points,
const EdgeTable edgeTable 
)

Determine minimum edge length

Parameters
[in]pointsPoints.
[in]edgeTableEdge table.
Returns
Minimum edge length.

§ MinEdgeLength() [2/2]

double mirtk::MinEdgeLength ( vtkSmartPointer< vtkPointSet >  pointset)

Determine minimum edge length

Parameters
[in]pointsetPoint set.
Returns
Minimum edge length.

§ NewVtkDataArray()

vtkSmartPointer<vtkDataArray> mirtk::NewVtkDataArray ( int  type = VTK_VOID,
int  tuples = 0,
int  comps = 1,
const char *  name = nullptr 
)

Instantiate new VTK data array of given type

Parameters
[in]typeVTK data type ID, e.g., VTK_FLOAT. When VTK_VOID, a floating point data array with default precision, i.e., either single or double is returned.
[in]tuplesNumber of tuples. The array is uninitialized when non-positive.
[in]compsNumber of components per tuple.
[in]nameData array name.
Returns
New VTK data array instance.

§ NewVTKDataArray()

vtkSmartPointer<vtkDataArray> mirtk::NewVTKDataArray ( int  type = VTK_VOID)
Deprecated:
Use NewVtkDataArray instead

§ NewVtkMask()

vtkSmartPointer<vtkImageData> mirtk::NewVtkMask ( int  nx,
int  ny,
int  nz 
)

Instantiate new VTK image mask

Note that vtkImageData has no implicit orientation. Therefore we just convert the image in voxel coordinates (origin at 0 and voxel size 1x1x1) and instead convert points to voxel coordinates.

§ NthElement() [1/2]

template<class T >
T& mirtk::NthElement ( Array< T > &  values,
int  n 
)

Sort values of array such that values before the n-th element are smaller than this element and elements after are greater or equal

Definition at line 181 of file Algorithm.h.

§ NthElement() [2/2]

template<class T , class Compare >
T& mirtk::NthElement ( Array< T > &  values,
int  n,
Compare  comp 
)

Sort values of array such that values before the n-th element are smaller than this element and elements after are greater or equal according to a custom comparator functor

Definition at line 191 of file Algorithm.h.

§ OrthogonalFieldOfView()

ImageAttributes mirtk::OrthogonalFieldOfView ( const ImageAttributes )

Ensure that image domain has orthogonal basis vectors, i.e., no additional affine transformation which contains any shearing

Returns
Image grid which fully contains the input image domain but without additional affine transformation (_smat is identity matrix).
Remarks
The returned image domain need not be an axis-aligned bounding box! When the Geometric Tools Engine (GTEngine) library is available, the minimum-volume bounding box is returned.

§ OverallFieldOfView()

ImageAttributes mirtk::OverallFieldOfView ( const Array< ImageAttributes > &  )

This method implements a method to find a common image grid which fully contains all given image grids in world space

The voxel size of the resulting grid corresponds to the average voxel size of the input images. The orientation and origin are chosen such that the resulting image domain overlaps all input images in world space with a near to minimal image volume. The current implementation only uses an heuristic approach to find such minimal oriented bounding box of the input domains. When the Geometric Tools Engine (GTEngine) library is available, the minimum-volume bounding box is returned.

Additional information regarding algorithms to find the optimal minimum-volume oriented bounding box (OBB) can be found at:

Note
The final overall image grid computed by this function must be independent of the order in which the input attributes are given in the input list. Otherwise an inverse consistent registration might still depend on the order of the input images.

§ ParameterUnits()

string mirtk::ParameterUnits ( const string &  str,
string *  name = nullptr,
const char *  dflt = "" 
)

Splits a parameter name string such as "Resolution [mm]" into prefix and units

Parameters
[in]strParameter name string with optional units specification.
[out]nameName of parameter without units specification.
[in]dfltDefault units if none specified.
Returns
Standard units string or dflt string if units specification missing.

§ Permutation()

template<class T >
Array<T> mirtk::Permutation ( const Array< int > &  order,
const Array< T > &  values 
)

Get permutation of array values given a permutation of array indices

See also
IncreasingOrder, DecreasingOrder

Definition at line 233 of file Algorithm.h.

§ PointSetDomain() [1/2]

ImageAttributes mirtk::PointSetDomain ( vtkPointSet *  data,
double  dx = -1,
double  dy = -1,
double  dz = -1 
)

Determine bounding box of point set

Parameters
[in]dataData set.
[in]dxDesired lattice spacing along x axis. If non-positive, the average interval between the x coordinates of the input points is used.
[in]dyDesired lattice spacing along y axis. If non-positive, the average interval between the y coordinates of the input points is used.
[in]dzDesired lattice spacing along z axis. If non-positive, the average interval between the z coordinates of the input points is used.
Returns
Attributes of oriented minimum-volume bounding box.

§ PointSetDomain() [2/2]

ImageAttributes mirtk::PointSetDomain ( vtkPointSet *  data,
const Vector3D< double > &  ds 
)

Determine bounding box of point set

Parameters
[in]dataData set.
[in]dsDesired lattice spacing. If an entry is non-positive, the average interval between the coordinates of the input points along this axis is used.
Returns
Attributes of oriented minimum-volume bounding box.

§ PolyDataAttributeType()

int mirtk::PolyDataAttributeType ( const char *  type)

Map string to vtkDataSetAttributes::AttributeTypes enumeration value

Parameters
typeCase insensitive attribute type name (e.g. "scalars", "NORMALS")
Returns
VTK data set attribute type ID (e.g., vtkDataSetAttributes::SCALARS) or -1 if string does not name a known attribute type.

§ PolyDataDomain() [1/2]

ImageAttributes mirtk::PolyDataDomain ( vtkPolyData *  data,
double  dx = -1,
double  dy = -1,
double  dz = -1 
)

Determine bounding box of polydata points

Parameters
[in]dataData set.
[in]dxDesired lattice spacing along x axis. If non-positive, the average interval between the x coordinates of the input points is used.
[in]dyDesired lattice spacing along y axis. If non-positive, the average interval between the y coordinates of the input points is used.
[in]dzDesired lattice spacing along z axis. If non-positive, the average interval between the z coordinates of the input points is used.
Returns
Attributes of oriented minimum-volume bounding box.

§ PolyDataDomain() [2/2]

ImageAttributes mirtk::PolyDataDomain ( vtkPolyData *  data,
const Vector3D< double > &  ds 
)

Determine bounding box of polydata points

Parameters
[in]dataData set.
[in]dsDesired lattice spacing. If an entry is non-positive, the average interval between the coordinates of the input points along this axis is used.
Returns
Attributes of oriented minimum-volume bounding box.

§ PopPointEdges()

EdgeList mirtk::PopPointEdges ( EdgeList edges,
int  ptId 
)

Get list of edges with given end point and remove them from input list

Parameters
[in]edgesList of edges.
[in]ptIdEdge end point.
Returns
List of edges, where ptId is always the first entry.

§ Print()

template<typename T , typename... Args>
std::ostream& mirtk::Print ( std::ostream &  os,
value,
Args...  args 
)

Print any number of arguments to output stream, i.e., concatenating the string representations of the arguments

Definition at line 268 of file String.h.

§ ReadDFS()

vtkSmartPointer<vtkPolyData> mirtk::ReadDFS ( const char *  fname)

Read BrainSuite surface from .dfs file

Parameters
[in]fnameFile name.
Returns
Polygonal dataset. Dataset is empty if file could not be read.

§ ReadOFF()

vtkSmartPointer<vtkPolyData> mirtk::ReadOFF ( const char *  fname)

Read polygonal dataset from Object File Format (.off) file

Parameters
[in]fnameFile name.
Returns
Polygonal dataset. Dataset is empty if file could not be read.

§ ReadPointSet() [1/2]

vtkSmartPointer<vtkPointSet> mirtk::ReadPointSet ( const char *  fname,
bool  exit_on_failure = true 
)

Read point set from file

Parameters
[in]fnameFile name.
[in]exit_on_failureCall exit when point set could not be read.
Returns
Point set. Dataset is empty if file could not be read and exit_on_failure is false.

§ ReadPointSet() [2/2]

vtkSmartPointer<vtkPointSet> mirtk::ReadPointSet ( const char *  fname,
FileOption fopt,
bool  exit_on_failure = true 
)

Read point set from file

Parameters
[in]fnameFile name.
[out]foptInput file type option to be passed to WritePointSet in order to save point set again in an equivalent file format when the same file format extension is used.
[in]exit_on_failureCall exit when point set could not be read.
Returns
Point set. Dataset is empty if file could not be read and exit_on_failure is false.

§ ReadPointSetTable()

vtkSmartPointer<vtkPointSet> mirtk::ReadPointSetTable ( const char *  fname,
char  sep = ',',
vtkPointSet *  pointset = nullptr 
)

Read point set (attributes) from CSV file

This function reads point data arrays from the columns of a CSV file. The first line must contain the column names, i.e., a CSV header is expected. The number of rows must match the number of points in the reference point set when the CSV file does not contain three columns whose name matches the regular expression "((Point|Coord)\.)?(X|Y|Z)". Columns with a common name prefix including a trailing dot are combined into a single multi-component data array with component names following the '.' separator in the column name. For example, columns "Gradient.X", "Gradient.Y", and "Gradient.Z" are combined into one output point data array named "Gradient" with components "X", "Y", and "Z". The data is initially read into data arrays of type VTK_FLOAT. When all components can be converted lossless to an integral type, the output data array is converted to either VTK_SHORT or VTK_INT.

Parameters
[in]fnameFile name.
[in]sepSeparator.
[in]pointsetReference point set. When the table does not contain 'X', 'Y', and 'Z' columns with point set coordinates, the points of this reference point set are used. Moreover, topological information is not read from a table file and is thus inherited from the reference pointset. The output point set will have the same type as the reference pointset of which a shallow copy is made.
Returns
Polygonal dataset. Dataset is empty if file could not be read.

§ ReadPolyData() [1/2]

vtkSmartPointer<vtkPolyData> mirtk::ReadPolyData ( const char *  fname,
bool  exit_on_failure = true 
)

Read polygonal dataset from file

Parameters
[in]fnameFile name.
[in]exit_on_failureCall exit when point set could not be read.
Returns
Polygonal dataset. Dataset is empty if file could not be read and exit_on_failure is false.

§ ReadPolyData() [2/2]

vtkSmartPointer<vtkPolyData> mirtk::ReadPolyData ( const char *  fname,
FileOption fopt,
bool  exit_on_failure = true 
)

Read polygonal dataset from file

Parameters
[in]fnameFile name.
[out]foptInput file type option to be passed to WritePointSet in order to save point set again in an equivalent file format when the same file format extension is used.
[in]exit_on_failureCall exit when point set could not be read.
Returns
Polygonal dataset. Dataset is empty if file could not be read and exit_on_failure is false.

§ RigidParametersToMatrix() [1/3]

void mirtk::RigidParametersToMatrix ( double  tx,
double  ty,
double  tz,
double  cosrx,
double  cosry,
double  cosrz,
double  sinrx,
double  sinry,
double  sinrz,
Matrix m 
)

Construct 4x4 homogeneous coordinate transformation matrix from rigid transformation parameters. The output transformation matrix is the composition of a rotation followed by a translation, i.e.,

T = Translate * Rotate, where Rotate = (Rz Ry Rx)^T

Note
This overloaded function is mainly used by the linear transformation classes such as in particular irtkRigidTransformation as these store the cosine and sine values of the rotation angles as members.
Parameters
[in]txTranslation along x axis.
[in]tyTranslation along y axis.
[in]tzTranslation along z axis.
[in]cosrxCosine of rotation around x axis in radians.
[in]cosryCosine of rotation around y axis in radians.
[in]cosrzCosine of rotation around z axis in radians.
[in]sinrxSine of rotation around x axis in radians.
[in]sinrySine of rotation around y axis in radians.
[in]sinrzSine of rotation around z axis in radians.
[out]mHomogeneous transformation matrix.

§ RigidParametersToMatrix() [2/3]

void mirtk::RigidParametersToMatrix ( double  tx,
double  ty,
double  tz,
double  rx,
double  ry,
double  rz,
Matrix m 
)

Construct 4x4 homogeneous coordinate transformation matrix from rigid transformation parameters. The output transformation matrix is the composition of a rotation followed by a translation, i.e.,

T = Translate * Rotate

Parameters
[in]txTranslation along x axis.
[in]tyTranslation along y axis.
[in]tzTranslation along z axis.
[in]rxRotation around x axis in radians.
[in]ryRotation around y axis in radians.
[in]rzRotation around z axis in radians.
[out]mHomogeneous transformation matrix.

§ RigidParametersToMatrix() [3/3]

Matrix mirtk::RigidParametersToMatrix ( double  tx,
double  ty,
double  tz,
double  rx,
double  ry,
double  rz 
)
inline

Construct 4x4 homogeneous coordinate transformation matrix from rigid transformation parameters. The output transformation matrix is the composition of a rotation followed by a translation, i.e.,

T = Translate * Rotate, where Rotate = (Rz Ry Rx)^T

Parameters
[in]txTranslation along x axis.
[in]tyTranslation along y axis.
[in]tzTranslation along z axis.
[in]rxRotation around x axis in radians.
[in]ryRotation around y axis in radians.
[in]rzRotation around z axis in radians.
Returns
Homogeneous transformation matrix.

Definition at line 1332 of file Matrix.h.

§ RobustAverageEdgeLength()

double mirtk::RobustAverageEdgeLength ( vtkSmartPointer< vtkPoints >  ,
const EdgeTable  
)

Determine average edge length of point set given a precomputed edge table

This function only considers edges with a length within in the 5th and 95th percentile of all edge lengths. It thus ignores extrem short/long edges.

§ Split() [1/2]

Array<string> mirtk::Split ( string  s,
const char *  d,
int  n = 0,
bool  e = false,
bool  q = false 
)

Split string into parts separated by specified delimiting sequence of characters

Parameters
sString to be split.
dDelimiting sequence of characters.
nMaximum number of parts. If zero, all parts are returned, if negative, the last n parts are returned, and if positive, the first n parts are returned.
eDiscard empty strings.
qDo not split quoted parts. Double quotes within quotes have to be escaped with a preceding backslash character.
Returns
Parts of the string.

§ Split() [2/2]

Array<string> mirtk::Split ( string  s,
char  d,
int  n = 0,
bool  e = false,
bool  q = false 
)

Split string into parts separated by specified delimiting character

Parameters
sString to be split.
dDelimiting character.
nMaximum number of parts. If zero, all parts are returned, if negative, the last n parts are returned, and if positive, the first n parts are returned.
eDiscard empty strings.
qDo not split quoted parts. Double quotes within quotes have to be escaped with a preceding backslash character.
Returns
Parts of the string.

§ SShapedMembershipFunction()

double mirtk::SShapedMembershipFunction ( double  x,
double  a,
double  b 
)
inline

S-shaped monotone increasing membership function whose value is in [0, 1] for x in [a, b]. It is equivalent to MATLAB's smf function.

Definition at line 238 of file Math.h.

§ StandardUnits()

string mirtk::StandardUnits ( const string &  str)

Convert units specification to standard lowercase string

For example, this function returns "vox" for any units specification allowed for voxel units including "voxel" and "VOxELS". Same for other units for which alternative units specifications are allowed. Removes enclosing brackets from units string if present, e.g., returns "mm" when the input string is "[mm]".

Parameters
[in]strUnits specification string.
Returns
Standard units specification in all lowercase.

§ Throw()

template<typename... Args>
void mirtk::Throw ( ErrorType  err,
const char *  func,
Args...  args 
)

Raise error in function

The current implementation prints the error message to STDERR and terminates the program with exit code 1. In future releases, when all library code has been rewritten to use this function, a suitable runtime exception may be thrown instead.

Parameters
[in]errType of error/exception.
[in]funcName of function which is throwing the error (i.e., func).
[in]argsError message. The given arguments are converted to strings using the ToString template function. These strings are then concatenated to produce the complete error message.

Definition at line 74 of file Exception.h.

§ ToTransformationType()

TransformationType mirtk::ToTransformationType ( TransformationModel  model,
const ImageAttributes domain 
)
inline

Get type of (default) transformation which implements a specific model

The mapping from transformation model to transformtion type is not one-to-one. More then one transformation can be suitable for a transformation model. This function defines the default type used for each model. The base registration filter implementations make use of it, but a specialized registration filter can choose another transformation for a given model if desired.

For example, see ImageRegistrationFilter::TransformationType.

Definition at line 202 of file TransformationModel.h.

§ Trim()

string mirtk::Trim ( const string &  str)

Trim leading and trailing (whitespace) characters from string

Parameters
[in]strInput string.
[in]whatSet of characters to remove from start and end of string.
Returns
String with leading and trailing (whitespace) characters removed.

§ TrimAll()

string mirtk::TrimAll ( const string &  str)

Remove (whitespace) characters from string

Parameters
[in]strInput string.
[in]whatSet of characters to remove from string.
Returns
String with leading and trailing (whitespace) characters removed.

§ Union()

template<class T >
UnorderedSet<T> mirtk::Union ( const UnorderedSet< T > &  a,
const UnorderedSet< T > &  b 
)

Intersection of two unordered sets

Note
set_union cannot be used for unsorted containers!

Definition at line 319 of file Algorithm.h.

§ ValueUnits()

string mirtk::ValueUnits ( const string &  str,
string *  value = nullptr,
const char *  dflt = "" 
)

Splits a parameter value string such as "1 mm", "1 [mm]", "1 2 3 mm", "foo [rel]"

Note
When the parameter value is not numeric, the units specification must be enclosed in square brackets ([]) and separated by at least one white space character from the parameter value(s).
Parameters
[in]strNumeric parameter value string with optional units specification.
[out]valueValue(s) of parameter without units specification.
[in]dfltDefault units if none specified.
Returns
Standard units string or dflt string if units specification missing.

§ WriteDFS()

bool mirtk::WriteDFS ( const char *  fname,
vtkPolyData *  polydata 
)

Write surface in BrainSuite .dfs format

Parameters
[in]fnameFile name.
[in]polydataPolygonal dataset.
Returns
Whether surface was written successfully to the specified file.

§ WriteOFF()

bool mirtk::WriteOFF ( const char *  fname,
vtkPolyData *  polydata 
)

Write polygonal dataset to Object File Format (.off) file

Parameters
[in]fnameFile name.
[in]polydataPolygonal dataset.
Returns
Whether dataset was written successfully to the specified file.

§ WritePointSet()

bool mirtk::WritePointSet ( const char *  fname,
vtkPointSet *  pointset,
FileOption  fopt = FO_Default 
)

Write point set to file

Parameters
fnameFile name. The extension determines the output format.
pointsetPoint set to write.
foptWhether to use ASCII, binary, or compressed binary file format.
Returns
Whether point set was written successfully to the specified file.

§ WritePointSetTable()

bool mirtk::WritePointSetTable ( const char *  fname,
vtkPointSet *  pointset,
char  sep = ',',
bool  ids = true,
bool  coords = true 
)

Write point set (attributes) to CSV file

Parameters
[in]fnameFile name.
[in]pointsetPoint set.
[in]idsWhether to save point IDs in first column.
[in]coordsWhether to save x, y, z point coordinate columns.
[in]sepSeparator.

§ WritePolyData()

bool mirtk::WritePolyData ( const char *  fname,
vtkPolyData *  polydata,
FileOption  fopt = FO_Default 
)

Write polygonal dataset to file

Parameters
fnameFile name. The extension determines the output format.
polydataPolydata to write.
foptWhether to use ASCII, binary, or compressed binary file format.
Returns
Whether point set was written successfully to the specified file.

§ WriteTetGenNode()

bool mirtk::WriteTetGenNode ( const char *  fname,
vtkPointSet *  pointset 
)

Write point set to TetGen .node file

Parameters
fnameFile name.
pointsetPoint set.
Returns
Whether dataset was written successfully to the specified file.

§ WriteTetGenPoly()

bool mirtk::WriteTetGenPoly ( const char *  fname,
vtkPolyData *  polydata,
const PointSet holes = nullptr 
)

Write polygonal dataset to TetGen .poly file

Parameters
fnameFile name.
polydataPolygonal dataset.
holesHole list.
Returns
Whether dataset was written successfully to the specified file.

§ WriteTetGenSMesh()

bool mirtk::WriteTetGenSMesh ( const char *  fname,
vtkPolyData *  polydata,
const PointSet holes = nullptr 
)

Write polygonal dataset to TetGen .smesh file

Parameters
fnameFile name.
polydataPolygonal dataset.
holesHole list.
Returns
Whether dataset was written successfully to the specified file.

Variable Documentation

§ debug

MIRTK_Common_EXPORT int mirtk::debug

Debug level, e.g., amount of intermediate data to write to disk This flag can be combined with verbose after parsing the command options. For example, "if (debug) verbose = 100;", or treated separately.

Definition at line 105 of file Options.h.

§ debug_time

MIRTK_Common_EXPORT int mirtk::debug_time

Enable/disable profiling of execution time.

Should be set in the main function before any processing starts, e.g., depending on a command-line flag (for example -v -verbose). If less or equal to zero, no timing measurements are printed to screen. Otherwise, whether a timing measure is output or not depends on the set debugging level.