# Mixed Reality Behaviors

### Internal

#### Poi Metadata Handler

Behavior that handles the meta data of a single poi.

This behavior is available for 3D scenes only.

**Common Properties**

<table class="doxtable" id="bkmrk-property-name-type-d" style="width: 100%;"><tbody><tr><th style="width: 16.804%;">**Property Name**</th><th style="width: 38.3031%;">**Type**</th><th style="width: 44.9753%;">**Description**</th></tr><tr><td style="width: 16.804%;">IconNodes</td><td style="width: 38.3031%;">ArrayProperty&lt;Candera::AbstractNodePointer&gt;</td><td style="width: 44.9753%;">A process value event is sent to this nodes, if a respective poi update event arrives.</td></tr><tr><td style="width: 16.804%;">NameNodes  
</td><td style="width: 38.3031%;">ArrayProperty&lt;Candera::AbstractNodePointer&gt;</td><td style="width: 44.9753%;">A process value event is sent to this nodes, if a respective poi update event arrives.</td></tr><tr><td style="width: 16.804%;">OpenNowNodes  
</td><td style="width: 38.3031%;">ArrayProperty&lt;Candera::AbstractNodePointer&gt;</td><td style="width: 44.9753%;">A process value event is sent to this nodes, if a respective poi update event arrives.</td></tr><tr><td style="width: 16.804%;">RatingNodes  
</td><td style="width: 38.3031%;">ArrayProperty&lt;Candera::AbstractNodePointer&gt;</td><td style="width: 44.9753%;">A process value event is sent to this nodes, if a respective poi update event arrives.</td></tr><tr><td style="width: 16.804%;">PriceLevelNodes  
</td><td style="width: 38.3031%;">ArrayProperty&lt;Candera::AbstractNodePointer&gt;</td><td style="width: 44.9753%;">A process value event is sent to this nodes, if a respective poi update event arrives.</td></tr><tr><td style="width: 16.804%;">InfoTextNodes  
</td><td style="width: 38.3031%;">ArrayProperty&lt;Candera::AbstractNodePointer&gt;</td><td style="width: 44.9753%;">A process value event is sent to this nodes, if a respective poi update event arrives.</td></tr></tbody></table>

---

#### Distance Alpha Fading

**Description**

Distance Alpha Fading is a Behavior Building Block available in Construction Kit.

It receives a value representing the camera position and performs arithmetic operations on it to calculate target node alpha value.

The following operations are performed on input value:

