MeshLib C++ Docs
Loading...
Searching...
No Matches
MRChunkIterator.h
Go to the documentation of this file.
1#pragma once
2
3#include "MRMeshFwd.h"
4#include "MRIteratorRange.h"
5
6#include <iterator>
7
8namespace MR
9{
12
13
15struct Chunk
16{
18 size_t offset;
20 size_t size;
21};
22
25{
26 size_t totalSize{ 0 };
27 size_t chunkSize{ 0 };
28 size_t overlap{ 0 };
29 size_t index{ 0 };
30
31 MRMESH_API bool operator ==( const ChunkIterator& other ) const;
32
33 using iterator_category = std::input_iterator_tag;
35 using difference_type = std::ptrdiff_t;
36 using pointer = Chunk*;
37 using reference = Chunk&;
38
40 MRMESH_API ChunkIterator operator ++( int );
41
42 MRMESH_API Chunk operator *() const;
43 Chunk operator ->() const { return operator*(); }
44};
45
47MRMESH_API size_t chunkCount( size_t totalSize, size_t chunkSize, size_t overlap = 0 );
48
50MRMESH_API IteratorRange<ChunkIterator> splitByChunks( size_t totalSize, size_t chunkSize, size_t overlap = 0 );
51
52}
MRMESH_API IteratorRange< ChunkIterator > splitByChunks(size_t totalSize, size_t chunkSize, size_t overlap=0)
returns a pair of iterators for chunks covering the array of given size
Chunk operator->() const
Definition MRChunkIterator.h:43
MRMESH_API size_t chunkCount(size_t totalSize, size_t chunkSize, size_t overlap=0)
returns the amount of chunks of given size required to cover the full array
size_t offset
chunk offset
Definition MRChunkIterator.h:18
MRMESH_API ChunkIterator & operator++()
std::input_iterator_tag iterator_category
Definition MRChunkIterator.h:33
size_t index
Definition MRChunkIterator.h:29
MRMESH_API bool operator==(const ChunkIterator &other) const
MRMESH_API Chunk operator*() const
std::ptrdiff_t difference_type
Definition MRChunkIterator.h:35
size_t totalSize
Definition MRChunkIterator.h:26
size_t size
chunk size; the last chunk's size may be smaller than other chunk's ones
Definition MRChunkIterator.h:20
size_t overlap
Definition MRChunkIterator.h:28
size_t chunkSize
Definition MRChunkIterator.h:27
@ other
Angle, normally float. Measure in radians.
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
iterator class for array chunks
Definition MRChunkIterator.h:25
array chunk representation
Definition MRChunkIterator.h:16
Definition MRIteratorRange.h:13