quadgrid 0.1
simple cartesian quad grid with particles for c++/octave
Loading...
Searching...
No Matches
quadgrid_t< distributed_vector >::cell_iterator Class Reference

#include <quadgrid_cpp.h>

Inheritance diagram for quadgrid_t< distributed_vector >::cell_iterator:
quadgrid_t< distributed_vector >::neighbor_iterator

Public Member Functions

 cell_iterator (cell_t *_data=nullptr)
void operator++ ()
cell_t & operator* ()
const cell_t & operator* () const
cell_t * operator-> ()
const cell_t * operator-> () const
bool operator== (const cell_iterator &other)
bool operator!= (const cell_iterator &other)

Private Attributes

cell_t * data

Detailed Description

template<class distributed_vector>
class quadgrid_t< distributed_vector >::cell_iterator

Definition at line 198 of file quadgrid_cpp.h.

Constructor & Destructor Documentation

◆ cell_iterator()

template<class distributed_vector>
quadgrid_t< distributed_vector >::cell_iterator::cell_iterator ( cell_t * _data = nullptr)
inline

Definition at line 204 of file quadgrid_cpp.h.

Member Function Documentation

◆ operator!=()

template<class distributed_vector>
bool quadgrid_t< distributed_vector >::cell_iterator::operator!= ( const cell_iterator & other)
inline

Definition at line 231 of file quadgrid_cpp.h.

232 { return ! ((*this) == other); }

◆ operator*() [1/2]

template<class distributed_vector>
cell_t & quadgrid_t< distributed_vector >::cell_iterator::operator* ( )
inline

Definition at line 211 of file quadgrid_cpp.h.

212 { return *(this->data); };

◆ operator*() [2/2]

template<class distributed_vector>
const cell_t & quadgrid_t< distributed_vector >::cell_iterator::operator* ( ) const
inline

Definition at line 215 of file quadgrid_cpp.h.

216 { return *(this->data); };

◆ operator++()

template<class T>
void quadgrid_t< T >::cell_iterator::operator++ ( )

Definition at line 40 of file quadgrid_cpp_imp.h.

40 {
41 static idx_t tmp;
42 if (data != nullptr) {
43 tmp = data->rowidx + data->num_rows () * data->colidx + 1;
44 if (tmp > (data->end_cell_row () +
45 data->num_rows () * data->end_cell_col ()))
46 data = nullptr;
47 else {
48 data->rowidx = tmp % data->num_rows ();
49 data->colidx = tmp / data->num_rows ();
50 data->global_cell_idx = tmp;
51 data->local_cell_idx = tmp -
52 (data->start_cell_row () +
53 data->num_rows () * data->start_cell_col ());
54 }
55 }
56};
idx_t num_rows() const

◆ operator->() [1/2]

template<class distributed_vector>
cell_t * quadgrid_t< distributed_vector >::cell_iterator::operator-> ( )
inline

Definition at line 219 of file quadgrid_cpp.h.

220 { return this->data; };

◆ operator->() [2/2]

template<class distributed_vector>
const cell_t * quadgrid_t< distributed_vector >::cell_iterator::operator-> ( ) const
inline

Definition at line 223 of file quadgrid_cpp.h.

224 { return this->data; };

◆ operator==()

template<class distributed_vector>
bool quadgrid_t< distributed_vector >::cell_iterator::operator== ( const cell_iterator & other)
inline

Definition at line 227 of file quadgrid_cpp.h.

228 { return (data == other.data); }

Member Data Documentation

◆ data

template<class distributed_vector>
cell_t* quadgrid_t< distributed_vector >::cell_iterator::data
private

Definition at line 236 of file quadgrid_cpp.h.


The documentation for this class was generated from the following files: