Polarith AI
1.8
PlanarInterpolation Class Reference

Description

PlanarInterpolation finds the interpolation parameter for a possible better solution located between two receptors (back-end class).

Thus, it is executed after the Context has found a solution which was already written to the decision. A possible better solution is found by solving a linear equation consisting of the TargetObjective values. If a better solution can be found and is valid to use, the values for the other objectives are interpolated based on the already found interpolation parameter. The new index and the updated objective values are written back to the decision.

This behaviour is only applicable for planar sensor configurations, since it assumes that every receptor has got a maximum of 2 neighbours (left and right).

Back-end class of AIMPlanarInterpolation. This behaviour is thread-safe.

Inheritance diagram for PlanarInterpolation:
MoveBehaviour CriteriaBehaviour IBehaviour

Public Fields

int TargetObjective
 To find a better solution, this behaviour will solve a linear equation based on the TargetObjective values. More...
 
bool Constraint = true
 It is possible that a better solution with respect to the TargetObjective violates a constraint of another objective. More...
 
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

 PlanarInterpolation ()
 Creates a new PlanarInterpolation instance. More...
 
override void Behave ()
 This method executes the main algorithm of this behaviour and is called within Context.Evaluate in order to set/modify objective values for the associated Context.Problem. 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