Packages
Mapping
include
mirtk
IntrinsicLeastEdgeLengthDistortionSurfaceMapper.h
1
/*
2
* Medical Image Registration ToolKit (MIRTK)
3
*
4
* Copyright 2016 Imperial College London
5
* Copyright 2016 Andreas Schuh
6
*
7
* Licensed under the Apache License, Version 2.0 (the "License");
8
* you may not use this file except in compliance with the License.
9
* You may obtain a copy of the License at
10
*
11
* http://www.apache.org/licenses/LICENSE-2.0
12
*
13
* Unless required by applicable law or agreed to in writing, software
14
* distributed under the License is distributed on an "AS IS" BASIS,
15
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
* See the License for the specific language governing permissions and
17
* limitations under the License.
18
*/
19
20
#ifndef MIRTK_IntrinsicLeastEdgeLengthDistortionSurfaceMapper_H
21
#define MIRTK_IntrinsicLeastEdgeLengthDistortionSurfaceMapper_H
22
23
#include "mirtk/NearOptimalIntrinsicSurfaceMapper.h"
24
25
26
namespace
mirtk
{
27
28
29
/**
30
* Compute a near-optimal intrinsic surface map which minimizes edge-length distortion
31
*
32
* - Desbrun, Meyer, and Alliez (2002). Intrinsic parameterizations of surface meshes.
33
* Computer Graphics Forum, 21(3), 209–218.
34
*/
35
class
IntrinsicLeastEdgeLengthDistortionSurfaceMapper
:
public
NearOptimalIntrinsicSurfaceMapper
36
{
37
mirtkObjectMacro(
IntrinsicLeastEdgeLengthDistortionSurfaceMapper
);
38
39
// ---------------------------------------------------------------------------
40
// Attributes
41
42
/// Copy attributes of this class from another instance
43
void
CopyAttributes(
const
IntrinsicLeastEdgeLengthDistortionSurfaceMapper
&);
44
45
// ---------------------------------------------------------------------------
46
// Construction/Destruction
47
48
public
:
49
50
/// Default constructor
51
IntrinsicLeastEdgeLengthDistortionSurfaceMapper
();
52
53
/// Copy constructor
54
IntrinsicLeastEdgeLengthDistortionSurfaceMapper
(
55
const
IntrinsicLeastEdgeLengthDistortionSurfaceMapper
&
56
);
57
58
/// Assignment operator
59
IntrinsicLeastEdgeLengthDistortionSurfaceMapper
&
operator =
(
60
const
IntrinsicLeastEdgeLengthDistortionSurfaceMapper
&
61
);
62
63
/// Destructor
64
virtual
~IntrinsicLeastEdgeLengthDistortionSurfaceMapper
();
65
66
// ---------------------------------------------------------------------------
67
// Execution
68
69
protected
:
70
71
/// Compute affine combination weight that minimizes a given distortion measure
72
///
73
/// \param[in] u0 Discrete authalic surface map values, i.e., lambda=0.
74
/// \param[in] u1 Discrete conformal surface map values, i.e., lambda=1.
75
///
76
/// \returns Affine combination weight \f$\lambda\f$, where final surface map values
77
/// are computed as \f$\lambda u1 + (1 - \lambda) * u0\f$.
78
virtual
double
ComputeLambda
(vtkDataArray *u0, vtkDataArray *u1)
const
;
79
80
};
81
82
83
}
// namespace mirtk
84
85
#endif // MIRTK_IntrinsicLeastEdgeLengthDistortionSurfaceMapper_H
mirtk::IntrinsicLeastEdgeLengthDistortionSurfaceMapper
Definition:
IntrinsicLeastEdgeLengthDistortionSurfaceMapper.h:35
mirtk
Definition:
IOConfig.h:41
mirtk::NearOptimalIntrinsicSurfaceMapper
Definition:
NearOptimalIntrinsicSurfaceMapper.h:42
mirtk::IntrinsicLeastEdgeLengthDistortionSurfaceMapper::operator=
IntrinsicLeastEdgeLengthDistortionSurfaceMapper & operator=(const IntrinsicLeastEdgeLengthDistortionSurfaceMapper &)
Assignment operator.
mirtk::IntrinsicLeastEdgeLengthDistortionSurfaceMapper::IntrinsicLeastEdgeLengthDistortionSurfaceMapper
IntrinsicLeastEdgeLengthDistortionSurfaceMapper()
Default constructor.
mirtk::IntrinsicLeastEdgeLengthDistortionSurfaceMapper::~IntrinsicLeastEdgeLengthDistortionSurfaceMapper
virtual ~IntrinsicLeastEdgeLengthDistortionSurfaceMapper()
Destructor.
mirtk::IntrinsicLeastEdgeLengthDistortionSurfaceMapper::ComputeLambda
virtual double ComputeLambda(vtkDataArray *u0, vtkDataArray *u1) const