Class In::Filter
Defined in File MessageSpatial2DDevice.cuh
Nested Relationships
This class is a nested type of Class MessageSpatial2D::In.
Nested Types
Class Documentation
-
class Filter
This class is created when a search origin is provided to MessageSpatial2D::In::operator()(float, float) It provides iterator access to a subset of the full message list, according to the provided search origin
See also
MessageSpatial2D::In::operator()(float, float)
Public Functions
-
__device__ inline Filter(const MetaData *_metadata, float x, float y)
Constructor, takes the search parameters requried
- Parameters:
_metadata – Pointer to message list metadata
x – Search origin x coord
y – Search origin y coord
-
__device__ inline iterator begin(void) const
Returns an iterator to the start of the message list subset about the search origin
-
__device__ inline iterator end(void) const
Returns an iterator to the position beyond the end of the message list subset
Note
This iterator is the same for all message list subsets
-
class iterator
Stock iterator for iterating MessageSpatial3D::In::Filter::Message objects
Public Functions
-
__device__ inline iterator(const Filter &parent, const int relative_cell_y, const int _cell_index_max, const int _cell_index)
Constructor This iterator is constructed by MessageSpatial2D::In::Filter::begin()(float, float)
See also
MessageSpatial2D::In::Operator()(float, float)
-
__device__ inline iterator(const Filter &parent)
False constructor Only used by Filter::end(), creates a null objct
-
__device__ inline iterator &operator++()
Moves to the next message (Prefix increment operator)
-
__device__ inline iterator operator++(int)
Moves to the next message (Postfix increment operator, returns value prior to increment)
-
__device__ inline bool operator==(const iterator &rhs) const
Equality operator Compares message
-
__device__ inline bool operator!=(const iterator &rhs) const
Inequality operator Compares message
-
__device__ inline Message &operator*()
Dereferences the iterator to return the message object, for accessing variables
-
__device__ inline Message *operator->()
Dereferences the iterator to return the message object, for accessing variables
-
__device__ inline iterator(const Filter &parent, const int relative_cell_y, const int _cell_index_max, const int _cell_index)
-
class Message
Provides access to a specific message Returned by the iterator
See also
Public Functions
-
__device__ inline Message(const Filter &parent, const int relative_cell_y, const int _cell_index_max, const int _cell_index)
Constructs a message and directly initialises all of it’s member variables
Note
See member variable documentation for their purposes
-
__device__ inline Message(const Filter &parent)
False minimal constructor used by iterator::end()
-
__device__ inline bool operator==(const Message &rhs) const
Equality operator Compares all internal member vars for equality
Note
Does not compare _parent
-
__device__ inline bool operator!=(const Message &rhs) const
This should only be called to compare against end() It has been modified to check for end of iteration with minimal instructions Therefore it does not even perform the equality operation
Note
Use operator==() if proper equality is required
-
__device__ inline Message &operator++()
Updates the message to return variables from the next message in the message list
- Returns:
Returns itself
-
template<typename T, unsigned int N>
__device__ T getVariable(const char (&variable_name)[N]) const Returns the value for the current message attached to the named variable
- Parameters:
variable_name – Name of the variable
- Template Parameters:
T – type of the variable
N – Length of variable name (this should be implicit if a string literal is passed to variable name)
- Returns:
The specified variable, else 0x0 if an error occurs
-
template<typename T, flamegpu::size_type N, unsigned int M>
__device__ T getVariable(const char (&variable_name)[M], unsigned int index) const Returns the specified variable array element from the current message attached to the named variable
- Parameters:
variable_name – name used for accessing the variable, this value should be a string literal e.g. “foobar”
index – Index of the element within the variable array to return
- Template Parameters:
T – Type of the message variable being accessed
N – The length of the array variable, as set within the model description hierarchy
M – Length of variable_name, this should always be implicit if passing a string literal
- Throws:
exception::DeviceError – If name is not a valid variable within the agent (flamegpu must be built with FLAMEGPU_SEATBELTS enabled for device error checking)
exception::DeviceError – If T is not the type of variable ‘name’ within the message (flamegpu must be built with FLAMEGPU_SEATBELTS enabled for device error checking)
exception::DeviceError – If index is out of bounds for the variable array specified by name (flamegpu must be built with FLAMEGPU_SEATBELTS enabled for device error checking)
-
__device__ inline Message(const Filter &parent, const int relative_cell_y, const int _cell_index_max, const int _cell_index)
-
__device__ inline Filter(const MetaData *_metadata, float x, float y)