52 #ifndef __PCL_RedundantMultiscaleTransform_h
53 #define __PCL_RedundantMultiscaleTransform_h
58 #include <pcl/Diagnostics.h>
147 : m_delta(
Max( 0, d ) )
148 , m_numberOfLayers(
Max( 1, n ) )
150 PCL_PRECONDITION( n >= 1 )
151 PCL_PRECONDITION( d >= 0 )
152 InitializeLayersAndStates();
161 , m_delta( x.m_delta )
162 , m_numberOfLayers( x.m_numberOfLayers )
163 , m_transform( x.m_transform )
164 , m_layerEnabled( x.m_layerEnabled )
166 m_transform.EnsureUnique();
187 (void)BidirectionalImageTransformation::operator =( x );
188 (void)ParallelProcess::operator =( x );
190 m_numberOfLayers = x.m_numberOfLayers;
191 m_transform = x.m_transform;
193 m_layerEnabled = x.m_layerEnabled;
231 PCL_PRECONDITION( d >= 0 )
233 m_delta =
Max( 0, d );
247 SetScalingSequence( 0 );
261 PCL_PRECONDITION( d >= 1 )
262 SetScalingSequence(
Max( 1, d ) );
273 return 1 + (((m_delta < 1) ? 1 << j : (1 + j)*m_delta) << 1);
287 return m_numberOfLayers;
302 PCL_PRECONDITION( n >= 1 )
303 m_numberOfLayers =
Max( 1, n );
304 InitializeLayersAndStates();
320 ValidateLayerAccess( i );
321 return m_transform[i];
332 ValidateLayerAccess( i );
333 return m_transform[i];
345 const layer& operator [](
int i )
const
378 ValidateLayerAccess( i );
379 m_transform[i].FreeData();
390 ValidateLayerIndex( i );
391 return !m_transform[i].IsEmpty();
413 ValidateLayerIndex( i );
414 m_layerEnabled[i] = enable;
427 EnableLayer( i, !disable );
437 ValidateLayerIndex( i );
438 return m_layerEnabled[i];
479 ValidateLayerAccess( i );
481 m_transform[i] *= (k > 0) ? (1 + k) : 1/(1 - k);
509 InitializeLayersAndStates();
528 int m_numberOfLayers = 4;
534 transform m_transform;
539 layer_state_set m_layerEnabled;
552 void InitializeLayersAndStates()
560 m_transform = transform(
size_type( m_numberOfLayers+1 ) );
563 void ValidateLayerIndex(
int j )
const;
564 void ValidateLayerAccess(
int j )
const;
566 friend class MTReconstruction;
Implements a generic, two-dimensional, shared or local image.
A process using multiple concurrent execution threads.
constexpr const T & Max(const T &a, const T &b) noexcept