diff --git a/Documentation/html/class_nano_brain_1_1_neuron.html b/Documentation/html/class_nano_brain_1_1_neuron.html index 0f64588..e0275ca 100644 --- a/Documentation/html/class_nano_brain_1_1_neuron.html +++ b/Documentation/html/class_nano_brain_1_1_neuron.html @@ -92,8 +92,8 @@ $(function() {
A neuron is a basic Nucleus.
A neuron combines the weighted input from other neurons and applies an activation function to it to compute the output value:
The synapses are connections to other neurons. Each connection has a weight which is used to multiply the output of that other neuron before it is used by the combinator.
[ge
Performs a sampling function to retrieve a new sensor output value.
-- Returns
- Sensor output value
+- Returns
- 0.0
+This is a dummy implementation which always returns 0.0 because this component is an abstract sensor
Reimplemented from Sensor.
diff --git a/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_sensor.html b/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_sensor.html
index ba8e5e3..b03afcf 100644
--- a/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_sensor.html
+++ b/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_sensor.html
@@ -157,7 +157,8 @@ float [ge
Performs a sampling function to retrieve a new sensor output value.
-- Returns
- Sensor output value
+- Returns
- 0.0
+This is a dummy implementation which always returns 0.0 because this component is an abstract sensor
Reimplemented in LightSensor, and TouchSensor.
diff --git a/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor-members.html.meta b/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor-members.html.meta
new file mode 100644
index 0000000..2a9f580
--- /dev/null
+++ b/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor-members.html.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: a9c7f0b34010ecd7e91e6daf22bd48f7
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.html.meta b/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.html.meta
new file mode 100644
index 0000000..f8be7e4
--- /dev/null
+++ b/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.html.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 4e39f2f342374e237beb37f70f727762
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.png.meta b/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.png.meta
new file mode 100644
index 0000000..0900dbb
--- /dev/null
+++ b/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.png.meta
@@ -0,0 +1,117 @@
+fileFormatVersion: 2
+guid: 96024856ea208e4728e8e86944379590
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Documentation/html/rtf/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.png.meta b/Documentation/html/rtf/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.png.meta
new file mode 100644
index 0000000..680da27
--- /dev/null
+++ b/Documentation/html/rtf/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.png.meta
@@ -0,0 +1,117 @@
+fileFormatVersion: 2
+guid: e6d9a9d410b135977b2794b9901f8495
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ customData:
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spriteCustomMetadata:
+ entries: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Documentation/html/rtf/refman.rtf b/Documentation/html/rtf/refman.rtf
index 3fc1b18..8063bb2 100644
--- a/Documentation/html/rtf/refman.rtf
+++ b/Documentation/html/rtf/refman.rtf
@@ -1678,8 +1678,9 @@ Performs a sampling function to retrieve a new sensor output value. }}\par
\par
{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Returns\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30
-Sensor output value\par
-}}}{
+0.0\par
+}}This is a dummy implementation which always returns 0.0 because this component is an abstract sensor \par
+}{
Reimplemented from {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAEW" }{}}{\fldrslt {\cs37\ul\cf2 Sensor}}}
.}\par
}
@@ -5427,8 +5428,9 @@ Performs a sampling function to retrieve a new sensor output value. }}\par
\par
{{\s5\sb90\sa30\keepn\widctlpar\adjustright \b\f1\fs20\cgrid
Returns\par}\pard\plain \s82\li720\widctlpar\ql\adjustright \fs20\cgrid {\s17 \sa60 \sb30
-Sensor output value\par
-}}}{
+0.0\par
+}}This is a dummy implementation which always returns 0.0 because this component is an abstract sensor \par
+}{
Reimplemented in {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAET" }{}}{\fldrslt {\cs37\ul\cf2 LightSensor}}}
, and {\field {\*\fldinst { HYPERLINK \\l "AAAAAAAAFD" }{}}{\fldrslt {\cs37\ul\cf2 TouchSensor}}}
.}\par
diff --git a/Documentation/html/search/classes_6.js.meta b/Documentation/html/search/classes_6.js.meta
new file mode 100644
index 0000000..983d1ff
--- /dev/null
+++ b/Documentation/html/search/classes_6.js.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 3a660a0c5a6eac121a2f0c1f9a59e1fe
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Documentation/html/search/classes_7.js.meta b/Documentation/html/search/classes_7.js.meta
new file mode 100644
index 0000000..dfb3429
--- /dev/null
+++ b/Documentation/html/search/classes_7.js.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 793684c257751ca56b7f66cae0c8ec7b
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Documentation/html/search/properties_8.js.meta b/Documentation/html/search/properties_8.js.meta
new file mode 100644
index 0000000..690cb1d
--- /dev/null
+++ b/Documentation/html/search/properties_8.js.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: bb515f8df2b8fd885840d93140450f0d
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Documentation/html/search/variables_d.js.meta b/Documentation/html/search/variables_d.js.meta
new file mode 100644
index 0000000..221c029
--- /dev/null
+++ b/Documentation/html/search/variables_d.js.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: c6bd8d0abaaba24d785386f2a141a6d7
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Runtime/Scripts/ScriptableObjects/ClusterPrefab.cs b/Runtime/Scripts/ScriptableObjects/ClusterPrefab.cs
index e51b266..3b9e835 100644
--- a/Runtime/Scripts/ScriptableObjects/ClusterPrefab.cs
+++ b/Runtime/Scripts/ScriptableObjects/ClusterPrefab.cs
@@ -6,6 +6,7 @@ namespace NanoBrain.Unity {
/// The Unity ScriptableObject to implement re-usable Cluster Prefabs
///
[CreateAssetMenu(menuName = "Passer/Cluster")]
+ [HelpURL("https://passer.life/documentation/nanobrain/Documentation/html/class_nano_brain_1_1_unity_1_1_cluster_prefab.html")]
public class ClusterPrefab : ScriptableObject {
///
diff --git a/Samples/Braitenberg/Scripts/LightSensor.cs b/Samples/Braitenberg/Scripts/LightSensor.cs
index 1b81483..cf2a2f5 100644
--- a/Samples/Braitenberg/Scripts/LightSensor.cs
+++ b/Samples/Braitenberg/Scripts/LightSensor.cs
@@ -5,6 +5,7 @@ namespace NanoBrain.Unity.Braitenberg {
///
/// A light sensor
///
+ [HelpURL("https://passer.life/documentation/nanobrain/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_light_sensor.html")]
public class LightSensor : Sensor {
///
/// If true, perform occlusion checks with raycasts
diff --git a/Samples/Braitenberg/Scripts/Motor.cs b/Samples/Braitenberg/Scripts/Motor.cs
index 40736da..c70c4bd 100644
--- a/Samples/Braitenberg/Scripts/Motor.cs
+++ b/Samples/Braitenberg/Scripts/Motor.cs
@@ -6,6 +6,7 @@ namespace NanoBrain.Unity.Braitenberg {
/// A powered wheel collider, controlled by a NanoBrain::Neuron
///
[RequireComponent(typeof(WheelCollider))]
+ [HelpURL("https://passer.life/documentation/nanobrain/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_motor.html")]
public class Motor : MonoBehaviour {
///
/// The name of the NanoBrain::Neuron to control this wheel
diff --git a/Samples/Braitenberg/Scripts/Sensor.cs b/Samples/Braitenberg/Scripts/Sensor.cs
index 54d7980..8ce13d9 100644
--- a/Samples/Braitenberg/Scripts/Sensor.cs
+++ b/Samples/Braitenberg/Scripts/Sensor.cs
@@ -7,6 +7,7 @@ namespace NanoBrain.Unity.Braitenberg {
/// A non-directional sensor
///
/// The sensor has a field of view, but the signal returned does not include a direction
+ [HelpURL("https://passer.life/documentation/nanobrain/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_sensor.html")]
public class Sensor : MonoBehaviour {
///
/// Maximum distance the sensor detects anything
@@ -79,27 +80,11 @@ namespace NanoBrain.Unity.Braitenberg {
///
/// Performs a sampling function to retrieve a new sensor output value
///
- /// Sensor output value
- // Cast a short set of rays in a cone and accumulate "brightness" from hits.
+ /// 0.0
+ /// This is a dummy implementation which always returns 0.0
+ /// because this component is an abstract sensor
protected virtual float SampleSensor() {
- int rays = 7;
- float halfAngle = 30f;
- float total = 0f;
-
- for (int i = 0; i < rays; i++) {
- float t = rays == 1 ? 0.5f : (float)i / (rays - 1);
- float angle = Mathf.Lerp(-halfAngle, halfAngle, t);
- Vector3 dir = Quaternion.AngleAxis(angle, this.transform.up) * this.transform.forward;
-
- //Debug.DrawRay(this.transform.position, dir * sensorRange);
- if (Physics.Raycast(this.transform.position, dir, out RaycastHit hit, sensorRange, senseLayer)) {
- // Strength inversely proportional to distance, clamped to [0,1]
- float str = 1f - (hit.distance / sensorRange);
- // You can also sample material emission or color here if desired
- total += Mathf.Clamp01(str);
- }
- }
- return Mathf.Clamp01(total / rays);
+ return 0.0f;
}
}
}
\ No newline at end of file
diff --git a/Samples/Braitenberg/Scripts/TouchSensor.cs b/Samples/Braitenberg/Scripts/TouchSensor.cs
index fdf8c8a..3b118f3 100644
--- a/Samples/Braitenberg/Scripts/TouchSensor.cs
+++ b/Samples/Braitenberg/Scripts/TouchSensor.cs
@@ -5,6 +5,7 @@ namespace NanoBrain.Unity.Braitenberg {
///
/// A sensor which can detect contacts with static GameObjects or Rigidbodies
///
+ [HelpURL("https://passer.life/documentation/nanobrain/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_touch_sensor.html")]
public class TouchSensor : Sensor {
///
diff --git a/Samples/Braitenberg/Scripts/Vehicle.cs b/Samples/Braitenberg/Scripts/Vehicle.cs
index 61094f1..cef2dcf 100644
--- a/Samples/Braitenberg/Scripts/Vehicle.cs
+++ b/Samples/Braitenberg/Scripts/Vehicle.cs
@@ -6,6 +6,7 @@ namespace NanoBrain.Unity.Braitenberg {
/// A Braitenberg style vehicle with two sensors and two motors, powered by a Nanobrain
///
[RequireComponent(typeof(Rigidbody))]
+ [HelpURL("https://passer.life/documentation/nanobrain/Documentation/html/class_nano_brain_1_1_unity_1_1_braitenberg_1_1_vehicle.html")]
public class Vehicle : MonoBehaviour {
///
/// The NanoBrain::Cluster controlling the vehicle