Class In::Filter
Defined in File MessageArray3DDevice.cuh
Nested Relationships
This class is a nested type of Class MessageArray3D::In.
Nested Types
Class Documentation
-
class Filter
This class is created when a search origin is provided to MessageArray2D::In::operator()(size_type, size_type, size_type = 1) It provides iterator access to a subset of the full message list, according to the provided search origin and radius The radius does not wrap the message list bounds
See also
MessageArray2D::In::operator()(size_type, size_type, size_type)
Public Functions
-
__device__ inline Filter(const MetaData *_metadata, const size_type x, const size_type y, const size_type z, const size_type _radius)
Constructor, takes the search parameters required
- Parameters:
_metadata – Pointer to message list metadata
x – Search origin x coord
y – Search origin y coord
z – Search origin z coord
_radius – Search radius
-
__device__ inline Filter()
A null filter which always returns 0 messages
-
__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_x, const int relative_y, const int relative_z)
Constructor This iterator is constructed by MessageArray3D::In::Filter::begin()(size_type, size_type, size_type, size_type)
-
__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_x, const int relative_y, const int relative_z)
-
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_x, const int relative_y, const int relative_z)
Constructs a message and directly initialises all of it’s member variables
Note
See member variable documentation for their purposes
-
__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
Inequality operator Returns inverse of equality operator
See also
operator==(const Message&)
-
__device__ inline Message &operator++()
Updates the message to return variables from the next cell in the Moore neighbourhood
- Returns:
Returns itself
-
__device__ inline size_type getX() const
Returns x array index of message
-
__device__ inline size_type getY() const
Returns y array index of message
-
__device__ inline size_type getZ() const
Returns z array index of message
-
__device__ inline int getOffsetX() const
Returns the x array offset of message relative to the search origin
-
__device__ inline int getOffsetY() const
Returns the y array offset of message relative to the search origin
-
__device__ inline int getOffsetZ() const
Returns the z array offset of message relative to the search origin
-
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_x, const int relative_y, const int relative_z)
-
__device__ inline Filter(const MetaData *_metadata, const size_type x, const size_type y, const size_type z, const size_type _radius)