Polarith AI
1.8
MoveBehaviour Class Referenceabstract

Description

MoveBehaviour is the abstract base class for all the behaviours in the Move module of Polarith AI (back-end class).

It is derived from CriteriaBehaviour. In addition, it holds a reference for quick access to the associated Context so that every MoveBehaviour is able to obtain all the necessary information for writing/modifying objective values in the corresponding Context.Problem.

This class also defines and implements additional mechanics for manipulating objective values. The methods MapBySensitivity(MappingType, Structure, Vector3, float) and WriteValue are designed to support this process.

A MoveBehaviour can be marked as thread-safe in its corresponding front-end class through setting AIMBehaviour.ThreadSafe to true. If you do this, be sure not to use reference types of the Unity scripting API and not to make any possibly unsafe variable writes. If at least one behaviour is not marked AIMBehaviour.ThreadSafe, the whole agent will not be part of the multithreading (Pro only).

Base back-end class of every derived AIMBehaviour.

Inheritance diagram for MoveBehaviour:
CriteriaBehaviour IBehaviour PerceptBehaviour< T > PlanarConvolution PlanarInterpolation Retention Stabilization

Public Fields

Context Context
 Reference for quick access to the associated context instance. More...
 
const int CentralOrder = 1000
 The minimum Order for behaviours which should be processed before behaviours using LastOrder but after all other behaviours. More...
 
const int LastOrder = 2000
 The minimum Order for behaviours which should be processed at last. More...
 

Protected Fields

Problem intermediate = new Problem()
 Holds the intermediate result of this behaviour which can be applied to the context map at the end of an update step using BlendValues(LayerBlendingType, int). More...
 
bool enabled
 Determines if this IBehaviour is active or inactive. More...
 

Properties

bool Enabled [get, set]
 Determines if this IBehaviour is active or inactive. More...
 
int Order [get, set]
 Specifies the execution order of this behaviour. More...
 

Public Methods

abstract void Behave ()
 Should be used to write/modify objective values for an IProblem<T> instance hold by a class implementing IContext<TValue, TStructure>. More...
 

Public Static Methods

static float MapSpecial (MappingType mapping, float min, float max, float value)
 Maps a value lying between min and max to a resulting value between 0 and 1. More...
 
static float MapSpecialSqr (MappingType mapping, float sqrMin, float sqrMax, float sqrValue)
 Maps a sqrValue lying between sqrMin and sqrMax to a resulting value between 0 and 1, whereby all the given parameters are expected to be squared. More...
 

Protected Methods

float MapBySensitivity (MappingType mapping, Structure structure, Vector3 direction, float sensitivityOffset=0.0f)
 Maps (magnitude) values by sensitivity so that the Structure.Sensitivity (plus the given sensitivityOffset ) is used as similarity threshold for the angle between the given direction and the Structure.Direction. More...
 
float MapBySensitivityPlane (MappingType mapping, Structure structure, Vector3 planeDirection1, Vector3 planeDirection2, float offset, float sensitivityOffset=0.0f)
 Maps (magnitude) values by sensitivity so that the Structure.Sensitivity (plus the given sensitivityOffset ) is used as similarity threshold for the smallest angle between a plane defined by planeDirection1 , planeDirection2 and the Structure.Direction. More...
 
void WriteValue (ValueWritingType valueWriting, int objectiveIndex, int valueIndex, float value, bool intermediate=false)
 Writes objective values to the Context.Problem as specified with valueWriting . More...
 
void BlendValues (LayerBlendingType layerBlending, int objectiveIndex)
 Writes the values of the intermediate to the actual Context.Problem. More...
 
Imprint