primaryKdTree
K-d tree of the primary triangular mesh(es).
MeshVisitor
, IcpVisitor
protected final int
protected final int
protected final KdTree
protected final Map<MeshFacet,List<IcpTransformation>>
IcpVisitorImpl(KdTree primaryKdTree,
int maxIteration,
boolean scale,
double error,
PointSamplingConfig strategy,
int crop)
IcpVisitorImpl(MeshModel mainModel,
int maxIteration,
boolean scale,
double error,
PointSamplingConfig strategy,
int crop)
IcpVisitorImpl(Collection<MeshFacet> mainFacets,
int maxIteration,
boolean scale,
double error,
PointSamplingConfig strategy,
int crop)
double
getError()
int
boolean
getScale()
true
if the inspected mesh faces were also scaled.boolean
true
if the implementation is thread-safe and then
a single visitor instance can be applied to multiple mesh facets simultaneously.void
visitMeshFacet(MeshFacet transformedFacet)
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
dispose
mainFacets
- Primary mesh facets. Must not be null
.
Inspected facets are transformed toward these primary mesh.maxIteration
- Maximal number of ICP iterations (it includes computing
new transformation and applying it). A number bigger than zero.
Reasonable number seems to be 10.scale
- If true
, then the scale factor is also computed.error
- Acceptable error - a number bigger than or equal to zero.
Mean distance of vertices is computed for each ICP iteration.
If the difference between the previous and current mean distances is less than the error,
then the ICP computation stops. Reasonable number seems to be 0.05.strategy
- One of the reduction strategies. If null
, then NoUndersampling
is used.crop
- The iteration number from which partially overlapped parts of surfaces are omitted from distance minimization
(i.e. the faces are auto-cropped for the ICP step). Set the parameter to zero to turn the auto-cropping
feature on for all ICP iterations. Set the parameter to any negative number to disable the auto-cropping
feature. In general, use auto-cropping if the faces are pre-aligned. If unsure, use value 1.IllegalArgumentException
- if some parameter is wrongmainModel
- Primary mesh model. Must not be null
.
Inspected facets are transformed toward this primary mesh.maxIteration
- Maximal number of ICP iterations (it includes computing
new transformation and applying it). A number bigger than zero.
Reasonable number seems to be 10.scale
- If true
, then the scale factor is also computed.error
- Acceptable error - a number bigger than or equal to zero.
Mean distance of vertices is computed for each ICP iteration.
If the difference between the previous and current mean distances is less than the error,
then the ICP computation stops. Reasonable number seems to be 0.05.strategy
- One of the reduction strategies. If null
, then NoUndersampling
is used.crop
- The iteration number from which partially overlapped parts of surfaces are omitted from distance minimization
(i.e. the faces are auto-cropped for the ICP step). Set the parameter to zero to turn the auto-cropping
feature on for all ICP iterations. Set the parameter to any negative number to disable the auto-cropping
feature. In general, use auto-cropping if the faces are pre-aligned. If unsure, use value 1.IllegalArgumentException
- if some parameter is wrongprimaryKdTree
- The k-d tree of the primary mesh. Must not be null
.
Inspected facets are transformed toward this primary mesh.maxIteration
- Maximal number of ICP iterations (it includes computing
new transformation and applying it). A number bigger than zero.
Reasonable number seems to be 10.scale
- If true
, then the scale factor is also computed.error
- Acceptable error - a number bigger than or equal to zero.
Mean distance of vertices is computed for each ICP iteration.
If the difference between the previous and current mean distances is less than the error,
then the ICP computation stops. Reasonable number seems to be 0.05.strategy
- One of the reduction strategies. If null
, then NoUndersampling
is used.crop
- The iteration number from which partially overlapped parts of surfaces are omitted from distance minimization
(i.e. the faces are auto-cropped for the ICP step). Set the parameter to zero to turn the auto-cropping
feature on for all ICP iterations. Set the parameter to any negative number to disable the auto-cropping
feature. In general, use auto-cropping if the faces are pre-aligned. If unsure, use value 1.IllegalArgumentException
- if some parameter is wrongIcpVisitor
getTransformations
in interface IcpVisitor
MeshVisitor
true
if the implementation is thread-safe and then
a single visitor instance can be applied to multiple mesh facets simultaneously.
Thread-safe implementation means that any read or write from/to the visitor's
state is protected by synchronized
.
isThreadSafe
in interface MeshVisitor
true
if the implementation is thread-safe.true
if the inspected mesh faces were also scaled.true
if the inspected mesh faces were also scaled.MeshVisitor
visitMeshFacet
in interface MeshVisitor
transformedFacet
- Mesh facet to be visited.