Class MsgSpatial2D::In

Nested Relationships

This class is a nested type of Class MsgSpatial2D.

Nested Types

Class Documentation

class MsgSpatial2D::In

This class is accessible via DeviceAPI.message_in if MsgSpatial3D is specified in FLAMEGPU_AGENT_FUNCTION It gives access to functionality for reading spatially partitioned messages

Public Functions

__device__ inline In(Curve::NamespaceHash agentfn_hash, Curve::NamespaceHash msg_hash, const void *_metadata)

Constructer Initialises member variables

  • agentfn_hash – Added to msg_hash to produce combined_hash

  • msg_hash – Added to agentfn_hash to produce combined_hash

  • _metadata – Reinterpreted as type MsgSpatial3D::MetaData

__device__ inline Filter operator()(const float &x, const float &y) const

Returns a Filter object which provides access to message iterator for iterating a subset of messages including those within the radius of the search origin

  • x – Search origin x coord

  • y – Search origin y coord

__forceinline__ __device__ inline float radius() const

Returns the search radius of the message list defined in the model description

class Filter

This class is created when a search origin is provided to MsgSpatial2D::In::operator()(float, float) It provides iterator access to a subset of the full message list, according to the provided search origin


MsgSpatial2D::In::operator()(float, float)

Public Functions

__device__ inline Filter(const MetaData *_metadata, const Curve::NamespaceHash &combined_hash, const float &x, const float &y)

Constructor, takes the search parameters requried

  • _metadata – Pointer to message list metadata

  • combined_hash – agentfn+message hash for accessing message data

  • 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


This iterator is the same for all message list subsets

class iterator

Stock iterator for iterating MsgSpatial3D::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 MsgSpatial2D::In::Filter::begin()(float, float)


MsgSpatial2D::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

class Message

Provides access to a specific message Returned by the iterator



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


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


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


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 itself

__device__ inline void nextStrip()

Utility function for deciding next strip to access

template<typename T, size_type N>
__device__ T getVariable(const char (&variable_name)[N]) const

Returns the value for the current message attached to the named variable


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)


The specified variable, else 0x0 if an error occurs