<div class="contents" id="bkmrk-map-%28scale%29-value-fr"><div class="contents"><div class="textblock">- Map (scale) value from initial range (default 0.00..100.00) to target range (default 0.00..1.00)
- Negate scaled value (changes the range to 0.00..-1.00) by multiplication (default multiplicand is -1.00)
- Increase negated value (changes the range to 1.00..0.00) by addition (default addend is +1.00)
- Sets calculated alpha value on target node using <span style="color: rgb(230, 126, 35);">[Set Alpha Value](https://doc316en.candera.eu/link/647#bkmrk-set-alpha-value)</span>

</div></div></div>**Common Properties**

<div class="contents" id="bkmrk-property-name-type-d-0"><div class="textblock"><table class="doxtable"><tbody><tr><th>**Property Name**</th><th>**Type**</th><th>**Description**</th></tr><tr><td>Input Min</td><td>FeatStd::Optional&lt;FeatStd::Variant&gt;  
</td><td>This minimum value has to be set for input value scaling to take effect.

*FeatStd::Float expected.*

</td></tr><tr><td>Input Max</td><td>FeatStd::Optional&lt;FeatStd::Variant&gt;  
</td><td>This maximum value has to be set for input value scaling to take effect.

*FeatStd::Float expected.*

</td></tr><tr><td>Multiplication Value</td><td>[FeatStd::Variant](http://dev.doc.cgistudio.at/APILINK/class_feat_std_1_1_variant.html)  
</td><td>Multiplies received value by this number (after scaling).

*FeatStd::Float expected.*

</td></tr><tr><td>Addition Value</td><td>[FeatStd::Variant](http://dev.doc.cgistudio.at/APILINK/class_feat_std_1_1_variant.html)  
</td><td>Adds this number to received value (after multiplication).

*FeatStd::Float expected.*

</td></tr><tr><td>Target Node</td><td>[Candera::AbstractNodePointer](http://dev.doc.cgistudio.at/APILINK/class_candera_1_1_abstract_node_pointer.html "The class AbstractCameraPointer is an wrapper class to abstract 2D and 3D camera nodes.")</td><td>Target node that will have its alpha value set.</td></tr></tbody></table>

</div></div>#### Navigation Path

Registers to navigation points and displays them as mesh in world space.

This behavior is available for 3D scenes only.

**Common Properties**

<table class="doxtable" id="bkmrk-property-name-type-d-1" style="width: 100%; height: 385.734px;"><tbody><tr style="height: 29.4667px;"><th style="width: 19.028%; height: 29.4667px;">**Property Name**</th><th style="width: 30.1483%; height: 29.4667px;">**Type**</th><th style="width: 50.9061%; height: 29.4667px;">**Description**</th></tr><tr style="height: 57.4667px;"><td style="width: 19.028%; height: 57.4667px;">ColorMode</td><td style="width: 30.1483%; height: 57.4667px;">ColorMode::Enum</td><td style="width: 50.9061%; height: 57.4667px;">Select how color is displayed.

*Possible values: Color, RGBA*

</td></tr><tr style="height: 29.4667px;"><td style="width: 19.028%; height: 29.4667px;">Color  
</td><td style="width: 30.1483%; height: 29.4667px;">Candera::Color</td><td style="width: 50.9061%; height: 29.4667px;">Determines the color of the mesh.  
</td></tr><tr style="height: 29.4667px;"><td style="width: 19.028%; height: 29.4667px;">Width  
</td><td style="width: 30.1483%; height: 29.4667px;">FeatStd::Float</td><td style="width: 50.9061%; height: 29.4667px;">Determines the width of the mesh.</td></tr><tr style="height: 29.4667px;"><td style="width: 19.028%; height: 29.4667px;">Length  
</td><td style="width: 30.1483%; height: 29.4667px;">FeatStd::Float</td><td style="width: 50.9061%; height: 29.4667px;">Determines the length of the mesh</td></tr><tr style="height: 29.4667px;"><td style="width: 19.028%; height: 29.4667px;">YOffset  
</td><td style="width: 30.1483%; height: 29.4667px;">FeatStd::Float</td><td style="width: 50.9061%; height: 29.4667px;">Applies y-offset to the mesh.</td></tr><tr style="height: 63.0667px;"><td style="width: 19.028%; height: 63.0667px;">InputPoints  
</td><td style="width: 30.1483%; height: 63.0667px;">ListPropertyType&lt; CgiStudioControl::Internal::AR::ArPoint&gt;</td><td style="width: 50.9061%; height: 63.0667px;">This property is used to bind input points.</td></tr><tr style="height: 29.4667px;"><td style="width: 19.028%; height: 29.4667px;">InputPointHandling  
</td><td style="width: 30.1483%; height: 29.4667px;">InputPointHandling::Enum</td><td style="width: 50.9061%; height: 29.4667px;">Determines how new input points are used for the mesh.

*Possible values. Attach, Replace*

</td></tr><tr style="height: 29.4667px;"><td style="width: 19.028%; height: 29.4667px;">InterpolationType  
</td><td style="width: 30.1483%; height: 29.4667px;">InterpolationType::Enum</td><td style="width: 50.9061%; height: 29.4667px;">Determines which interpolation method is used.

*Possible values: Linear, Bezier, Spline, None*

</td></tr><tr style="height: 29.4667px;"><td style="width: 19.028%; height: 29.4667px;">MeshType  
</td><td style="width: 30.1483%; height: 29.4667px;">MeshType::Enum</td><td style="width: 50.9061%; height: 29.4667px;">Determines which primitive type is used.

*Possible values: Solid, Points*

</td></tr><tr style="height: 29.4667px;"><td style="width: 19.028%; height: 29.4667px;">IsAdvanced  
</td><td style="width: 30.1483%; height: 29.4667px;">bool  
</td><td style="width: 50.9061%; height: 29.4667px;">Enables advanced settings of the behavior.</td></tr></tbody></table>

**Advanced Properties**

<table class="doxtable" id="bkmrk-property-name-type-d-2" style="width: 100%;"><tbody><tr><th style="width: 20.1391%;">**Property Name**</th><th style="width: 18.4111%;">**Type**</th><th style="width: 61.5321%;">**Description**</th></tr><tr><td style="width: 20.1391%;">Red  
</td><td style="width: 18.4111%;">FeatStd::UInt32</td><td style="width: 61.5321%;">Red color channel.

*This property is only available if 'ColorMode' is set to 'RGBA'.*

</td></tr><tr><td style="width: 20.1391%;">Green  
</td><td style="width: 18.4111%;">FeatStd::UInt32</td><td style="width: 61.5321%;">Green color channel.

*This property is only available if 'ColorMode' is set to 'RGBA'.*

</td></tr><tr><td style="width: 20.1391%;">Blue  
</td><td style="width: 18.4111%;">FeatStd::UInt32</td><td style="width: 61.5321%;">Blue color channel.

*This property is only available if 'ColorMode' is set to 'RGBA'.*

</td></tr><tr><td style="width: 20.1391%;">Alpha  
</td><td style="width: 18.4111%;">FeatStd::UInt32</td><td style="width: 61.5321%;">Alpha color channel.

*This property is only available if 'ColorMode' is set to 'RGBA'.*

</td></tr><tr><td style="width: 20.1391%;">InputPointMinDistance  
</td><td style="width: 18.4111%;">FeatStd::Float</td><td style="width: 61.5321%;">Minimum distance of two control points. Input points that are closer together will be rejected.

*This property is only available if 'IsAdvanced' is checked.*

</td></tr><tr><td style="width: 20.1391%;">ReqFragmentSize  
</td><td style="width: 18.4111%;">FeatStd::SizeType</td><td style="width: 61.5321%;">Size of the fragment that is requested from the input point list.

*This property is only available if 'IsAdvanced' is checked.*

</td></tr><tr><td style="width: 20.1391%;">ReqThresholdDistance  
</td><td style="width: 18.4111%;">FeatStd::Float</td><td style="width: 61.5321%;">If the distance between camera and the last point is below this threshold, request a new fragment of input points.

*This property is only available if 'IsAdvanced' is checked.*

</td></tr><tr><td style="width: 20.1391%;">PointSize  
</td><td style="width: 18.4111%;">FeatStd::Float</td><td style="width: 61.5321%;">Determines the point size.

*This property is only available if 'MeshType' is set to 'Points'.*

</td></tr><tr><td style="width: 20.1391%;">NumOfRowsPerInputPoint  
</td><td style="width: 18.4111%;">FeatStd::UInt32</td><td style="width: 61.5321%;">Determines how many vertex rows are used to interpolate between two input points. Increasing this value makes the mesh smoother, but will also shorten the distance of the overlay, as number of vertices per row remain constant.

*This property is only available if 'IsAdvanced' is checked and 'InterpolationType' is set to 'None'.*

</td></tr><tr><td style="width: 20.1391%;">NumOfVertexRows  
</td><td style="width: 18.4111%;">FeatStd::UInt32</td><td style="width: 61.5321%;">Amount of vertical vertices in the mesh.

*This property is only available if 'IsAdvanced' is checked.*

</td></tr><tr><td style="width: 20.1391%;">NumOfVertexColums  
</td><td style="width: 18.4111%;">FeatStd::UInt32</td><td style="width: 61.5321%;">Amount of horizontal vertices in the mesh.

*This property is only available if 'IsAdvanced' is checked.*

</td></tr></tbody></table>

#### Poi Configuration

Behavior that configures the mapping of a name to a assetId, such that it can be found by the PoiFactory.

This behavior is available for 3D scenes only.

**Common Properties**

<table class="doxtable" id="bkmrk-property-name-type-d-3" style="width: 100%; height: 88.4001px;"><tbody><tr style="height: 29.4667px;"><th style="width: 19.0228%; height: 29.4667px;">**Property Name**</th><th style="width: 33.9838%; height: 29.4667px;">**Type**</th><th style="width: 47.0758%; height: 29.4667px;">**Description**</th></tr><tr style="height: 29.4667px;"><td style="width: 19.0228%; height: 29.4667px;">PoiName</td><td style="width: 33.9838%; height: 29.4667px;">FeatStd::UInt32</td><td style="width: 47.0758%; height: 29.4667px;">Name of this poi.</td></tr><tr style="height: 29.4667px;"><td style="width: 19.0228%; height: 29.4667px;">PoiControlAssetId  
</td><td style="width: 33.9838%; height: 29.4667px;">FeatStd::UInt32</td><td style="width: 47.0758%; height: 29.4667px;">ID of the control that is associated with PoiName.</td></tr></tbody></table>

#### Poi Manager

Manager of the poi control nodes.

This behavior is available for 3D scenes only.

**Common Properties**

<table class="doxtable" id="bkmrk-property-name-type-d-4" style="width: 100%; height: 227.2px;"><tbody><tr style="height: 29.4667px;"><th style="width: 21.4971%; height: 29.4667px;">**Property Name**</th><th style="width: 31.5094%; height: 29.4667px;">**Type**</th><th style="width: 47.0758%; height: 29.4667px;">**Description**</th></tr><tr style="height: 46.2667px;"><td style="width: 21.4971%; height: 46.2667px;">StreetPoints</td><td style="width: 31.5094%; height: 46.2667px;">ListPropertyType&lt;CgiStudioControl::Internal::AR::ArPoint&gt;</td><td style="width: 47.0758%; height: 46.2667px;">List of points of the street. Used to align the rotation of POIs.</td></tr><tr style="height: 46.2667px;"><td style="width: 21.4971%; height: 46.2667px;">StreetPointsMinDistance</td><td style="width: 31.5094%; height: 46.2667px;">FeatStd::Float</td><td style="width: 47.0758%; height: 46.2667px;">Minimum distance between two street points. Street points that are closer together will be rejected.</td></tr><tr style="height: 29.4667px;"><td style="width: 21.4971%; height: 29.4667px;">ReqDistance</td><td style="width: 31.5094%; height: 29.4667px;">FeatStd::Float</td><td style="width: 47.0758%; height: 29.4667px;">The distance in which POIs are requested from the model.</td></tr><tr style="height: 46.2667px;"><td style="width: 21.4971%; height: 46.2667px;">ReqThresholdDistance</td><td style="width: 31.5094%; height: 46.2667px;">FeatStd::Float</td><td style="width: 47.0758%; height: 46.2667px;">Once the camera has moved this specified distance a new request will be sent.</td></tr><tr style="height: 29.4667px;"><td style="width: 21.4971%; height: 29.4667px;">PoiMetaData</td><td style="width: 31.5094%; height: 29.4667px;">ArrayProperty&lt;FeatStd::String&gt;</td><td style="width: 47.0758%; height: 29.4667px;">Use databinding to receive metadata updates for the POIs</td></tr></tbody></table>

#### Pose Tracking

Behavior that sets the pose of a target node.

This behavior is available for 3D scenes only.

**Common Properties**

<table class="doxtable" id="bkmrk-property-name-type-d-5" style="width: 100%;"><tbody><tr><th style="width: 19.0228%;">**Property Name**</th><th style="width: 33.9838%;">**Type**</th><th style="width: 47.0758%;">**Description**</th></tr><tr><td style="width: 19.0228%;">Position</td><td style="width: 33.9838%;">Candera::Vector3</td><td style="width: 47.0758%;">Position on the target node.</td></tr><tr><td style="width: 19.0228%;">Rotation</td><td style="width: 33.9838%;">Candera::Vector3</td><td style="width: 47.0758%;">Rotation on the target node.</td></tr><tr><td style="width: 19.0228%;">EnableUserControl</td><td style="width: 33.9838%;">bool  
</td><td style="width: 47.0758%;">Enable to use WASD control to navigate the camera instead of databinding.</td></tr><tr><td style="width: 19.0228%;">EventReceivers</td><td style="width: 33.9838%;">ArrayProperty&lt;Candera::AbstractNodePointer&gt;</td><td style="width: 47.0758%;">List of nodes that will receive position and rotation update events.</td></tr></tbody></table>