diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4ac6b514..724f79b2 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -34,12 +34,18 @@ jobs: with: python-version-file: API/pyproject.toml # cache: 'pip' + + # 3.4.3. Install Poetry + - name: Install Poetry + run: | + pip install poetry + poetry --version # Install dependencies (if any). They will be cached with saved for next time with the cache command above - name: Install run: pip install API/. - # 3.4.3. Run tests (execute arbitrary commands in shell) + # 3.4.4. Run tests (execute arbitrary commands in shell) - name: 🏃Run tests run: python -m unittest discover -s API \ No newline at end of file diff --git a/.github/workflows/version_bump.yml b/.github/workflows/version_bump.yml index 888d6cd6..38f8326a 100644 --- a/.github/workflows/version_bump.yml +++ b/.github/workflows/version_bump.yml @@ -37,7 +37,7 @@ jobs: - name: Extract current version from API/pyproject.toml id: extract-version run: | - version=$(python -c "import toml; print(toml.load('API/pyproject.toml')['project']['version'])") + version=$(python -c "import toml; print(toml.load('API/pyproject.toml')['tool.poetry']['version'])") echo "Current version: $version" echo "::set-output name=current_version::$version" diff --git a/.gitignore b/.gitignore index cf107446..fbf19865 100644 --- a/.gitignore +++ b/.gitignore @@ -107,3 +107,4 @@ UnityClient/Packages/* editable_venv/* API/build/* API/oursin.egg-info/* +API/poetry.lock diff --git a/API/oursin.egg-info/requires.txt b/API/oursin.egg-info/requires.txt index 3adaad91..3416b447 100644 --- a/API/oursin.egg-info/requires.txt +++ b/API/oursin.egg-info/requires.txt @@ -1,3 +1,3 @@ -python-socketio[client]<5.10,>=5.8 +python-socketio[client]>=5.8,<5.11 numpy>=1.24.3,<1.27.0 -Pillow<10.1,>=9.5 +Pillow>=9.5,<10.2 diff --git a/API/oursin/__init__.py b/API/oursin/__init__.py index 881dd56f..9d9fbb83 100644 --- a/API/oursin/__init__.py +++ b/API/oursin/__init__.py @@ -4,7 +4,7 @@ Python library for connecting to and sending data to a Universal Renderer for Neuroscience renderer. """ __author__ = 'Daniel Birman' -__version__ = "0.4.7" +__version__ = "0.5.0" # load the client from . import client @@ -18,8 +18,8 @@ # load the object controls from . import lines -from . import neurons -from . import primitives +from . import meshes +from . import particles from . import probes from . import text from . import volumes diff --git a/API/oursin/atlas/__init__.py b/API/oursin/atlas/__init__.py index 33885b7a..bfa4d0cc 100644 --- a/API/oursin/atlas/__init__.py +++ b/API/oursin/atlas/__init__.py @@ -1,2 +1,5 @@ -from . import ccf -from . import waxholm \ No newline at end of file +from .ontology import * + +ccf25 = Atlas('ccf25') +waxholm39 = Atlas('waxholm39') +waxholm78 = Atlas('waxholm78') \ No newline at end of file diff --git a/API/oursin/atlas/ccf.py b/API/oursin/atlas/ccf.py deleted file mode 100644 index d933ecaa..00000000 --- a/API/oursin/atlas/ccf.py +++ /dev/null @@ -1,143 +0,0 @@ -""" Allen CCF 3D Models""" - -from .. import client - -def load(): - client.sio.emit('LoadAtlas', 'ccf25') - -def load_beryl(): - """Load all beryl areas and set visibility to True - - NOTE: One of the load functions OR set_area_visibility must be called - before you set the color/alpha/etc of brain regions. - """ - client.sio.emit('LoadDefaultAreas', 'beryl') - -def load_cosmos(): - """Load all cosmos areas and set visibility to True - - NOTE: One of the load functions OR set_area_visibility must be called - before you set the color/alpha/etc of brain regions. - """ - client.sio.emit('LoadDefaultAreas', 'cosmos') - -def set_visibility(area_visibilities): - """Set visibility of CCF area models - - **Note:** you can append a "-lh" or "-rh" suffix to any area acronym or ID to control the visibility of just one-half of the model. This can be used in all of the set_area_* functions. - - Parameters - ---------- - area_visibilities : dict {string : bool} - dictionary of area IDs or acronyms and visibility values - - Examples - -------- - >>> urn.set_visibility({'grey':True}) - >>> urn.set_visibility({8:True}) - >>> urn.set_visibility({'VISp-l':True}) - """ - client.sio.emit('SetAreaVisibility', area_visibilities) - -def set_color(area_colors): - """Set color of CCF area models. - - Parameters - ---------- - area_colors : dict {string: string} - Keys are area IDs or acronyms, Values are hex colors - - Examples - -------- - >>> urn.set_color( {'grey':"#FFFFFF"}) - >>> urn.set_color({8:"#FFFFFF"}) - >>> urn.set_color({"VISp-l":"#00000080"}) - """ - client.sio.emit('SetAreaColors', area_colors) - -def set_intensity(area_intensities): - """Set color of CCF area models using colormap. - - Parameters - ---------- - area_intensities : dict {string: float} - keys are area IDs or acronyms, values are hex colors - - Examples - -------- - >>> urn.set_intensity( {'grey':1.0}) - >>> urn.set_intensity({8:1.0}) - """ - client.sio.emit('SetAreaIntensity', area_intensities) - -def set_colormap(colormap_name): - """Set colormap used for CCF area intensity mapping - - - Options are - - cool (default, teal 0 -> magenta 1) - - grey (black 0 -> white 1) - - grey-green (grey 0, light 1/255 -> dark 1) - - grey-purple (grey 0, light 1/255 -> dark 1) - - grey-red (grey 0, light 1/255 -> dark 1) - - grey-rainbow (grey 0, rainbow colors from 1/255 -> 1) - - Parameters - ---------- - colormap_name : string - colormap name - """ - client.sio.emit('SetAreaColormap', colormap_name) - -def set_alpha(area_alpha): - """Set transparency of CCF area models. - - Parameters - ---------- - area_alpha : dict {string: float} - keys are area IDs or acronyms, values are percent transparency - - Examples - -------- - >>> urn.set_alpha( {'grey':0.5}) - >>> urn.set_alpha({8:0.5}) - """ - client.sio.emit('SetAreaAlpha', area_alpha) - -def set_material(area_materials): - """Set material of CCF area models. - - Material options are - - 'opaque-lit' or 'default' - - 'opaque-unlit' - - 'transparent-lit' - - 'transparent-unlit' - - Parameters - ---------- - area_materials : dict {string: string} - keys are area IDs or acronyms, values are material options - """ - client.sio.emit('SetAreaMaterial', area_materials) - -def set_data(area_data): - """Set the data array for each CCF area model - - Data arrays work the same as the set_area_intensity() function but are controlled by the area_index value, which can be set in the renderer or through the API. - - Parameters - ---------- - area_data : dict {string: float list} - keys area IDs or acronyms, values are a list of floats - """ - client.sio.emit('SetAreaData', area_data) - -def set_data_index(area_index): - """Set the data index for the CCF area models - - Parameters - ---------- - area_index : int - data index - """ - client.sio.emit('SetAreaIndex', area_index) \ No newline at end of file diff --git a/API/oursin/atlas/data/ccf25.structures.json b/API/oursin/atlas/data/ccf25.structures.json new file mode 100644 index 00000000..47087996 --- /dev/null +++ b/API/oursin/atlas/data/ccf25.structures.json @@ -0,0 +1 @@ +[{"acronym": "root", "id": 997, "name": "root", "structure_id_path": [997], "rgb_triplet": [255, 255, 255]}, {"acronym": "grey", "id": 8, "name": "Basic cell groups and regions", "structure_id_path": [997, 8], "rgb_triplet": [191, 218, 227]}, {"acronym": "CH", "id": 567, "name": "Cerebrum", "structure_id_path": [997, 8, 567], "rgb_triplet": [176, 240, 255]}, {"acronym": "CTX", "id": 688, "name": "Cerebral cortex", "structure_id_path": [997, 8, 567, 688], "rgb_triplet": [176, 255, 184]}, {"acronym": "CTXpl", "id": 695, "name": "Cortical plate", "structure_id_path": [997, 8, 567, 688, 695], "rgb_triplet": [112, 255, 112]}, {"acronym": "Isocortex", "id": 315, "name": "Isocortex", "structure_id_path": [997, 8, 567, 688, 695, 315], "rgb_triplet": [112, 255, 113]}, {"acronym": "FRP", "id": 184, "name": "Frontal pole, cerebral cortex", "structure_id_path": [997, 8, 567, 688, 695, 315, 184], "rgb_triplet": [38, 143, 69]}, {"acronym": "FRP1", "id": 68, "name": "Frontal pole, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 184, 68], "rgb_triplet": [38, 143, 69]}, {"acronym": "FRP2/3", "id": 667, "name": "Frontal pole, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 184, 667], "rgb_triplet": [38, 143, 69]}, {"acronym": "FRP5", "id": 526157192, "name": "Frontal pole, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 184, 526157192], "rgb_triplet": [38, 143, 69]}, {"acronym": "FRP6a", "id": 526157196, "name": "Frontal pole, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 184, 526157196], "rgb_triplet": [38, 143, 69]}, {"acronym": "FRP6b", "id": 526322264, "name": "Frontal pole, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 184, 526322264], "rgb_triplet": [38, 143, 69]}, {"acronym": "MO", "id": 500, "name": "Somatomotor areas", "structure_id_path": [997, 8, 567, 688, 695, 315, 500], "rgb_triplet": [31, 157, 90]}, {"acronym": "MOp", "id": 985, "name": "Primary motor area", "structure_id_path": [997, 8, 567, 688, 695, 315, 500, 985], "rgb_triplet": [31, 157, 90]}, {"acronym": "MOp1", "id": 320, "name": "Primary motor area, Layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 500, 985, 320], "rgb_triplet": [31, 157, 90]}, {"acronym": "MOp2/3", "id": 943, "name": "Primary motor area, Layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 500, 985, 943], "rgb_triplet": [31, 157, 90]}, {"acronym": "MOp5", "id": 648, "name": "Primary motor area, Layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 500, 985, 648], "rgb_triplet": [31, 157, 90]}, {"acronym": "MOp6a", "id": 844, "name": "Primary motor area, Layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 500, 985, 844], "rgb_triplet": [31, 157, 90]}, {"acronym": "MOp6b", "id": 882, "name": "Primary motor area, Layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 500, 985, 882], "rgb_triplet": [31, 157, 90]}, {"acronym": "MOs", "id": 993, "name": "Secondary motor area", "structure_id_path": [997, 8, 567, 688, 695, 315, 500, 993], "rgb_triplet": [31, 157, 90]}, {"acronym": "MOs1", "id": 656, "name": "Secondary motor area, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 500, 993, 656], "rgb_triplet": [31, 157, 90]}, {"acronym": "MOs2/3", "id": 962, "name": "Secondary motor area, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 500, 993, 962], "rgb_triplet": [31, 157, 90]}, {"acronym": "MOs5", "id": 767, "name": "Secondary motor area, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 500, 993, 767], "rgb_triplet": [31, 157, 90]}, {"acronym": "MOs6a", "id": 1021, "name": "Secondary motor area, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 500, 993, 1021], "rgb_triplet": [31, 157, 90]}, {"acronym": "MOs6b", "id": 1085, "name": "Secondary motor area, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 500, 993, 1085], "rgb_triplet": [31, 157, 90]}, {"acronym": "SS", "id": 453, "name": "Somatosensory areas", "structure_id_path": [997, 8, 567, 688, 695, 315, 453], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp", "id": 322, "name": "Primary somatosensory area", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-n", "id": 353, "name": "Primary somatosensory area, nose", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 353], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-n1", "id": 558, "name": "Primary somatosensory area, nose, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 353, 558], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-n2/3", "id": 838, "name": "Primary somatosensory area, nose, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 353, 838], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-n4", "id": 654, "name": "Primary somatosensory area, nose, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 353, 654], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-n5", "id": 702, "name": "Primary somatosensory area, nose, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 353, 702], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-n6a", "id": 889, "name": "Primary somatosensory area, nose, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 353, 889], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-n6b", "id": 929, "name": "Primary somatosensory area, nose, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 353, 929], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-bfd", "id": 329, "name": "Primary somatosensory area, barrel field", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 329], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-bfd1", "id": 981, "name": "Primary somatosensory area, barrel field, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 329, 981], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-bfd2/3", "id": 201, "name": "Primary somatosensory area, barrel field, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 329, 201], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-bfd4", "id": 1047, "name": "Primary somatosensory area, barrel field, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 329, 1047], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-bfd5", "id": 1070, "name": "Primary somatosensory area, barrel field, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 329, 1070], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-bfd6a", "id": 1038, "name": "Primary somatosensory area, barrel field, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 329, 1038], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-bfd6b", "id": 1062, "name": "Primary somatosensory area, barrel field, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 329, 1062], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-ll", "id": 337, "name": "Primary somatosensory area, lower limb", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 337], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-ll1", "id": 1030, "name": "Primary somatosensory area, lower limb, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 337, 1030], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-ll2/3", "id": 113, "name": "Primary somatosensory area, lower limb, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 337, 113], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-ll4", "id": 1094, "name": "Primary somatosensory area, lower limb, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 337, 1094], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-ll5", "id": 1128, "name": "Primary somatosensory area, lower limb, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 337, 1128], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-ll6a", "id": 478, "name": "Primary somatosensory area, lower limb, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 337, 478], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-ll6b", "id": 510, "name": "Primary somatosensory area, lower limb, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 337, 510], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-m", "id": 345, "name": "Primary somatosensory area, mouth", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 345], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-m1", "id": 878, "name": "Primary somatosensory area, mouth, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 345, 878], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-m2/3", "id": 657, "name": "Primary somatosensory area, mouth, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 345, 657], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-m4", "id": 950, "name": "Primary somatosensory area, mouth, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 345, 950], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-m5", "id": 974, "name": "Primary somatosensory area, mouth, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 345, 974], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-m6a", "id": 1102, "name": "Primary somatosensory area, mouth, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 345, 1102], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-m6b", "id": 2, "name": "Primary somatosensory area, mouth, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 345, 2], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-ul", "id": 369, "name": "Primary somatosensory area, upper limb", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 369], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-ul1", "id": 450, "name": "Primary somatosensory area, upper limb, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 369, 450], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-ul2/3", "id": 854, "name": "Primary somatosensory area, upper limb, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 369, 854], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-ul4", "id": 577, "name": "Primary somatosensory area, upper limb, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 369, 577], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-ul5", "id": 625, "name": "Primary somatosensory area, upper limb, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 369, 625], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-ul6a", "id": 945, "name": "Primary somatosensory area, upper limb, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 369, 945], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-ul6b", "id": 1026, "name": "Primary somatosensory area, upper limb, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 369, 1026], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-tr", "id": 361, "name": "Primary somatosensory area, trunk", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 361], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-tr1", "id": 1006, "name": "Primary somatosensory area, trunk, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 361, 1006], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-tr2/3", "id": 670, "name": "Primary somatosensory area, trunk, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 361, 670], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-tr4", "id": 1086, "name": "Primary somatosensory area, trunk, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 361, 1086], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-tr5", "id": 1111, "name": "Primary somatosensory area, trunk, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 361, 1111], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-tr6a", "id": 9, "name": "Primary somatosensory area, trunk, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 361, 9], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-tr6b", "id": 461, "name": "Primary somatosensory area, trunk, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 361, 461], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-un", "id": 182305689, "name": "Primary somatosensory area, unassigned", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 182305689], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-un1", "id": 182305693, "name": "Primary somatosensory area, unassigned, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 182305689, 182305693], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-un2/3", "id": 182305697, "name": "Primary somatosensory area, unassigned, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 182305689, 182305697], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-un4", "id": 182305701, "name": "Primary somatosensory area, unassigned, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 182305689, 182305701], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-un5", "id": 182305705, "name": "Primary somatosensory area, unassigned, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 182305689, 182305705], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-un6a", "id": 182305709, "name": "Primary somatosensory area, unassigned, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 182305689, 182305709], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSp-un6b", "id": 182305713, "name": "Primary somatosensory area, unassigned, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 322, 182305689, 182305713], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSs", "id": 378, "name": "Supplemental somatosensory area", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 378], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSs1", "id": 873, "name": "Supplemental somatosensory area, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 378, 873], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSs2/3", "id": 806, "name": "Supplemental somatosensory area, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 378, 806], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSs4", "id": 1035, "name": "Supplemental somatosensory area, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 378, 1035], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSs5", "id": 1090, "name": "Supplemental somatosensory area, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 378, 1090], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSs6a", "id": 862, "name": "Supplemental somatosensory area, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 378, 862], "rgb_triplet": [24, 128, 100]}, {"acronym": "SSs6b", "id": 893, "name": "Supplemental somatosensory area, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 453, 378, 893], "rgb_triplet": [24, 128, 100]}, {"acronym": "GU", "id": 1057, "name": "Gustatory areas", "structure_id_path": [997, 8, 567, 688, 695, 315, 1057], "rgb_triplet": [0, 156, 117]}, {"acronym": "GU1", "id": 36, "name": "Gustatory areas, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 1057, 36], "rgb_triplet": [0, 156, 117]}, {"acronym": "GU2/3", "id": 180, "name": "Gustatory areas, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 1057, 180], "rgb_triplet": [0, 156, 117]}, {"acronym": "GU4", "id": 148, "name": "Gustatory areas, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 1057, 148], "rgb_triplet": [0, 156, 117]}, {"acronym": "GU5", "id": 187, "name": "Gustatory areas, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 1057, 187], "rgb_triplet": [0, 156, 117]}, {"acronym": "GU6a", "id": 638, "name": "Gustatory areas, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 1057, 638], "rgb_triplet": [0, 156, 117]}, {"acronym": "GU6b", "id": 662, "name": "Gustatory areas, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 1057, 662], "rgb_triplet": [0, 156, 117]}, {"acronym": "VISC", "id": 677, "name": "Visceral area", "structure_id_path": [997, 8, 567, 688, 695, 315, 677], "rgb_triplet": [17, 173, 131]}, {"acronym": "VISC1", "id": 897, "name": "Visceral area, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 677, 897], "rgb_triplet": [17, 173, 131]}, {"acronym": "VISC2/3", "id": 1106, "name": "Visceral area, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 677, 1106], "rgb_triplet": [17, 173, 131]}, {"acronym": "VISC4", "id": 1010, "name": "Visceral area, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 677, 1010], "rgb_triplet": [17, 173, 131]}, {"acronym": "VISC5", "id": 1058, "name": "Visceral area, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 677, 1058], "rgb_triplet": [17, 173, 131]}, {"acronym": "VISC6a", "id": 857, "name": "Visceral area, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 677, 857], "rgb_triplet": [17, 173, 131]}, {"acronym": "VISC6b", "id": 849, "name": "Visceral area, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 677, 849], "rgb_triplet": [17, 173, 131]}, {"acronym": "AUD", "id": 247, "name": "Auditory areas", "structure_id_path": [997, 8, 567, 688, 695, 315, 247], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDd", "id": 1011, "name": "Dorsal auditory area", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1011], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDd1", "id": 527, "name": "Dorsal auditory area, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1011, 527], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDd2/3", "id": 600, "name": "Dorsal auditory area, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1011, 600], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDd4", "id": 678, "name": "Dorsal auditory area, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1011, 678], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDd5", "id": 252, "name": "Dorsal auditory area, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1011, 252], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDd6a", "id": 156, "name": "Dorsal auditory area, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1011, 156], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDd6b", "id": 243, "name": "Dorsal auditory area, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1011, 243], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDp", "id": 1002, "name": "Primary auditory area", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1002], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDp1", "id": 735, "name": "Primary auditory area, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1002, 735], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDp2/3", "id": 251, "name": "Primary auditory area, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1002, 251], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDp4", "id": 816, "name": "Primary auditory area, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1002, 816], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDp5", "id": 847, "name": "Primary auditory area, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1002, 847], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDp6a", "id": 954, "name": "Primary auditory area, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1002, 954], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDp6b", "id": 1005, "name": "Primary auditory area, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1002, 1005], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDpo", "id": 1027, "name": "Posterior auditory area", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1027], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDpo1", "id": 696, "name": "Posterior auditory area, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1027, 696], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDpo2/3", "id": 643, "name": "Posterior auditory area, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1027, 643], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDpo4", "id": 759, "name": "Posterior auditory area, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1027, 759], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDpo5", "id": 791, "name": "Posterior auditory area, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1027, 791], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDpo6a", "id": 249, "name": "Posterior auditory area, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1027, 249], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDpo6b", "id": 456, "name": "Posterior auditory area, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1027, 456], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDv", "id": 1018, "name": "Ventral auditory area", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1018], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDv1", "id": 959, "name": "Ventral auditory area, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1018, 959], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDv2/3", "id": 755, "name": "Ventral auditory area, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1018, 755], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDv4", "id": 990, "name": "Ventral auditory area, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1018, 990], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDv5", "id": 1023, "name": "Ventral auditory area, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1018, 1023], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDv6a", "id": 520, "name": "Ventral auditory area, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1018, 520], "rgb_triplet": [1, 147, 153]}, {"acronym": "AUDv6b", "id": 598, "name": "Ventral auditory area, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 247, 1018, 598], "rgb_triplet": [1, 147, 153]}, {"acronym": "VIS", "id": 669, "name": "Visual areas", "structure_id_path": [997, 8, 567, 688, 695, 315, 669], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISal", "id": 402, "name": "Anterolateral visual area", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 402], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISal1", "id": 1074, "name": "Anterolateral visual area, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 402, 1074], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISal2/3", "id": 905, "name": "Anterolateral visual area, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 402, 905], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISal4", "id": 1114, "name": "Anterolateral visual area, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 402, 1114], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISal5", "id": 233, "name": "Anterolateral visual area, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 402, 233], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISal6a", "id": 601, "name": "Anterolateral visual area, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 402, 601], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISal6b", "id": 649, "name": "Anterolateral visual area, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 402, 649], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISam", "id": 394, "name": "Anteromedial visual area", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 394], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISam1", "id": 281, "name": "Anteromedial visual area, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 394, 281], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISam2/3", "id": 1066, "name": "Anteromedial visual area, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 394, 1066], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISam4", "id": 401, "name": "Anteromedial visual area, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 394, 401], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISam5", "id": 433, "name": "Anteromedial visual area, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 394, 433], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISam6a", "id": 1046, "name": "Anteromedial visual area, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 394, 1046], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISam6b", "id": 441, "name": "Anteromedial visual area, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 394, 441], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISl", "id": 409, "name": "Lateral visual area", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 409], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISl1", "id": 421, "name": "Lateral visual area, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 409, 421], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISl2/3", "id": 973, "name": "Lateral visual area, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 409, 973], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISl4", "id": 573, "name": "Lateral visual area, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 409, 573], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISl5", "id": 613, "name": "Lateral visual area, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 409, 613], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISl6a", "id": 74, "name": "Lateral visual area, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 409, 74], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISl6b", "id": 121, "name": "Lateral visual area, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 409, 121], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISp", "id": 385, "name": "Primary visual area", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 385], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISp1", "id": 593, "name": "Primary visual area, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 385, 593], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISp2/3", "id": 821, "name": "Primary visual area, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 385, 821], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISp4", "id": 721, "name": "Primary visual area, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 385, 721], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISp5", "id": 778, "name": "Primary visual area, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 385, 778], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISp6a", "id": 33, "name": "Primary visual area, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 385, 33], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISp6b", "id": 305, "name": "Primary visual area, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 385, 305], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISpl", "id": 425, "name": "Posterolateral visual area", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 425], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISpl1", "id": 750, "name": "Posterolateral visual area, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 425, 750], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISpl2/3", "id": 269, "name": "Posterolateral visual area, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 425, 269], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISpl4", "id": 869, "name": "Posterolateral visual area, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 425, 869], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISpl5", "id": 902, "name": "Posterolateral visual area, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 425, 902], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISpl6a", "id": 377, "name": "Posterolateral visual area, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 425, 377], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISpl6b", "id": 393, "name": "Posterolateral visual area, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 425, 393], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISpm", "id": 533, "name": "posteromedial visual area", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 533], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISpm1", "id": 805, "name": "posteromedial visual area, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 533, 805], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISpm2/3", "id": 41, "name": "posteromedial visual area, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 533, 41], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISpm4", "id": 501, "name": "posteromedial visual area, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 533, 501], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISpm5", "id": 565, "name": "posteromedial visual area, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 533, 565], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISpm6a", "id": 257, "name": "posteromedial visual area, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 533, 257], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISpm6b", "id": 469, "name": "posteromedial visual area, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 533, 469], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISli", "id": 312782574, "name": "Laterointermediate area", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 312782574], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISli1", "id": 312782578, "name": "Laterointermediate area, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 312782574, 312782578], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISli2/3", "id": 312782582, "name": "Laterointermediate area, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 312782574, 312782582], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISli4", "id": 312782586, "name": "Laterointermediate area, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 312782574, 312782586], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISli5", "id": 312782590, "name": "Laterointermediate area, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 312782574, 312782590], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISli6a", "id": 312782594, "name": "Laterointermediate area, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 312782574, 312782594], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISli6b", "id": 312782598, "name": "Laterointermediate area, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 312782574, 312782598], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISpor", "id": 312782628, "name": "Postrhinal area", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 312782628], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISpor1", "id": 312782632, "name": "Postrhinal area, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 312782628, 312782632], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISpor2/3", "id": 312782636, "name": "Postrhinal area, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 312782628, 312782636], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISpor4", "id": 312782640, "name": "Postrhinal area, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 312782628, 312782640], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISpor5", "id": 312782644, "name": "Postrhinal area, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 312782628, 312782644], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISpor6a", "id": 312782648, "name": "Postrhinal area, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 312782628, 312782648], "rgb_triplet": [8, 133, 140]}, {"acronym": "VISpor6b", "id": 312782652, "name": "Postrhinal area, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 669, 312782628, 312782652], "rgb_triplet": [8, 133, 140]}, {"acronym": "ACA", "id": 31, "name": "Anterior cingulate area", "structure_id_path": [997, 8, 567, 688, 695, 315, 31], "rgb_triplet": [64, 166, 102]}, {"acronym": "ACAd", "id": 39, "name": "Anterior cingulate area, dorsal part", "structure_id_path": [997, 8, 567, 688, 695, 315, 31, 39], "rgb_triplet": [64, 166, 102]}, {"acronym": "ACAd1", "id": 935, "name": "Anterior cingulate area, dorsal part, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 31, 39, 935], "rgb_triplet": [64, 166, 102]}, {"acronym": "ACAd2/3", "id": 211, "name": "Anterior cingulate area, dorsal part, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 31, 39, 211], "rgb_triplet": [64, 166, 102]}, {"acronym": "ACAd5", "id": 1015, "name": "Anterior cingulate area, dorsal part, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 31, 39, 1015], "rgb_triplet": [64, 166, 102]}, {"acronym": "ACAd6a", "id": 919, "name": "Anterior cingulate area, dorsal part, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 31, 39, 919], "rgb_triplet": [64, 166, 102]}, {"acronym": "ACAd6b", "id": 927, "name": "Anterior cingulate area, dorsal part, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 31, 39, 927], "rgb_triplet": [64, 166, 102]}, {"acronym": "ACAv", "id": 48, "name": "Anterior cingulate area, ventral part", "structure_id_path": [997, 8, 567, 688, 695, 315, 31, 48], "rgb_triplet": [64, 166, 102]}, {"acronym": "ACAv1", "id": 588, "name": "Anterior cingulate area, ventral part, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 31, 48, 588], "rgb_triplet": [64, 166, 102]}, {"acronym": "ACAv2/3", "id": 296, "name": "Anterior cingulate area, ventral part, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 31, 48, 296], "rgb_triplet": [64, 166, 102]}, {"acronym": "ACAv5", "id": 772, "name": "Anterior cingulate area, ventral part, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 31, 48, 772], "rgb_triplet": [64, 166, 102]}, {"acronym": "ACAv6a", "id": 810, "name": "Anterior cingulate area, ventral part, 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 31, 48, 810], "rgb_triplet": [64, 166, 102]}, {"acronym": "ACAv6b", "id": 819, "name": "Anterior cingulate area, ventral part, 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 31, 48, 819], "rgb_triplet": [64, 166, 102]}, {"acronym": "PL", "id": 972, "name": "Prelimbic area", "structure_id_path": [997, 8, 567, 688, 695, 315, 972], "rgb_triplet": [47, 168, 80]}, {"acronym": "PL1", "id": 171, "name": "Prelimbic area, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 972, 171], "rgb_triplet": [47, 168, 80]}, {"acronym": "PL2/3", "id": 304, "name": "Prelimbic area, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 972, 304], "rgb_triplet": [47, 168, 80]}, {"acronym": "PL5", "id": 363, "name": "Prelimbic area, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 972, 363], "rgb_triplet": [47, 168, 80]}, {"acronym": "PL6a", "id": 84, "name": "Prelimbic area, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 972, 84], "rgb_triplet": [47, 168, 80]}, {"acronym": "PL6b", "id": 132, "name": "Prelimbic area, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 972, 132], "rgb_triplet": [47, 168, 80]}, {"acronym": "ILA", "id": 44, "name": "Infralimbic area", "structure_id_path": [997, 8, 567, 688, 695, 315, 44], "rgb_triplet": [89, 179, 99]}, {"acronym": "ILA1", "id": 707, "name": "Infralimbic area, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 44, 707], "rgb_triplet": [89, 179, 99]}, {"acronym": "ILA2/3", "id": 556, "name": "Infralimbic area, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 44, 556], "rgb_triplet": [89, 179, 99]}, {"acronym": "ILA5", "id": 827, "name": "Infralimbic area, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 44, 827], "rgb_triplet": [89, 179, 99]}, {"acronym": "ILA6a", "id": 1054, "name": "Infralimbic area, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 44, 1054], "rgb_triplet": [89, 179, 99]}, {"acronym": "ILA6b", "id": 1081, "name": "Infralimbic area, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 44, 1081], "rgb_triplet": [89, 179, 99]}, {"acronym": "ORB", "id": 714, "name": "Orbital area", "structure_id_path": [997, 8, 567, 688, 695, 315, 714], "rgb_triplet": [36, 138, 94]}, {"acronym": "ORBl", "id": 723, "name": "Orbital area, lateral part", "structure_id_path": [997, 8, 567, 688, 695, 315, 714, 723], "rgb_triplet": [36, 138, 94]}, {"acronym": "ORBl1", "id": 448, "name": "Orbital area, lateral part, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 714, 723, 448], "rgb_triplet": [36, 138, 94]}, {"acronym": "ORBl2/3", "id": 412, "name": "Orbital area, lateral part, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 714, 723, 412], "rgb_triplet": [36, 138, 94]}, {"acronym": "ORBl5", "id": 630, "name": "Orbital area, lateral part, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 714, 723, 630], "rgb_triplet": [36, 138, 94]}, {"acronym": "ORBl6a", "id": 440, "name": "Orbital area, lateral part, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 714, 723, 440], "rgb_triplet": [36, 138, 94]}, {"acronym": "ORBl6b", "id": 488, "name": "Orbital area, lateral part, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 714, 723, 488], "rgb_triplet": [36, 138, 94]}, {"acronym": "ORBm", "id": 731, "name": "Orbital area, medial part", "structure_id_path": [997, 8, 567, 688, 695, 315, 714, 731], "rgb_triplet": [36, 138, 94]}, {"acronym": "ORBm1", "id": 484, "name": "Orbital area, medial part, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 714, 731, 484], "rgb_triplet": [36, 138, 94]}, {"acronym": "ORBm2/3", "id": 582, "name": "Orbital area, medial part, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 714, 731, 582], "rgb_triplet": [36, 138, 94]}, {"acronym": "ORBm5", "id": 620, "name": "Orbital area, medial part, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 714, 731, 620], "rgb_triplet": [36, 138, 94]}, {"acronym": "ORBm6a", "id": 910, "name": "Orbital area, medial part, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 714, 731, 910], "rgb_triplet": [36, 138, 94]}, {"acronym": "ORBm6b", "id": 527696977, "name": "Orbital area, medial part, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 714, 731, 527696977], "rgb_triplet": [36, 138, 94]}, {"acronym": "ORBvl", "id": 746, "name": "Orbital area, ventrolateral part", "structure_id_path": [997, 8, 567, 688, 695, 315, 714, 746], "rgb_triplet": [36, 138, 94]}, {"acronym": "ORBvl1", "id": 969, "name": "Orbital area, ventrolateral part, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 714, 746, 969], "rgb_triplet": [36, 138, 94]}, {"acronym": "ORBvl2/3", "id": 288, "name": "Orbital area, ventrolateral part, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 714, 746, 288], "rgb_triplet": [36, 138, 94]}, {"acronym": "ORBvl5", "id": 1125, "name": "Orbital area, ventrolateral part, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 714, 746, 1125], "rgb_triplet": [36, 138, 94]}, {"acronym": "ORBvl6a", "id": 608, "name": "Orbital area, ventrolateral part, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 714, 746, 608], "rgb_triplet": [36, 138, 94]}, {"acronym": "ORBvl6b", "id": 680, "name": "Orbital area, ventrolateral part, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 714, 746, 680], "rgb_triplet": [36, 138, 94]}, {"acronym": "AI", "id": 95, "name": "Agranular insular area", "structure_id_path": [997, 8, 567, 688, 695, 315, 95], "rgb_triplet": [33, 152, 102]}, {"acronym": "AId", "id": 104, "name": "Agranular insular area, dorsal part", "structure_id_path": [997, 8, 567, 688, 695, 315, 95, 104], "rgb_triplet": [33, 152, 102]}, {"acronym": "AId1", "id": 996, "name": "Agranular insular area, dorsal part, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 95, 104, 996], "rgb_triplet": [33, 152, 102]}, {"acronym": "AId2/3", "id": 328, "name": "Agranular insular area, dorsal part, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 95, 104, 328], "rgb_triplet": [33, 152, 102]}, {"acronym": "AId5", "id": 1101, "name": "Agranular insular area, dorsal part, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 95, 104, 1101], "rgb_triplet": [33, 152, 102]}, {"acronym": "AId6a", "id": 783, "name": "Agranular insular area, dorsal part, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 95, 104, 783], "rgb_triplet": [33, 152, 102]}, {"acronym": "AId6b", "id": 831, "name": "Agranular insular area, dorsal part, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 95, 104, 831], "rgb_triplet": [33, 152, 102]}, {"acronym": "AIp", "id": 111, "name": "Agranular insular area, posterior part", "structure_id_path": [997, 8, 567, 688, 695, 315, 95, 111], "rgb_triplet": [33, 152, 102]}, {"acronym": "AIp1", "id": 120, "name": "Agranular insular area, posterior part, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 95, 111, 120], "rgb_triplet": [33, 152, 102]}, {"acronym": "AIp2/3", "id": 163, "name": "Agranular insular area, posterior part, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 95, 111, 163], "rgb_triplet": [33, 152, 102]}, {"acronym": "AIp5", "id": 344, "name": "Agranular insular area, posterior part, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 95, 111, 344], "rgb_triplet": [33, 152, 102]}, {"acronym": "AIp6a", "id": 314, "name": "Agranular insular area, posterior part, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 95, 111, 314], "rgb_triplet": [33, 152, 102]}, {"acronym": "AIp6b", "id": 355, "name": "Agranular insular area, posterior part, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 95, 111, 355], "rgb_triplet": [33, 152, 102]}, {"acronym": "AIv", "id": 119, "name": "Agranular insular area, ventral part", "structure_id_path": [997, 8, 567, 688, 695, 315, 95, 119], "rgb_triplet": [33, 152, 102]}, {"acronym": "AIv1", "id": 704, "name": "Agranular insular area, ventral part, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 95, 119, 704], "rgb_triplet": [33, 152, 102]}, {"acronym": "AIv2/3", "id": 694, "name": "Agranular insular area, ventral part, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 95, 119, 694], "rgb_triplet": [33, 152, 102]}, {"acronym": "AIv5", "id": 800, "name": "Agranular insular area, ventral part, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 95, 119, 800], "rgb_triplet": [33, 152, 102]}, {"acronym": "AIv6a", "id": 675, "name": "Agranular insular area, ventral part, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 95, 119, 675], "rgb_triplet": [33, 152, 102]}, {"acronym": "AIv6b", "id": 699, "name": "Agranular insular area, ventral part, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 95, 119, 699], "rgb_triplet": [33, 152, 102]}, {"acronym": "RSP", "id": 254, "name": "Retrosplenial area", "structure_id_path": [997, 8, 567, 688, 695, 315, 254], "rgb_triplet": [26, 166, 152]}, {"acronym": "RSPagl", "id": 894, "name": "Retrosplenial area, lateral agranular part", "structure_id_path": [997, 8, 567, 688, 695, 315, 254, 894], "rgb_triplet": [26, 166, 152]}, {"acronym": "RSPagl1", "id": 671, "name": "Retrosplenial area, lateral agranular part, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 254, 894, 671], "rgb_triplet": [26, 166, 152]}, {"acronym": "RSPagl2/3", "id": 965, "name": "Retrosplenial area, lateral agranular part, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 254, 894, 965], "rgb_triplet": [26, 166, 152]}, {"acronym": "RSPagl5", "id": 774, "name": "Retrosplenial area, lateral agranular part, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 254, 894, 774], "rgb_triplet": [26, 166, 152]}, {"acronym": "RSPagl6a", "id": 906, "name": "Retrosplenial area, lateral agranular part, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 254, 894, 906], "rgb_triplet": [26, 166, 152]}, {"acronym": "RSPagl6b", "id": 279, "name": "Retrosplenial area, lateral agranular part, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 254, 894, 279], "rgb_triplet": [26, 166, 152]}, {"acronym": "RSPd", "id": 879, "name": "Retrosplenial area, dorsal part", "structure_id_path": [997, 8, 567, 688, 695, 315, 254, 879], "rgb_triplet": [26, 166, 152]}, {"acronym": "RSPd1", "id": 442, "name": "Retrosplenial area, dorsal part, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 254, 879, 442], "rgb_triplet": [26, 166, 152]}, {"acronym": "RSPd2/3", "id": 434, "name": "Retrosplenial area, dorsal part, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 254, 879, 434], "rgb_triplet": [26, 166, 152]}, {"acronym": "RSPd4", "id": 545, "name": "Retrosplenial area, dorsal part, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 254, 879, 545], "rgb_triplet": [26, 166, 152]}, {"acronym": "RSPd5", "id": 610, "name": "Retrosplenial area, dorsal part, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 254, 879, 610], "rgb_triplet": [26, 166, 152]}, {"acronym": "RSPd6a", "id": 274, "name": "Retrosplenial area, dorsal part, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 254, 879, 274], "rgb_triplet": [26, 166, 152]}, {"acronym": "RSPd6b", "id": 330, "name": "Retrosplenial area, dorsal part, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 254, 879, 330], "rgb_triplet": [26, 166, 152]}, {"acronym": "RSPv", "id": 886, "name": "Retrosplenial area, ventral part", "structure_id_path": [997, 8, 567, 688, 695, 315, 254, 886], "rgb_triplet": [26, 166, 152]}, {"acronym": "RSPv1", "id": 542, "name": "Retrosplenial area, ventral part, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 254, 886, 542], "rgb_triplet": [26, 166, 152]}, {"acronym": "RSPv2/3", "id": 430, "name": "Retrosplenial area, ventral part, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 254, 886, 430], "rgb_triplet": [26, 166, 152]}, {"acronym": "RSPv5", "id": 687, "name": "Retrosplenial area, ventral part, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 254, 886, 687], "rgb_triplet": [26, 166, 152]}, {"acronym": "RSPv6a", "id": 590, "name": "Retrosplenial area, ventral part, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 254, 886, 590], "rgb_triplet": [26, 166, 152]}, {"acronym": "RSPv6b", "id": 622, "name": "Retrosplenial area, ventral part, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 254, 886, 622], "rgb_triplet": [26, 166, 152]}, {"acronym": "PTLp", "id": 22, "name": "Posterior parietal association areas", "structure_id_path": [997, 8, 567, 688, 695, 315, 22], "rgb_triplet": [0, 159, 172]}, {"acronym": "VISa", "id": 312782546, "name": "Anterior area", "structure_id_path": [997, 8, 567, 688, 695, 315, 22, 312782546], "rgb_triplet": [0, 159, 172]}, {"acronym": "VISa1", "id": 312782550, "name": "Anterior area, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 22, 312782546, 312782550], "rgb_triplet": [0, 159, 172]}, {"acronym": "VISa2/3", "id": 312782554, "name": "Anterior area, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 22, 312782546, 312782554], "rgb_triplet": [0, 159, 172]}, {"acronym": "VISa4", "id": 312782558, "name": "Anterior area, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 22, 312782546, 312782558], "rgb_triplet": [0, 159, 172]}, {"acronym": "VISa5", "id": 312782562, "name": "Anterior area, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 22, 312782546, 312782562], "rgb_triplet": [0, 159, 172]}, {"acronym": "VISa6a", "id": 312782566, "name": "Anterior area, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 22, 312782546, 312782566], "rgb_triplet": [0, 159, 172]}, {"acronym": "VISa6b", "id": 312782570, "name": "Anterior area, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 22, 312782546, 312782570], "rgb_triplet": [0, 159, 172]}, {"acronym": "VISrl", "id": 417, "name": "Rostrolateral visual area", "structure_id_path": [997, 8, 567, 688, 695, 315, 22, 417], "rgb_triplet": [0, 159, 172]}, {"acronym": "VISrl1", "id": 312782604, "name": "Rostrolateral area, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 22, 417, 312782604], "rgb_triplet": [0, 159, 172]}, {"acronym": "VISrl2/3", "id": 312782608, "name": "Rostrolateral area, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 22, 417, 312782608], "rgb_triplet": [0, 159, 172]}, {"acronym": "VISrl4", "id": 312782612, "name": "Rostrolateral area, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 22, 417, 312782612], "rgb_triplet": [0, 159, 172]}, {"acronym": "VISrl5", "id": 312782616, "name": "Rostrolateral area, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 22, 417, 312782616], "rgb_triplet": [0, 159, 172]}, {"acronym": "VISrl6a", "id": 312782620, "name": "Rostrolateral area, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 22, 417, 312782620], "rgb_triplet": [0, 159, 172]}, {"acronym": "VISrl6b", "id": 312782624, "name": "Rostrolateral area, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 22, 417, 312782624], "rgb_triplet": [0, 159, 172]}, {"acronym": "TEa", "id": 541, "name": "Temporal association areas", "structure_id_path": [997, 8, 567, 688, 695, 315, 541], "rgb_triplet": [21, 176, 179]}, {"acronym": "TEa1", "id": 97, "name": "Temporal association areas, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 541, 97], "rgb_triplet": [21, 176, 179]}, {"acronym": "TEa2/3", "id": 1127, "name": "Temporal association areas, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 541, 1127], "rgb_triplet": [21, 176, 179]}, {"acronym": "TEa4", "id": 234, "name": "Temporal association areas, layer 4", "structure_id_path": [997, 8, 567, 688, 695, 315, 541, 234], "rgb_triplet": [21, 176, 179]}, {"acronym": "TEa5", "id": 289, "name": "Temporal association areas, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 541, 289], "rgb_triplet": [21, 176, 179]}, {"acronym": "TEa6a", "id": 729, "name": "Temporal association areas, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 541, 729], "rgb_triplet": [21, 176, 179]}, {"acronym": "TEa6b", "id": 786, "name": "Temporal association areas, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 541, 786], "rgb_triplet": [21, 176, 179]}, {"acronym": "PERI", "id": 922, "name": "Perirhinal area", "structure_id_path": [997, 8, 567, 688, 695, 315, 922], "rgb_triplet": [14, 150, 132]}, {"acronym": "PERI1", "id": 540, "name": "Perirhinal area, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 922, 540], "rgb_triplet": [14, 150, 132]}, {"acronym": "PERI2/3", "id": 888, "name": "Perirhinal area, layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 922, 888], "rgb_triplet": [14, 150, 132]}, {"acronym": "PERI5", "id": 692, "name": "Perirhinal area, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 922, 692], "rgb_triplet": [14, 150, 132]}, {"acronym": "PERI6a", "id": 335, "name": "Perirhinal area, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 922, 335], "rgb_triplet": [14, 150, 132]}, {"acronym": "PERI6b", "id": 368, "name": "Perirhinal area, layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 922, 368], "rgb_triplet": [14, 150, 132]}, {"acronym": "ECT", "id": 895, "name": "Ectorhinal area", "structure_id_path": [997, 8, 567, 688, 695, 315, 895], "rgb_triplet": [13, 159, 145]}, {"acronym": "ECT1", "id": 836, "name": "Ectorhinal area/Layer 1", "structure_id_path": [997, 8, 567, 688, 695, 315, 895, 836], "rgb_triplet": [13, 159, 145]}, {"acronym": "ECT2/3", "id": 427, "name": "Ectorhinal area/Layer 2/3", "structure_id_path": [997, 8, 567, 688, 695, 315, 895, 427], "rgb_triplet": [13, 159, 145]}, {"acronym": "ECT5", "id": 988, "name": "Ectorhinal area/Layer 5", "structure_id_path": [997, 8, 567, 688, 695, 315, 895, 988], "rgb_triplet": [13, 159, 145]}, {"acronym": "ECT6a", "id": 977, "name": "Ectorhinal area/Layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 315, 895, 977], "rgb_triplet": [13, 159, 145]}, {"acronym": "ECT6b", "id": 1045, "name": "Ectorhinal area/Layer 6b", "structure_id_path": [997, 8, 567, 688, 695, 315, 895, 1045], "rgb_triplet": [13, 159, 145]}, {"acronym": "OLF", "id": 698, "name": "Olfactory areas", "structure_id_path": [997, 8, 567, 688, 695, 698], "rgb_triplet": [154, 210, 189]}, {"acronym": "MOB", "id": 507, "name": "Main olfactory bulb", "structure_id_path": [997, 8, 567, 688, 695, 698, 507], "rgb_triplet": [154, 210, 189]}, {"acronym": "AOB", "id": 151, "name": "Accessory olfactory bulb", "structure_id_path": [997, 8, 567, 688, 695, 698, 151], "rgb_triplet": [157, 240, 210]}, {"acronym": "AOBgl", "id": 188, "name": "Accessory olfactory bulb, glomerular layer", "structure_id_path": [997, 8, 567, 688, 695, 698, 151, 188], "rgb_triplet": [157, 240, 210]}, {"acronym": "AOBgr", "id": 196, "name": "Accessory olfactory bulb, granular layer", "structure_id_path": [997, 8, 567, 688, 695, 698, 151, 196], "rgb_triplet": [149, 228, 200]}, {"acronym": "AOBmi", "id": 204, "name": "Accessory olfactory bulb, mitral layer", "structure_id_path": [997, 8, 567, 688, 695, 698, 151, 204], "rgb_triplet": [157, 240, 210]}, {"acronym": "AON", "id": 159, "name": "Anterior olfactory nucleus", "structure_id_path": [997, 8, 567, 688, 695, 698, 159], "rgb_triplet": [84, 191, 148]}, {"acronym": "TT", "id": 589, "name": "Taenia tecta", "structure_id_path": [997, 8, 567, 688, 695, 698, 589], "rgb_triplet": [98, 208, 159]}, {"acronym": "TTd", "id": 597, "name": "Taenia tecta, dorsal part", "structure_id_path": [997, 8, 567, 688, 695, 698, 589, 597], "rgb_triplet": [98, 208, 159]}, {"acronym": "TTv", "id": 605, "name": "Taenia tecta, ventral part", "structure_id_path": [997, 8, 567, 688, 695, 698, 589, 605], "rgb_triplet": [98, 208, 159]}, {"acronym": "DP", "id": 814, "name": "Dorsal peduncular area", "structure_id_path": [997, 8, 567, 688, 695, 698, 814], "rgb_triplet": [164, 218, 164]}, {"acronym": "PIR", "id": 961, "name": "Piriform area", "structure_id_path": [997, 8, 567, 688, 695, 698, 961], "rgb_triplet": [106, 203, 186]}, {"acronym": "NLOT", "id": 619, "name": "Nucleus of the lateral olfactory tract", "structure_id_path": [997, 8, 567, 688, 695, 698, 619], "rgb_triplet": [149, 228, 200]}, {"acronym": "NLOT1", "id": 260, "name": "Nucleus of the lateral olfactory tract, molecular layer", "structure_id_path": [997, 8, 567, 688, 695, 698, 619, 260], "rgb_triplet": [149, 228, 200]}, {"acronym": "NLOT2", "id": 268, "name": "Nucleus of the lateral olfactory tract, pyramidal layer", "structure_id_path": [997, 8, 567, 688, 695, 698, 619, 268], "rgb_triplet": [149, 228, 200]}, {"acronym": "NLOT3", "id": 1139, "name": "Nucleus of the lateral olfactory tract, layer 3", "structure_id_path": [997, 8, 567, 688, 695, 698, 619, 1139], "rgb_triplet": [149, 228, 200]}, {"acronym": "COA", "id": 631, "name": "Cortical amygdalar area", "structure_id_path": [997, 8, 567, 688, 695, 698, 631], "rgb_triplet": [97, 231, 183]}, {"acronym": "COAa", "id": 639, "name": "Cortical amygdalar area, anterior part", "structure_id_path": [997, 8, 567, 688, 695, 698, 631, 639], "rgb_triplet": [97, 231, 183]}, {"acronym": "COAp", "id": 647, "name": "Cortical amygdalar area, posterior part", "structure_id_path": [997, 8, 567, 688, 695, 698, 631, 647], "rgb_triplet": [97, 231, 183]}, {"acronym": "COApl", "id": 655, "name": "Cortical amygdalar area, posterior part, lateral zone", "structure_id_path": [997, 8, 567, 688, 695, 698, 631, 647, 655], "rgb_triplet": [97, 231, 183]}, {"acronym": "COApm", "id": 663, "name": "Cortical amygdalar area, posterior part, medial zone", "structure_id_path": [997, 8, 567, 688, 695, 698, 631, 647, 663], "rgb_triplet": [97, 231, 183]}, {"acronym": "PAA", "id": 788, "name": "Piriform-amygdalar area", "structure_id_path": [997, 8, 567, 688, 695, 698, 788], "rgb_triplet": [89, 218, 171]}, {"acronym": "TR", "id": 566, "name": "Postpiriform transition area", "structure_id_path": [997, 8, 567, 688, 695, 698, 566], "rgb_triplet": [168, 236, 211]}, {"acronym": "HPF", "id": 1089, "name": "Hippocampal formation", "structure_id_path": [997, 8, 567, 688, 695, 1089], "rgb_triplet": [126, 208, 75]}, {"acronym": "HIP", "id": 1080, "name": "Hippocampal region", "structure_id_path": [997, 8, 567, 688, 695, 1089, 1080], "rgb_triplet": [126, 208, 75]}, {"acronym": "CA", "id": 375, "name": "Ammon's horn", "structure_id_path": [997, 8, 567, 688, 695, 1089, 1080, 375], "rgb_triplet": [126, 208, 75]}, {"acronym": "CA1", "id": 382, "name": "Field CA1", "structure_id_path": [997, 8, 567, 688, 695, 1089, 1080, 375, 382], "rgb_triplet": [126, 208, 75]}, {"acronym": "CA2", "id": 423, "name": "Field CA2", "structure_id_path": [997, 8, 567, 688, 695, 1089, 1080, 375, 423], "rgb_triplet": [126, 208, 75]}, {"acronym": "CA3", "id": 463, "name": "Field CA3", "structure_id_path": [997, 8, 567, 688, 695, 1089, 1080, 375, 463], "rgb_triplet": [126, 208, 75]}, {"acronym": "DG", "id": 726, "name": "Dentate gyrus", "structure_id_path": [997, 8, 567, 688, 695, 1089, 1080, 726], "rgb_triplet": [126, 208, 75]}, {"acronym": "DG-mo", "id": 10703, "name": "Dentate gyrus, molecular layer", "structure_id_path": [997, 8, 567, 688, 695, 1089, 1080, 726, 10703], "rgb_triplet": [126, 208, 75]}, {"acronym": "DG-po", "id": 10704, "name": "Dentate gyrus, polymorph layer", "structure_id_path": [997, 8, 567, 688, 695, 1089, 1080, 726, 10704], "rgb_triplet": [126, 208, 75]}, {"acronym": "DG-sg", "id": 632, "name": "Dentate gyrus, granule cell layer", "structure_id_path": [997, 8, 567, 688, 695, 1089, 1080, 726, 632], "rgb_triplet": [102, 168, 61]}, {"acronym": "FC", "id": 982, "name": "Fasciola cinerea", "structure_id_path": [997, 8, 567, 688, 695, 1089, 1080, 982], "rgb_triplet": [126, 208, 75]}, {"acronym": "IG", "id": 19, "name": "Induseum griseum", "structure_id_path": [997, 8, 567, 688, 695, 1089, 1080, 19], "rgb_triplet": [126, 208, 75]}, {"acronym": "RHP", "id": 822, "name": "Retrohippocampal region", "structure_id_path": [997, 8, 567, 688, 695, 1089, 822], "rgb_triplet": [50, 184, 37]}, {"acronym": "ENT", "id": 909, "name": "Entorhinal area", "structure_id_path": [997, 8, 567, 688, 695, 1089, 822, 909], "rgb_triplet": [50, 184, 37]}, {"acronym": "ENTl", "id": 918, "name": "Entorhinal area, lateral part", "structure_id_path": [997, 8, 567, 688, 695, 1089, 822, 909, 918], "rgb_triplet": [50, 184, 37]}, {"acronym": "ENTl1", "id": 1121, "name": "Entorhinal area, lateral part, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 1089, 822, 909, 918, 1121], "rgb_triplet": [50, 184, 37]}, {"acronym": "ENTl2", "id": 20, "name": "Entorhinal area, lateral part, layer 2", "structure_id_path": [997, 8, 567, 688, 695, 1089, 822, 909, 918, 20], "rgb_triplet": [50, 184, 37]}, {"acronym": "ENTl3", "id": 52, "name": "Entorhinal area, lateral part, layer 3", "structure_id_path": [997, 8, 567, 688, 695, 1089, 822, 909, 918, 52], "rgb_triplet": [50, 184, 37]}, {"acronym": "ENTl5", "id": 139, "name": "Entorhinal area, lateral part, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 1089, 822, 909, 918, 139], "rgb_triplet": [50, 184, 37]}, {"acronym": "ENTl6a", "id": 28, "name": "Entorhinal area, lateral part, layer 6a", "structure_id_path": [997, 8, 567, 688, 695, 1089, 822, 909, 918, 28], "rgb_triplet": [50, 184, 37]}, {"acronym": "ENTm", "id": 926, "name": "Entorhinal area, medial part, dorsal zone", "structure_id_path": [997, 8, 567, 688, 695, 1089, 822, 909, 926], "rgb_triplet": [50, 184, 37]}, {"acronym": "ENTm1", "id": 526, "name": "Entorhinal area, medial part, dorsal zone, layer 1", "structure_id_path": [997, 8, 567, 688, 695, 1089, 822, 909, 926, 526], "rgb_triplet": [50, 184, 37]}, {"acronym": "ENTm2", "id": 543, "name": "Entorhinal area, medial part, dorsal zone, layer 2", "structure_id_path": [997, 8, 567, 688, 695, 1089, 822, 909, 926, 543], "rgb_triplet": [50, 184, 37]}, {"acronym": "ENTm3", "id": 664, "name": "Entorhinal area, medial part, dorsal zone, layer 3", "structure_id_path": [997, 8, 567, 688, 695, 1089, 822, 909, 926, 664], "rgb_triplet": [50, 184, 37]}, {"acronym": "ENTm5", "id": 727, "name": "Entorhinal area, medial part, dorsal zone, layer 5", "structure_id_path": [997, 8, 567, 688, 695, 1089, 822, 909, 926, 727], "rgb_triplet": [50, 184, 37]}, {"acronym": "ENTm6", "id": 743, "name": "Entorhinal area, medial part, dorsal zone, layer 6", "structure_id_path": [997, 8, 567, 688, 695, 1089, 822, 909, 926, 743], "rgb_triplet": [50, 184, 37]}, {"acronym": "PAR", "id": 843, "name": "Parasubiculum", "structure_id_path": [997, 8, 567, 688, 695, 1089, 822, 843], "rgb_triplet": [114, 213, 105]}, {"acronym": "POST", "id": 1037, "name": "Postsubiculum", "structure_id_path": [997, 8, 567, 688, 695, 1089, 822, 1037], "rgb_triplet": [72, 200, 60]}, {"acronym": "PRE", "id": 1084, "name": "Presubiculum", "structure_id_path": [997, 8, 567, 688, 695, 1089, 822, 1084], "rgb_triplet": [89, 185, 71]}, {"acronym": "SUB", "id": 502, "name": "Subiculum", "structure_id_path": [997, 8, 567, 688, 695, 1089, 822, 502], "rgb_triplet": [79, 194, 68]}, {"acronym": "ProS", "id": 484682470, "name": "Prosubiculum", "structure_id_path": [997, 8, 567, 688, 695, 1089, 822, 484682470], "rgb_triplet": [88, 186, 72]}, {"acronym": "HATA", "id": 589508447, "name": "Hippocampo-amygdalar transition area", "structure_id_path": [997, 8, 567, 688, 695, 1089, 822, 589508447], "rgb_triplet": [51, 185, 50]}, {"acronym": "APr", "id": 484682508, "name": "Area prostriata", "structure_id_path": [997, 8, 567, 688, 695, 1089, 822, 484682508], "rgb_triplet": [51, 185, 50]}, {"acronym": "CTXsp", "id": 703, "name": "Cortical subplate", "structure_id_path": [997, 8, 567, 688, 703], "rgb_triplet": [138, 218, 135]}, {"acronym": "CLA", "id": 583, "name": "Claustrum", "structure_id_path": [997, 8, 567, 688, 703, 583], "rgb_triplet": [138, 218, 135]}, {"acronym": "EP", "id": 942, "name": "Endopiriform nucleus", "structure_id_path": [997, 8, 567, 688, 703, 942], "rgb_triplet": [160, 238, 157]}, {"acronym": "EPd", "id": 952, "name": "Endopiriform nucleus, dorsal part", "structure_id_path": [997, 8, 567, 688, 703, 942, 952], "rgb_triplet": [160, 238, 157]}, {"acronym": "EPv", "id": 966, "name": "Endopiriform nucleus, ventral part", "structure_id_path": [997, 8, 567, 688, 703, 942, 966], "rgb_triplet": [160, 238, 157]}, {"acronym": "LA", "id": 131, "name": "Lateral amygdalar nucleus", "structure_id_path": [997, 8, 567, 688, 703, 131], "rgb_triplet": [144, 235, 141]}, {"acronym": "BLA", "id": 295, "name": "Basolateral amygdalar nucleus", "structure_id_path": [997, 8, 567, 688, 703, 295], "rgb_triplet": [157, 231, 156]}, {"acronym": "BLAa", "id": 303, "name": "Basolateral amygdalar nucleus, anterior part", "structure_id_path": [997, 8, 567, 688, 703, 295, 303], "rgb_triplet": [157, 231, 156]}, {"acronym": "BLAp", "id": 311, "name": "Basolateral amygdalar nucleus, posterior part", "structure_id_path": [997, 8, 567, 688, 703, 295, 311], "rgb_triplet": [157, 231, 156]}, {"acronym": "BLAv", "id": 451, "name": "Basolateral amygdalar nucleus, ventral part", "structure_id_path": [997, 8, 567, 688, 703, 295, 451], "rgb_triplet": [157, 231, 156]}, {"acronym": "BMA", "id": 319, "name": "Basomedial amygdalar nucleus", "structure_id_path": [997, 8, 567, 688, 703, 319], "rgb_triplet": [132, 234, 129]}, {"acronym": "BMAa", "id": 327, "name": "Basomedial amygdalar nucleus, anterior part", "structure_id_path": [997, 8, 567, 688, 703, 319, 327], "rgb_triplet": [132, 234, 129]}, {"acronym": "BMAp", "id": 334, "name": "Basomedial amygdalar nucleus, posterior part", "structure_id_path": [997, 8, 567, 688, 703, 319, 334], "rgb_triplet": [132, 234, 129]}, {"acronym": "PA", "id": 780, "name": "Posterior amygdalar nucleus", "structure_id_path": [997, 8, 567, 688, 703, 780], "rgb_triplet": [151, 236, 147]}, {"acronym": "CNU", "id": 623, "name": "Cerebral nuclei", "structure_id_path": [997, 8, 567, 623], "rgb_triplet": [152, 214, 249]}, {"acronym": "STR", "id": 477, "name": "Striatum", "structure_id_path": [997, 8, 567, 623, 477], "rgb_triplet": [152, 214, 249]}, {"acronym": "STRd", "id": 485, "name": "Striatum dorsal region", "structure_id_path": [997, 8, 567, 623, 477, 485], "rgb_triplet": [152, 214, 249]}, {"acronym": "CP", "id": 672, "name": "Caudoputamen", "structure_id_path": [997, 8, 567, 623, 477, 485, 672], "rgb_triplet": [152, 214, 249]}, {"acronym": "STRv", "id": 493, "name": "Striatum ventral region", "structure_id_path": [997, 8, 567, 623, 477, 493], "rgb_triplet": [128, 205, 248]}, {"acronym": "ACB", "id": 56, "name": "Nucleus accumbens", "structure_id_path": [997, 8, 567, 623, 477, 493, 56], "rgb_triplet": [128, 205, 248]}, {"acronym": "FS", "id": 998, "name": "Fundus of striatum", "structure_id_path": [997, 8, 567, 623, 477, 493, 998], "rgb_triplet": [128, 205, 248]}, {"acronym": "OT", "id": 754, "name": "Olfactory tubercle", "structure_id_path": [997, 8, 567, 623, 477, 493, 754], "rgb_triplet": [128, 205, 248]}, {"acronym": "LSX", "id": 275, "name": "Lateral septal complex", "structure_id_path": [997, 8, 567, 623, 477, 275], "rgb_triplet": [144, 203, 237]}, {"acronym": "LS", "id": 242, "name": "Lateral septal nucleus", "structure_id_path": [997, 8, 567, 623, 477, 275, 242], "rgb_triplet": [144, 203, 237]}, {"acronym": "LSc", "id": 250, "name": "Lateral septal nucleus, caudal (caudodorsal) part", "structure_id_path": [997, 8, 567, 623, 477, 275, 242, 250], "rgb_triplet": [144, 203, 237]}, {"acronym": "LSr", "id": 258, "name": "Lateral septal nucleus, rostral (rostroventral) part", "structure_id_path": [997, 8, 567, 623, 477, 275, 242, 258], "rgb_triplet": [144, 203, 237]}, {"acronym": "LSv", "id": 266, "name": "Lateral septal nucleus, ventral part", "structure_id_path": [997, 8, 567, 623, 477, 275, 242, 266], "rgb_triplet": [144, 203, 237]}, {"acronym": "SF", "id": 310, "name": "Septofimbrial nucleus", "structure_id_path": [997, 8, 567, 623, 477, 275, 310], "rgb_triplet": [144, 203, 237]}, {"acronym": "SH", "id": 333, "name": "Septohippocampal nucleus", "structure_id_path": [997, 8, 567, 623, 477, 275, 333], "rgb_triplet": [144, 203, 237]}, {"acronym": "sAMY", "id": 278, "name": "Striatum-like amygdalar nuclei", "structure_id_path": [997, 8, 567, 623, 477, 278], "rgb_triplet": [128, 192, 226]}, {"acronym": "AAA", "id": 23, "name": "Anterior amygdalar area", "structure_id_path": [997, 8, 567, 623, 477, 278, 23], "rgb_triplet": [128, 192, 226]}, {"acronym": "BA", "id": 292, "name": "Bed nucleus of the accessory olfactory tract", "structure_id_path": [997, 8, 567, 623, 477, 278, 292], "rgb_triplet": [128, 192, 226]}, {"acronym": "CEA", "id": 536, "name": "Central amygdalar nucleus", "structure_id_path": [997, 8, 567, 623, 477, 278, 536], "rgb_triplet": [128, 192, 226]}, {"acronym": "CEAc", "id": 544, "name": "Central amygdalar nucleus, capsular part", "structure_id_path": [997, 8, 567, 623, 477, 278, 536, 544], "rgb_triplet": [128, 192, 226]}, {"acronym": "CEAl", "id": 551, "name": "Central amygdalar nucleus, lateral part", "structure_id_path": [997, 8, 567, 623, 477, 278, 536, 551], "rgb_triplet": [128, 192, 226]}, {"acronym": "CEAm", "id": 559, "name": "Central amygdalar nucleus, medial part", "structure_id_path": [997, 8, 567, 623, 477, 278, 536, 559], "rgb_triplet": [128, 192, 226]}, {"acronym": "IA", "id": 1105, "name": "Intercalated amygdalar nucleus", "structure_id_path": [997, 8, 567, 623, 477, 278, 1105], "rgb_triplet": [128, 192, 226]}, {"acronym": "MEA", "id": 403, "name": "Medial amygdalar nucleus", "structure_id_path": [997, 8, 567, 623, 477, 278, 403], "rgb_triplet": [128, 192, 226]}, {"acronym": "PAL", "id": 803, "name": "Pallidum", "structure_id_path": [997, 8, 567, 623, 803], "rgb_triplet": [133, 153, 204]}, {"acronym": "PALd", "id": 818, "name": "Pallidum, dorsal region", "structure_id_path": [997, 8, 567, 623, 803, 818], "rgb_triplet": [133, 153, 204]}, {"acronym": "GPe", "id": 1022, "name": "Globus pallidus, external segment", "structure_id_path": [997, 8, 567, 623, 803, 818, 1022], "rgb_triplet": [133, 153, 204]}, {"acronym": "GPi", "id": 1031, "name": "Globus pallidus, internal segment", "structure_id_path": [997, 8, 567, 623, 803, 818, 1031], "rgb_triplet": [133, 153, 204]}, {"acronym": "PALv", "id": 835, "name": "Pallidum, ventral region", "structure_id_path": [997, 8, 567, 623, 803, 835], "rgb_triplet": [162, 177, 216]}, {"acronym": "SI", "id": 342, "name": "Substantia innominata", "structure_id_path": [997, 8, 567, 623, 803, 835, 342], "rgb_triplet": [162, 177, 216]}, {"acronym": "MA", "id": 298, "name": "Magnocellular nucleus", "structure_id_path": [997, 8, 567, 623, 803, 835, 298], "rgb_triplet": [162, 177, 216]}, {"acronym": "PALm", "id": 826, "name": "Pallidum, medial region", "structure_id_path": [997, 8, 567, 623, 803, 826], "rgb_triplet": [150, 167, 211]}, {"acronym": "MSC", "id": 904, "name": "Medial septal complex", "structure_id_path": [997, 8, 567, 623, 803, 826, 904], "rgb_triplet": [150, 167, 211]}, {"acronym": "MS", "id": 564, "name": "Medial septal nucleus", "structure_id_path": [997, 8, 567, 623, 803, 826, 904, 564], "rgb_triplet": [150, 167, 211]}, {"acronym": "NDB", "id": 596, "name": "Diagonal band nucleus", "structure_id_path": [997, 8, 567, 623, 803, 826, 904, 596], "rgb_triplet": [150, 167, 211]}, {"acronym": "TRS", "id": 581, "name": "Triangular nucleus of septum", "structure_id_path": [997, 8, 567, 623, 803, 826, 581], "rgb_triplet": [150, 167, 211]}, {"acronym": "PALc", "id": 809, "name": "Pallidum, caudal region", "structure_id_path": [997, 8, 567, 623, 803, 809], "rgb_triplet": [179, 192, 223]}, {"acronym": "BST", "id": 351, "name": "Bed nuclei of the stria terminalis", "structure_id_path": [997, 8, 567, 623, 803, 809, 351], "rgb_triplet": [179, 192, 223]}, {"acronym": "BAC", "id": 287, "name": "Bed nucleus of the anterior commissure", "structure_id_path": [997, 8, 567, 623, 803, 809, 287], "rgb_triplet": [179, 192, 223]}, {"acronym": "BS", "id": 343, "name": "Brain stem", "structure_id_path": [997, 8, 343], "rgb_triplet": [255, 112, 128]}, {"acronym": "IB", "id": 1129, "name": "Interbrain", "structure_id_path": [997, 8, 343, 1129], "rgb_triplet": [255, 112, 128]}, {"acronym": "TH", "id": 549, "name": "Thalamus", "structure_id_path": [997, 8, 343, 1129, 549], "rgb_triplet": [255, 112, 128]}, {"acronym": "DORsm", "id": 864, "name": "Thalamus, sensory-motor cortex related", "structure_id_path": [997, 8, 343, 1129, 549, 864], "rgb_triplet": [255, 128, 132]}, {"acronym": "VENT", "id": 637, "name": "Ventral group of the dorsal thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 864, 637], "rgb_triplet": [255, 128, 132]}, {"acronym": "VAL", "id": 629, "name": "Ventral anterior-lateral complex of the thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 864, 637, 629], "rgb_triplet": [255, 128, 132]}, {"acronym": "VM", "id": 685, "name": "Ventral medial nucleus of the thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 864, 637, 685], "rgb_triplet": [255, 128, 132]}, {"acronym": "VP", "id": 709, "name": "Ventral posterior complex of the thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 864, 637, 709], "rgb_triplet": [255, 128, 132]}, {"acronym": "VPL", "id": 718, "name": "Ventral posterolateral nucleus of the thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 864, 637, 709, 718], "rgb_triplet": [255, 128, 132]}, {"acronym": "VPLpc", "id": 725, "name": "Ventral posterolateral nucleus of the thalamus, parvicellular part", "structure_id_path": [997, 8, 343, 1129, 549, 864, 637, 709, 725], "rgb_triplet": [255, 128, 132]}, {"acronym": "VPM", "id": 733, "name": "Ventral posteromedial nucleus of the thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 864, 637, 709, 733], "rgb_triplet": [255, 128, 132]}, {"acronym": "VPMpc", "id": 741, "name": "Ventral posteromedial nucleus of the thalamus, parvicellular part", "structure_id_path": [997, 8, 343, 1129, 549, 864, 637, 709, 741], "rgb_triplet": [255, 128, 132]}, {"acronym": "PoT", "id": 563807435, "name": "Posterior triangular thalamic nucleus", "structure_id_path": [997, 8, 343, 1129, 549, 864, 637, 563807435], "rgb_triplet": [255, 128, 132]}, {"acronym": "SPF", "id": 406, "name": "Subparafascicular nucleus", "structure_id_path": [997, 8, 343, 1129, 549, 864, 406], "rgb_triplet": [255, 128, 132]}, {"acronym": "SPFm", "id": 414, "name": "Subparafascicular nucleus, magnocellular part", "structure_id_path": [997, 8, 343, 1129, 549, 864, 406, 414], "rgb_triplet": [255, 128, 132]}, {"acronym": "SPFp", "id": 422, "name": "Subparafascicular nucleus, parvicellular part", "structure_id_path": [997, 8, 343, 1129, 549, 864, 406, 422], "rgb_triplet": [255, 128, 132]}, {"acronym": "SPA", "id": 609, "name": "Subparafascicular area", "structure_id_path": [997, 8, 343, 1129, 549, 864, 609], "rgb_triplet": [255, 128, 132]}, {"acronym": "PP", "id": 1044, "name": "Peripeduncular nucleus", "structure_id_path": [997, 8, 343, 1129, 549, 864, 1044], "rgb_triplet": [255, 128, 132]}, {"acronym": "GENd", "id": 1008, "name": "Geniculate group, dorsal thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 864, 1008], "rgb_triplet": [255, 128, 132]}, {"acronym": "MG", "id": 475, "name": "Medial geniculate complex", "structure_id_path": [997, 8, 343, 1129, 549, 864, 1008, 475], "rgb_triplet": [255, 128, 132]}, {"acronym": "MGd", "id": 1072, "name": "Medial geniculate complex, dorsal part", "structure_id_path": [997, 8, 343, 1129, 549, 864, 1008, 475, 1072], "rgb_triplet": [255, 128, 132]}, {"acronym": "MGv", "id": 1079, "name": "Medial geniculate complex, ventral part", "structure_id_path": [997, 8, 343, 1129, 549, 864, 1008, 475, 1079], "rgb_triplet": [255, 128, 132]}, {"acronym": "MGm", "id": 1088, "name": "Medial geniculate complex, medial part", "structure_id_path": [997, 8, 343, 1129, 549, 864, 1008, 475, 1088], "rgb_triplet": [255, 128, 132]}, {"acronym": "LGd", "id": 170, "name": "Dorsal part of the lateral geniculate complex", "structure_id_path": [997, 8, 343, 1129, 549, 864, 1008, 170], "rgb_triplet": [255, 128, 132]}, {"acronym": "LGd-sh", "id": 496345664, "name": "Dorsal part of the lateral geniculate complex, shell", "structure_id_path": [997, 8, 343, 1129, 549, 864, 1008, 170, 496345664], "rgb_triplet": [255, 128, 132]}, {"acronym": "LGd-co", "id": 496345668, "name": "Dorsal part of the lateral geniculate complex, core", "structure_id_path": [997, 8, 343, 1129, 549, 864, 1008, 170, 496345668], "rgb_triplet": [255, 128, 132]}, {"acronym": "LGd-ip", "id": 496345672, "name": "Dorsal part of the lateral geniculate complex, ipsilateral zone", "structure_id_path": [997, 8, 343, 1129, 549, 864, 1008, 170, 496345672], "rgb_triplet": [255, 128, 132]}, {"acronym": "DORpm", "id": 856, "name": "Thalamus, polymodal association cortex related", "structure_id_path": [997, 8, 343, 1129, 549, 856], "rgb_triplet": [255, 144, 159]}, {"acronym": "LAT", "id": 138, "name": "Lateral group of the dorsal thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 138], "rgb_triplet": [255, 144, 159]}, {"acronym": "LP", "id": 218, "name": "Lateral posterior nucleus of the thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 138, 218], "rgb_triplet": [255, 144, 159]}, {"acronym": "PO", "id": 1020, "name": "Posterior complex of the thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 138, 1020], "rgb_triplet": [255, 144, 159]}, {"acronym": "POL", "id": 1029, "name": "Posterior limiting nucleus of the thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 138, 1029], "rgb_triplet": [255, 144, 159]}, {"acronym": "SGN", "id": 325, "name": "Suprageniculate nucleus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 138, 325], "rgb_triplet": [255, 144, 159]}, {"acronym": "Eth", "id": 560581551, "name": "Ethmoid nucleus of the thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 138, 560581551], "rgb_triplet": [255, 144, 159]}, {"acronym": "ATN", "id": 239, "name": "Anterior group of the dorsal thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 239], "rgb_triplet": [255, 144, 159]}, {"acronym": "AV", "id": 255, "name": "Anteroventral nucleus of thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 239, 255], "rgb_triplet": [255, 144, 159]}, {"acronym": "AM", "id": 127, "name": "Anteromedial nucleus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 239, 127], "rgb_triplet": [255, 144, 159]}, {"acronym": "AMd", "id": 1096, "name": "Anteromedial nucleus, dorsal part", "structure_id_path": [997, 8, 343, 1129, 549, 856, 239, 127, 1096], "rgb_triplet": [255, 144, 159]}, {"acronym": "AMv", "id": 1104, "name": "Anteromedial nucleus, ventral part", "structure_id_path": [997, 8, 343, 1129, 549, 856, 239, 127, 1104], "rgb_triplet": [255, 144, 159]}, {"acronym": "AD", "id": 64, "name": "Anterodorsal nucleus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 239, 64], "rgb_triplet": [255, 144, 159]}, {"acronym": "IAM", "id": 1120, "name": "Interanteromedial nucleus of the thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 239, 1120], "rgb_triplet": [255, 144, 159]}, {"acronym": "IAD", "id": 1113, "name": "Interanterodorsal nucleus of the thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 239, 1113], "rgb_triplet": [255, 144, 159]}, {"acronym": "LD", "id": 155, "name": "Lateral dorsal nucleus of thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 239, 155], "rgb_triplet": [255, 144, 159]}, {"acronym": "MED", "id": 444, "name": "Medial group of the dorsal thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 444], "rgb_triplet": [255, 144, 159]}, {"acronym": "IMD", "id": 59, "name": "Intermediodorsal nucleus of the thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 444, 59], "rgb_triplet": [255, 144, 159]}, {"acronym": "MD", "id": 362, "name": "Mediodorsal nucleus of thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 444, 362], "rgb_triplet": [255, 144, 159]}, {"acronym": "SMT", "id": 366, "name": "Submedial nucleus of the thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 444, 366], "rgb_triplet": [255, 144, 159]}, {"acronym": "PR", "id": 1077, "name": "Perireunensis nucleus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 444, 1077], "rgb_triplet": [255, 144, 159]}, {"acronym": "MTN", "id": 571, "name": "Midline group of the dorsal thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 571], "rgb_triplet": [255, 144, 159]}, {"acronym": "PVT", "id": 149, "name": "Paraventricular nucleus of the thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 571, 149], "rgb_triplet": [255, 144, 159]}, {"acronym": "PT", "id": 15, "name": "Parataenial nucleus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 571, 15], "rgb_triplet": [255, 144, 159]}, {"acronym": "RE", "id": 181, "name": "Nucleus of reuniens", "structure_id_path": [997, 8, 343, 1129, 549, 856, 571, 181], "rgb_triplet": [255, 144, 159]}, {"acronym": "Xi", "id": 560581559, "name": "Xiphoid thalamic nucleus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 571, 560581559], "rgb_triplet": [255, 144, 159]}, {"acronym": "ILM", "id": 51, "name": "Intralaminar nuclei of the dorsal thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 51], "rgb_triplet": [255, 144, 159]}, {"acronym": "RH", "id": 189, "name": "Rhomboid nucleus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 51, 189], "rgb_triplet": [255, 144, 159]}, {"acronym": "CM", "id": 599, "name": "Central medial nucleus of the thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 51, 599], "rgb_triplet": [255, 144, 159]}, {"acronym": "PCN", "id": 907, "name": "Paracentral nucleus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 51, 907], "rgb_triplet": [255, 144, 159]}, {"acronym": "CL", "id": 575, "name": "Central lateral nucleus of the thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 51, 575], "rgb_triplet": [255, 144, 159]}, {"acronym": "PF", "id": 930, "name": "Parafascicular nucleus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 51, 930], "rgb_triplet": [255, 144, 159]}, {"acronym": "PIL", "id": 560581563, "name": "Posterior intralaminar thalamic nucleus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 51, 560581563], "rgb_triplet": [255, 144, 159]}, {"acronym": "RT", "id": 262, "name": "Reticular nucleus of the thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 262], "rgb_triplet": [255, 144, 159]}, {"acronym": "GENv", "id": 1014, "name": "Geniculate group, ventral thalamus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 1014], "rgb_triplet": [255, 144, 159]}, {"acronym": "IGL", "id": 27, "name": "Intergeniculate leaflet of the lateral geniculate complex", "structure_id_path": [997, 8, 343, 1129, 549, 856, 1014, 27], "rgb_triplet": [255, 144, 159]}, {"acronym": "IntG", "id": 563807439, "name": "Intermediate geniculate nucleus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 1014, 563807439], "rgb_triplet": [255, 144, 159]}, {"acronym": "LGv", "id": 178, "name": "Ventral part of the lateral geniculate complex", "structure_id_path": [997, 8, 343, 1129, 549, 856, 1014, 178], "rgb_triplet": [255, 144, 159]}, {"acronym": "SubG", "id": 321, "name": "Subgeniculate nucleus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 1014, 321], "rgb_triplet": [255, 144, 159]}, {"acronym": "EPI", "id": 958, "name": "Epithalamus", "structure_id_path": [997, 8, 343, 1129, 549, 856, 958], "rgb_triplet": [255, 144, 159]}, {"acronym": "MH", "id": 483, "name": "Medial habenula", "structure_id_path": [997, 8, 343, 1129, 549, 856, 958, 483], "rgb_triplet": [255, 144, 159]}, {"acronym": "LH", "id": 186, "name": "Lateral habenula", "structure_id_path": [997, 8, 343, 1129, 549, 856, 958, 186], "rgb_triplet": [255, 144, 159]}, {"acronym": "HY", "id": 1097, "name": "Hypothalamus", "structure_id_path": [997, 8, 343, 1129, 1097], "rgb_triplet": [230, 68, 56]}, {"acronym": "PVZ", "id": 157, "name": "Periventricular zone", "structure_id_path": [997, 8, 343, 1129, 1097, 157], "rgb_triplet": [255, 93, 80]}, {"acronym": "SO", "id": 390, "name": "Supraoptic nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 157, 390], "rgb_triplet": [255, 93, 80]}, {"acronym": "ASO", "id": 332, "name": "Accessory supraoptic group", "structure_id_path": [997, 8, 343, 1129, 1097, 157, 332], "rgb_triplet": [255, 93, 80]}, {"acronym": "PVH", "id": 38, "name": "Paraventricular hypothalamic nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 157, 38], "rgb_triplet": [255, 93, 80]}, {"acronym": "PVa", "id": 30, "name": "Periventricular hypothalamic nucleus, anterior part", "structure_id_path": [997, 8, 343, 1129, 1097, 157, 30], "rgb_triplet": [255, 93, 80]}, {"acronym": "PVi", "id": 118, "name": "Periventricular hypothalamic nucleus, intermediate part", "structure_id_path": [997, 8, 343, 1129, 1097, 157, 118], "rgb_triplet": [255, 93, 80]}, {"acronym": "ARH", "id": 223, "name": "Arcuate hypothalamic nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 157, 223], "rgb_triplet": [255, 93, 80]}, {"acronym": "PVR", "id": 141, "name": "Periventricular region", "structure_id_path": [997, 8, 343, 1129, 1097, 141], "rgb_triplet": [255, 85, 71]}, {"acronym": "ADP", "id": 72, "name": "Anterodorsal preoptic nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 141, 72], "rgb_triplet": [255, 85, 71]}, {"acronym": "AVP", "id": 263, "name": "Anteroventral preoptic nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 141, 263], "rgb_triplet": [255, 85, 71]}, {"acronym": "AVPV", "id": 272, "name": "Anteroventral periventricular nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 141, 272], "rgb_triplet": [255, 85, 71]}, {"acronym": "DMH", "id": 830, "name": "Dorsomedial nucleus of the hypothalamus", "structure_id_path": [997, 8, 343, 1129, 1097, 141, 830], "rgb_triplet": [255, 85, 71]}, {"acronym": "MEPO", "id": 452, "name": "Median preoptic nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 141, 452], "rgb_triplet": [255, 85, 71]}, {"acronym": "MPO", "id": 523, "name": "Medial preoptic area", "structure_id_path": [997, 8, 343, 1129, 1097, 141, 523], "rgb_triplet": [255, 85, 71]}, {"acronym": "OV", "id": 763, "name": "Vascular organ of the lamina terminalis", "structure_id_path": [997, 8, 343, 1129, 1097, 141, 763], "rgb_triplet": [255, 85, 71]}, {"acronym": "PD", "id": 914, "name": "Posterodorsal preoptic nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 141, 914], "rgb_triplet": [255, 85, 71]}, {"acronym": "PS", "id": 1109, "name": "Parastrial nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 141, 1109], "rgb_triplet": [255, 85, 71]}, {"acronym": "PVp", "id": 126, "name": "Periventricular hypothalamic nucleus, posterior part", "structure_id_path": [997, 8, 343, 1129, 1097, 141, 126], "rgb_triplet": [255, 85, 71]}, {"acronym": "PVpo", "id": 133, "name": "Periventricular hypothalamic nucleus, preoptic part", "structure_id_path": [997, 8, 343, 1129, 1097, 141, 133], "rgb_triplet": [255, 85, 71]}, {"acronym": "SBPV", "id": 347, "name": "Subparaventricular zone", "structure_id_path": [997, 8, 343, 1129, 1097, 141, 347], "rgb_triplet": [255, 85, 71]}, {"acronym": "SCH", "id": 286, "name": "Suprachiasmatic nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 141, 286], "rgb_triplet": [255, 85, 71]}, {"acronym": "SFO", "id": 338, "name": "Subfornical organ", "structure_id_path": [997, 8, 343, 1129, 1097, 141, 338], "rgb_triplet": [255, 85, 71]}, {"acronym": "VMPO", "id": 576073699, "name": "Ventromedial preoptic nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 141, 576073699], "rgb_triplet": [255, 85, 71]}, {"acronym": "VLPO", "id": 689, "name": "Ventrolateral preoptic nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 141, 689], "rgb_triplet": [255, 85, 71]}, {"acronym": "MEZ", "id": 467, "name": "Hypothalamic medial zone", "structure_id_path": [997, 8, 343, 1129, 1097, 467], "rgb_triplet": [255, 76, 62]}, {"acronym": "AHN", "id": 88, "name": "Anterior hypothalamic nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 467, 88], "rgb_triplet": [255, 76, 62]}, {"acronym": "MBO", "id": 331, "name": "Mammillary body", "structure_id_path": [997, 8, 343, 1129, 1097, 467, 331], "rgb_triplet": [255, 76, 62]}, {"acronym": "LM", "id": 210, "name": "Lateral mammillary nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 467, 331, 210], "rgb_triplet": [255, 76, 62]}, {"acronym": "MM", "id": 491, "name": "Medial mammillary nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 467, 331, 491], "rgb_triplet": [255, 76, 62]}, {"acronym": "MMme", "id": 732, "name": "Medial mammillary nucleus, median part", "structure_id_path": [997, 8, 343, 1129, 1097, 467, 331, 491, 732], "rgb_triplet": [255, 76, 62]}, {"acronym": "MMl", "id": 606826647, "name": "Medial mammillary nucleus, lateral part", "structure_id_path": [997, 8, 343, 1129, 1097, 467, 331, 491, 606826647], "rgb_triplet": [255, 76, 62]}, {"acronym": "MMm", "id": 606826651, "name": "Medial mammillary nucleus, medial part", "structure_id_path": [997, 8, 343, 1129, 1097, 467, 331, 491, 606826651], "rgb_triplet": [255, 76, 62]}, {"acronym": "MMp", "id": 606826655, "name": "Medial mammillary nucleus, posterior part", "structure_id_path": [997, 8, 343, 1129, 1097, 467, 331, 491, 606826655], "rgb_triplet": [255, 76, 62]}, {"acronym": "MMd", "id": 606826659, "name": "Medial mammillary nucleus, dorsal part", "structure_id_path": [997, 8, 343, 1129, 1097, 467, 331, 491, 606826659], "rgb_triplet": [255, 76, 62]}, {"acronym": "SUM", "id": 525, "name": "Supramammillary nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 467, 331, 525], "rgb_triplet": [255, 76, 62]}, {"acronym": "TM", "id": 557, "name": "Tuberomammillary nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 467, 331, 557], "rgb_triplet": [255, 76, 62]}, {"acronym": "TMd", "id": 1126, "name": "Tuberomammillary nucleus, dorsal part", "structure_id_path": [997, 8, 343, 1129, 1097, 467, 331, 557, 1126], "rgb_triplet": [255, 76, 62]}, {"acronym": "TMv", "id": 1, "name": "Tuberomammillary nucleus, ventral part", "structure_id_path": [997, 8, 343, 1129, 1097, 467, 331, 557, 1], "rgb_triplet": [255, 76, 62]}, {"acronym": "MPN", "id": 515, "name": "Medial preoptic nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 467, 515], "rgb_triplet": [255, 76, 62]}, {"acronym": "PMd", "id": 980, "name": "Dorsal premammillary nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 467, 980], "rgb_triplet": [255, 76, 62]}, {"acronym": "PMv", "id": 1004, "name": "Ventral premammillary nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 467, 1004], "rgb_triplet": [255, 76, 62]}, {"acronym": "PVHd", "id": 63, "name": "Paraventricular hypothalamic nucleus, descending division", "structure_id_path": [997, 8, 343, 1129, 1097, 467, 63], "rgb_triplet": [255, 76, 62]}, {"acronym": "VMH", "id": 693, "name": "Ventromedial hypothalamic nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 467, 693], "rgb_triplet": [255, 76, 62]}, {"acronym": "PH", "id": 946, "name": "Posterior hypothalamic nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 467, 946], "rgb_triplet": [255, 76, 62]}, {"acronym": "LZ", "id": 290, "name": "Hypothalamic lateral zone", "structure_id_path": [997, 8, 343, 1129, 1097, 290], "rgb_triplet": [242, 72, 59]}, {"acronym": "LHA", "id": 194, "name": "Lateral hypothalamic area", "structure_id_path": [997, 8, 343, 1129, 1097, 290, 194], "rgb_triplet": [242, 72, 59]}, {"acronym": "LPO", "id": 226, "name": "Lateral preoptic area", "structure_id_path": [997, 8, 343, 1129, 1097, 290, 226], "rgb_triplet": [242, 72, 59]}, {"acronym": "PST", "id": 356, "name": "Preparasubthalamic nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 290, 356], "rgb_triplet": [242, 72, 59]}, {"acronym": "PSTN", "id": 364, "name": "Parasubthalamic nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 290, 364], "rgb_triplet": [242, 72, 59]}, {"acronym": "PeF", "id": 576073704, "name": "Perifornical nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 290, 576073704], "rgb_triplet": [242, 72, 59]}, {"acronym": "RCH", "id": 173, "name": "Retrochiasmatic area", "structure_id_path": [997, 8, 343, 1129, 1097, 290, 173], "rgb_triplet": [242, 72, 59]}, {"acronym": "STN", "id": 470, "name": "Subthalamic nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 290, 470], "rgb_triplet": [242, 72, 59]}, {"acronym": "TU", "id": 614, "name": "Tuberal nucleus", "structure_id_path": [997, 8, 343, 1129, 1097, 290, 614], "rgb_triplet": [242, 72, 59]}, {"acronym": "ZI", "id": 797, "name": "Zona incerta", "structure_id_path": [997, 8, 343, 1129, 1097, 290, 797], "rgb_triplet": [242, 72, 59]}, {"acronym": "FF", "id": 804, "name": "Fields of Forel", "structure_id_path": [997, 8, 343, 1129, 1097, 290, 797, 804], "rgb_triplet": [242, 72, 59]}, {"acronym": "ME", "id": 10671, "name": "Median eminence", "structure_id_path": [997, 8, 343, 1129, 1097, 10671], "rgb_triplet": [242, 72, 59]}, {"acronym": "MB", "id": 313, "name": "Midbrain", "structure_id_path": [997, 8, 343, 313], "rgb_triplet": [255, 100, 255]}, {"acronym": "MBsen", "id": 339, "name": "Midbrain, sensory related", "structure_id_path": [997, 8, 343, 313, 339], "rgb_triplet": [255, 122, 255]}, {"acronym": "SCs", "id": 302, "name": "Superior colliculus, sensory related", "structure_id_path": [997, 8, 343, 313, 339, 302], "rgb_triplet": [255, 122, 255]}, {"acronym": "SCop", "id": 851, "name": "Superior colliculus, optic layer", "structure_id_path": [997, 8, 343, 313, 339, 302, 851], "rgb_triplet": [255, 122, 255]}, {"acronym": "SCsg", "id": 842, "name": "Superior colliculus, superficial gray layer", "structure_id_path": [997, 8, 343, 313, 339, 302, 842], "rgb_triplet": [255, 122, 255]}, {"acronym": "SCzo", "id": 834, "name": "Superior colliculus, zonal layer", "structure_id_path": [997, 8, 343, 313, 339, 302, 834], "rgb_triplet": [255, 122, 255]}, {"acronym": "IC", "id": 4, "name": "Inferior colliculus", "structure_id_path": [997, 8, 343, 313, 339, 4], "rgb_triplet": [255, 122, 255]}, {"acronym": "ICc", "id": 811, "name": "Inferior colliculus, central nucleus", "structure_id_path": [997, 8, 343, 313, 339, 4, 811], "rgb_triplet": [255, 122, 255]}, {"acronym": "ICd", "id": 820, "name": "Inferior colliculus, dorsal nucleus", "structure_id_path": [997, 8, 343, 313, 339, 4, 820], "rgb_triplet": [255, 122, 255]}, {"acronym": "ICe", "id": 828, "name": "Inferior colliculus, external nucleus", "structure_id_path": [997, 8, 343, 313, 339, 4, 828], "rgb_triplet": [255, 122, 255]}, {"acronym": "NB", "id": 580, "name": "Nucleus of the brachium of the inferior colliculus", "structure_id_path": [997, 8, 343, 313, 339, 580], "rgb_triplet": [255, 122, 255]}, {"acronym": "SAG", "id": 271, "name": "Nucleus sagulum", "structure_id_path": [997, 8, 343, 313, 339, 271], "rgb_triplet": [255, 122, 255]}, {"acronym": "PBG", "id": 874, "name": "Parabigeminal nucleus", "structure_id_path": [997, 8, 343, 313, 339, 874], "rgb_triplet": [255, 122, 255]}, {"acronym": "MEV", "id": 460, "name": "Midbrain trigeminal nucleus", "structure_id_path": [997, 8, 343, 313, 339, 460], "rgb_triplet": [255, 122, 255]}, {"acronym": "SCO", "id": 599626923, "name": "Subcommissural organ", "structure_id_path": [997, 8, 343, 313, 339, 599626923], "rgb_triplet": [255, 122, 255]}, {"acronym": "MBmot", "id": 323, "name": "Midbrain, motor related", "structure_id_path": [997, 8, 343, 313, 323], "rgb_triplet": [255, 144, 255]}, {"acronym": "SNr", "id": 381, "name": "Substantia nigra, reticular part", "structure_id_path": [997, 8, 343, 313, 323, 381], "rgb_triplet": [255, 144, 255]}, {"acronym": "VTA", "id": 749, "name": "Ventral tegmental area", "structure_id_path": [997, 8, 343, 313, 323, 749], "rgb_triplet": [255, 144, 255]}, {"acronym": "PN", "id": 607344830, "name": "Paranigral nucleus", "structure_id_path": [997, 8, 343, 313, 323, 607344830], "rgb_triplet": [255, 144, 255]}, {"acronym": "RR", "id": 246, "name": "Midbrain reticular nucleus, retrorubral area", "structure_id_path": [997, 8, 343, 313, 323, 246], "rgb_triplet": [255, 144, 255]}, {"acronym": "MRN", "id": 128, "name": "Midbrain reticular nucleus", "structure_id_path": [997, 8, 343, 313, 323, 128], "rgb_triplet": [255, 144, 255]}, {"acronym": "SCm", "id": 294, "name": "Superior colliculus, motor related", "structure_id_path": [997, 8, 343, 313, 323, 294], "rgb_triplet": [255, 144, 255]}, {"acronym": "SCdg", "id": 26, "name": "Superior colliculus, motor related, deep gray layer", "structure_id_path": [997, 8, 343, 313, 323, 294, 26], "rgb_triplet": [255, 144, 255]}, {"acronym": "SCdw", "id": 42, "name": "Superior colliculus, motor related, deep white layer", "structure_id_path": [997, 8, 343, 313, 323, 294, 42], "rgb_triplet": [255, 144, 255]}, {"acronym": "SCiw", "id": 17, "name": "Superior colliculus, motor related, intermediate white layer", "structure_id_path": [997, 8, 343, 313, 323, 294, 17], "rgb_triplet": [255, 144, 255]}, {"acronym": "SCig", "id": 10, "name": "Superior colliculus, motor related, intermediate gray layer", "structure_id_path": [997, 8, 343, 313, 323, 294, 10], "rgb_triplet": [255, 144, 255]}, {"acronym": "PAG", "id": 795, "name": "Periaqueductal gray", "structure_id_path": [997, 8, 343, 313, 323, 795], "rgb_triplet": [255, 144, 255]}, {"acronym": "PRC", "id": 50, "name": "Precommissural nucleus", "structure_id_path": [997, 8, 343, 313, 323, 795, 50], "rgb_triplet": [255, 144, 255]}, {"acronym": "INC", "id": 67, "name": "Interstitial nucleus of Cajal", "structure_id_path": [997, 8, 343, 313, 323, 795, 67], "rgb_triplet": [255, 144, 255]}, {"acronym": "ND", "id": 587, "name": "Nucleus of Darkschewitsch", "structure_id_path": [997, 8, 343, 313, 323, 795, 587], "rgb_triplet": [255, 144, 255]}, {"acronym": "Su3", "id": 614454277, "name": "Supraoculomotor periaqueductal gray", "structure_id_path": [997, 8, 343, 313, 323, 795, 614454277], "rgb_triplet": [255, 144, 255]}, {"acronym": "PRT", "id": 1100, "name": "Pretectal region", "structure_id_path": [997, 8, 343, 313, 323, 1100], "rgb_triplet": [255, 144, 255]}, {"acronym": "APN", "id": 215, "name": "Anterior pretectal nucleus", "structure_id_path": [997, 8, 343, 313, 323, 1100, 215], "rgb_triplet": [255, 144, 255]}, {"acronym": "MPT", "id": 531, "name": "Medial pretectal area", "structure_id_path": [997, 8, 343, 313, 323, 1100, 531], "rgb_triplet": [255, 144, 255]}, {"acronym": "NOT", "id": 628, "name": "Nucleus of the optic tract", "structure_id_path": [997, 8, 343, 313, 323, 1100, 628], "rgb_triplet": [255, 144, 255]}, {"acronym": "NPC", "id": 634, "name": "Nucleus of the posterior commissure", "structure_id_path": [997, 8, 343, 313, 323, 1100, 634], "rgb_triplet": [255, 144, 255]}, {"acronym": "OP", "id": 706, "name": "Olivary pretectal nucleus", "structure_id_path": [997, 8, 343, 313, 323, 1100, 706], "rgb_triplet": [255, 144, 255]}, {"acronym": "PPT", "id": 1061, "name": "Posterior pretectal nucleus", "structure_id_path": [997, 8, 343, 313, 323, 1100, 1061], "rgb_triplet": [255, 144, 255]}, {"acronym": "RPF", "id": 549009203, "name": "Retroparafascicular nucleus", "structure_id_path": [997, 8, 343, 313, 323, 1100, 549009203], "rgb_triplet": [255, 144, 255]}, {"acronym": "CUN", "id": 616, "name": "Cuneiform nucleus", "structure_id_path": [997, 8, 343, 313, 323, 616], "rgb_triplet": [255, 144, 255]}, {"acronym": "RN", "id": 214, "name": "Red nucleus", "structure_id_path": [997, 8, 343, 313, 323, 214], "rgb_triplet": [255, 144, 255]}, {"acronym": "III", "id": 35, "name": "Oculomotor nucleus", "structure_id_path": [997, 8, 343, 313, 323, 35], "rgb_triplet": [255, 144, 255]}, {"acronym": "MA3", "id": 549009211, "name": "Medial accesory oculomotor nucleus", "structure_id_path": [997, 8, 343, 313, 323, 549009211], "rgb_triplet": [255, 144, 255]}, {"acronym": "EW", "id": 975, "name": "Edinger-Westphal nucleus", "structure_id_path": [997, 8, 343, 313, 323, 975], "rgb_triplet": [255, 144, 255]}, {"acronym": "IV", "id": 115, "name": "Trochlear nucleus", "structure_id_path": [997, 8, 343, 313, 323, 115], "rgb_triplet": [255, 144, 255]}, {"acronym": "Pa4", "id": 606826663, "name": "Paratrochlear nucleus", "structure_id_path": [997, 8, 343, 313, 323, 606826663], "rgb_triplet": [255, 144, 255]}, {"acronym": "VTN", "id": 757, "name": "Ventral tegmental nucleus", "structure_id_path": [997, 8, 343, 313, 323, 757], "rgb_triplet": [255, 144, 255]}, {"acronym": "AT", "id": 231, "name": "Anterior tegmental nucleus", "structure_id_path": [997, 8, 343, 313, 323, 231], "rgb_triplet": [255, 144, 255]}, {"acronym": "LT", "id": 66, "name": "Lateral terminal nucleus of the accessory optic tract", "structure_id_path": [997, 8, 343, 313, 323, 66], "rgb_triplet": [255, 144, 255]}, {"acronym": "DT", "id": 75, "name": "Dorsal terminal nucleus of the accessory optic tract", "structure_id_path": [997, 8, 343, 313, 323, 75], "rgb_triplet": [255, 144, 255]}, {"acronym": "MT", "id": 58, "name": "Medial terminal nucleus of the accessory optic tract", "structure_id_path": [997, 8, 343, 313, 323, 58], "rgb_triplet": [255, 144, 255]}, {"acronym": "MBsta", "id": 348, "name": "Midbrain, behavioral state related", "structure_id_path": [997, 8, 343, 313, 348], "rgb_triplet": [255, 144, 255]}, {"acronym": "SNc", "id": 374, "name": "Substantia nigra, compact part", "structure_id_path": [997, 8, 343, 313, 348, 374], "rgb_triplet": [255, 166, 255]}, {"acronym": "PPN", "id": 1052, "name": "Pedunculopontine nucleus", "structure_id_path": [997, 8, 343, 313, 348, 1052], "rgb_triplet": [255, 166, 255]}, {"acronym": "RAmb", "id": 165, "name": "Midbrain raphe nuclei", "structure_id_path": [997, 8, 343, 313, 348, 165], "rgb_triplet": [255, 166, 255]}, {"acronym": "IF", "id": 12, "name": "Interfascicular nucleus raphe", "structure_id_path": [997, 8, 343, 313, 348, 165, 12], "rgb_triplet": [255, 166, 255]}, {"acronym": "IPN", "id": 100, "name": "Interpeduncular nucleus", "structure_id_path": [997, 8, 343, 313, 348, 165, 100], "rgb_triplet": [255, 166, 255]}, {"acronym": "IPR", "id": 607344834, "name": "Interpeduncular nucleus, rostral", "structure_id_path": [997, 8, 343, 313, 348, 165, 100, 607344834], "rgb_triplet": [255, 166, 255]}, {"acronym": "IPC", "id": 607344838, "name": "Interpeduncular nucleus, caudal", "structure_id_path": [997, 8, 343, 313, 348, 165, 100, 607344838], "rgb_triplet": [255, 166, 255]}, {"acronym": "IPA", "id": 607344842, "name": "Interpeduncular nucleus, apical", "structure_id_path": [997, 8, 343, 313, 348, 165, 100, 607344842], "rgb_triplet": [255, 166, 255]}, {"acronym": "IPL", "id": 607344846, "name": "Interpeduncular nucleus, lateral", "structure_id_path": [997, 8, 343, 313, 348, 165, 100, 607344846], "rgb_triplet": [255, 166, 255]}, {"acronym": "IPI", "id": 607344850, "name": "Interpeduncular nucleus, intermediate", "structure_id_path": [997, 8, 343, 313, 348, 165, 100, 607344850], "rgb_triplet": [255, 166, 255]}, {"acronym": "IPDM", "id": 607344854, "name": "Interpeduncular nucleus, dorsomedial", "structure_id_path": [997, 8, 343, 313, 348, 165, 100, 607344854], "rgb_triplet": [255, 166, 255]}, {"acronym": "IPDL", "id": 607344858, "name": "Interpeduncular nucleus, dorsolateral", "structure_id_path": [997, 8, 343, 313, 348, 165, 100, 607344858], "rgb_triplet": [255, 166, 255]}, {"acronym": "IPRL", "id": 607344862, "name": "Interpeduncular nucleus, rostrolateral", "structure_id_path": [997, 8, 343, 313, 348, 165, 100, 607344862], "rgb_triplet": [255, 166, 255]}, {"acronym": "RL", "id": 197, "name": "Rostral linear nucleus raphe", "structure_id_path": [997, 8, 343, 313, 348, 165, 197], "rgb_triplet": [255, 166, 255]}, {"acronym": "CLI", "id": 591, "name": "Central linear nucleus raphe", "structure_id_path": [997, 8, 343, 313, 348, 165, 591], "rgb_triplet": [255, 166, 255]}, {"acronym": "DR", "id": 872, "name": "Dorsal nucleus raphe", "structure_id_path": [997, 8, 343, 313, 348, 165, 872], "rgb_triplet": [255, 166, 255]}, {"acronym": "HB", "id": 1065, "name": "Hindbrain", "structure_id_path": [997, 8, 343, 1065], "rgb_triplet": [255, 155, 136]}, {"acronym": "P", "id": 771, "name": "Pons", "structure_id_path": [997, 8, 343, 1065, 771], "rgb_triplet": [255, 155, 136]}, {"acronym": "P-sen", "id": 1132, "name": "Pons, sensory related", "structure_id_path": [997, 8, 343, 1065, 771, 1132], "rgb_triplet": [255, 174, 111]}, {"acronym": "NLL", "id": 612, "name": "Nucleus of the lateral lemniscus", "structure_id_path": [997, 8, 343, 1065, 771, 1132, 612], "rgb_triplet": [255, 174, 111]}, {"acronym": "PSV", "id": 7, "name": "Principal sensory nucleus of the trigeminal", "structure_id_path": [997, 8, 343, 1065, 771, 1132, 7], "rgb_triplet": [255, 174, 111]}, {"acronym": "PB", "id": 867, "name": "Parabrachial nucleus", "structure_id_path": [997, 8, 343, 1065, 771, 1132, 867], "rgb_triplet": [255, 174, 111]}, {"acronym": "KF", "id": 123, "name": "Koelliker-Fuse subnucleus", "structure_id_path": [997, 8, 343, 1065, 771, 1132, 867, 123], "rgb_triplet": [255, 174, 111]}, {"acronym": "SOC", "id": 398, "name": "Superior olivary complex", "structure_id_path": [997, 8, 343, 1065, 771, 1132, 398], "rgb_triplet": [255, 174, 111]}, {"acronym": "POR", "id": 122, "name": "Superior olivary complex, periolivary region", "structure_id_path": [997, 8, 343, 1065, 771, 1132, 398, 122], "rgb_triplet": [255, 174, 111]}, {"acronym": "SOCm", "id": 105, "name": "Superior olivary complex, medial part", "structure_id_path": [997, 8, 343, 1065, 771, 1132, 398, 105], "rgb_triplet": [255, 174, 111]}, {"acronym": "SOCl", "id": 114, "name": "Superior olivary complex, lateral part", "structure_id_path": [997, 8, 343, 1065, 771, 1132, 398, 114], "rgb_triplet": [255, 174, 111]}, {"acronym": "P-mot", "id": 987, "name": "Pons, motor related", "structure_id_path": [997, 8, 343, 1065, 771, 987], "rgb_triplet": [255, 186, 134]}, {"acronym": "B", "id": 280, "name": "Barrington's nucleus", "structure_id_path": [997, 8, 343, 1065, 771, 987, 280], "rgb_triplet": [255, 186, 134]}, {"acronym": "DTN", "id": 880, "name": "Dorsal tegmental nucleus", "structure_id_path": [997, 8, 343, 1065, 771, 987, 880], "rgb_triplet": [255, 186, 134]}, {"acronym": "PDTg", "id": 599626927, "name": "Posterodorsal tegmental nucleus", "structure_id_path": [997, 8, 343, 1065, 771, 987, 599626927], "rgb_triplet": [255, 186, 134]}, {"acronym": "PCG", "id": 898, "name": "Pontine central gray", "structure_id_path": [997, 8, 343, 1065, 771, 987, 898], "rgb_triplet": [255, 186, 134]}, {"acronym": "PG", "id": 931, "name": "Pontine gray", "structure_id_path": [997, 8, 343, 1065, 771, 987, 931], "rgb_triplet": [255, 186, 134]}, {"acronym": "PRNc", "id": 1093, "name": "Pontine reticular nucleus, caudal part", "structure_id_path": [997, 8, 343, 1065, 771, 987, 1093], "rgb_triplet": [255, 186, 134]}, {"acronym": "SG", "id": 318, "name": "Supragenual nucleus", "structure_id_path": [997, 8, 343, 1065, 771, 987, 318], "rgb_triplet": [255, 186, 134]}, {"acronym": "SUT", "id": 534, "name": "Supratrigeminal nucleus", "structure_id_path": [997, 8, 343, 1065, 771, 987, 534], "rgb_triplet": [255, 186, 134]}, {"acronym": "TRN", "id": 574, "name": "Tegmental reticular nucleus", "structure_id_path": [997, 8, 343, 1065, 771, 987, 574], "rgb_triplet": [255, 186, 134]}, {"acronym": "V", "id": 621, "name": "Motor nucleus of trigeminal", "structure_id_path": [997, 8, 343, 1065, 771, 987, 621], "rgb_triplet": [255, 186, 134]}, {"acronym": "P5", "id": 549009215, "name": "Peritrigeminal zone", "structure_id_path": [997, 8, 343, 1065, 771, 987, 549009215], "rgb_triplet": [255, 186, 134]}, {"acronym": "Acs5", "id": 549009219, "name": "Accessory trigeminal nucleus", "structure_id_path": [997, 8, 343, 1065, 771, 987, 549009219], "rgb_triplet": [255, 186, 134]}, {"acronym": "PC5", "id": 549009223, "name": "Parvicellular motor 5 nucleus", "structure_id_path": [997, 8, 343, 1065, 771, 987, 549009223], "rgb_triplet": [255, 186, 134]}, {"acronym": "I5", "id": 549009227, "name": "Intertrigeminal nucleus", "structure_id_path": [997, 8, 343, 1065, 771, 987, 549009227], "rgb_triplet": [255, 186, 134]}, {"acronym": "P-sat", "id": 1117, "name": "Pons, behavioral state related", "structure_id_path": [997, 8, 343, 1065, 771, 1117], "rgb_triplet": [255, 195, 149]}, {"acronym": "CS", "id": 679, "name": "Superior central nucleus raphe", "structure_id_path": [997, 8, 343, 1065, 771, 1117, 679], "rgb_triplet": [255, 195, 149]}, {"acronym": "LC", "id": 147, "name": "Locus ceruleus", "structure_id_path": [997, 8, 343, 1065, 771, 1117, 147], "rgb_triplet": [255, 195, 149]}, {"acronym": "LDT", "id": 162, "name": "Laterodorsal tegmental nucleus", "structure_id_path": [997, 8, 343, 1065, 771, 1117, 162], "rgb_triplet": [255, 195, 149]}, {"acronym": "NI", "id": 604, "name": "Nucleus incertus", "structure_id_path": [997, 8, 343, 1065, 771, 1117, 604], "rgb_triplet": [255, 195, 149]}, {"acronym": "PRNr", "id": 146, "name": "Pontine reticular nucleus", "structure_id_path": [997, 8, 343, 1065, 771, 1117, 146], "rgb_triplet": [255, 195, 149]}, {"acronym": "RPO", "id": 238, "name": "Nucleus raphe pontis", "structure_id_path": [997, 8, 343, 1065, 771, 1117, 238], "rgb_triplet": [255, 195, 149]}, {"acronym": "SLC", "id": 350, "name": "Subceruleus nucleus", "structure_id_path": [997, 8, 343, 1065, 771, 1117, 350], "rgb_triplet": [255, 195, 149]}, {"acronym": "SLD", "id": 358, "name": "Sublaterodorsal nucleus", "structure_id_path": [997, 8, 343, 1065, 771, 1117, 358], "rgb_triplet": [255, 195, 149]}, {"acronym": "MY", "id": 354, "name": "Medulla", "structure_id_path": [997, 8, 343, 1065, 354], "rgb_triplet": [255, 155, 205]}, {"acronym": "MY-sen", "id": 386, "name": "Medulla, sensory related", "structure_id_path": [997, 8, 343, 1065, 354, 386], "rgb_triplet": [255, 165, 210]}, {"acronym": "AP", "id": 207, "name": "Area postrema", "structure_id_path": [997, 8, 343, 1065, 354, 386, 207], "rgb_triplet": [255, 165, 210]}, {"acronym": "CN", "id": 607, "name": "Cochlear nuclei", "structure_id_path": [997, 8, 343, 1065, 354, 386, 607], "rgb_triplet": [255, 165, 210]}, {"acronym": "DCO", "id": 96, "name": "Dorsal cochlear nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 386, 607, 96], "rgb_triplet": [255, 165, 210]}, {"acronym": "VCO", "id": 101, "name": "Ventral cochlear nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 386, 607, 101], "rgb_triplet": [255, 165, 210]}, {"acronym": "DCN", "id": 720, "name": "Dorsal column nuclei", "structure_id_path": [997, 8, 343, 1065, 354, 386, 720], "rgb_triplet": [255, 165, 210]}, {"acronym": "CU", "id": 711, "name": "Cuneate nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 386, 720, 711], "rgb_triplet": [255, 165, 210]}, {"acronym": "GR", "id": 1039, "name": "Gracile nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 386, 720, 1039], "rgb_triplet": [255, 165, 210]}, {"acronym": "ECU", "id": 903, "name": "External cuneate nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 386, 903], "rgb_triplet": [255, 165, 210]}, {"acronym": "NTB", "id": 642, "name": "Nucleus of the trapezoid body", "structure_id_path": [997, 8, 343, 1065, 354, 386, 642], "rgb_triplet": [255, 165, 210]}, {"acronym": "NTS", "id": 651, "name": "Nucleus of the solitary tract", "structure_id_path": [997, 8, 343, 1065, 354, 386, 651], "rgb_triplet": [255, 165, 210]}, {"acronym": "SPVC", "id": 429, "name": "Spinal nucleus of the trigeminal, caudal part", "structure_id_path": [997, 8, 343, 1065, 354, 386, 429], "rgb_triplet": [255, 165, 210]}, {"acronym": "SPVI", "id": 437, "name": "Spinal nucleus of the trigeminal, interpolar part", "structure_id_path": [997, 8, 343, 1065, 354, 386, 437], "rgb_triplet": [255, 165, 210]}, {"acronym": "SPVO", "id": 445, "name": "Spinal nucleus of the trigeminal, oral part", "structure_id_path": [997, 8, 343, 1065, 354, 386, 445], "rgb_triplet": [255, 165, 210]}, {"acronym": "Pa5", "id": 589508451, "name": "Paratrigeminal nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 386, 589508451], "rgb_triplet": [255, 165, 210]}, {"acronym": "MY-mot", "id": 370, "name": "Medulla, motor related", "structure_id_path": [997, 8, 343, 1065, 354, 370], "rgb_triplet": [255, 179, 217]}, {"acronym": "VI", "id": 653, "name": "Abducens nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 370, 653], "rgb_triplet": [255, 179, 217]}, {"acronym": "VII", "id": 661, "name": "Facial motor nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 370, 661], "rgb_triplet": [255, 179, 217]}, {"acronym": "ACVII", "id": 576, "name": "Accessory facial motor nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 370, 576], "rgb_triplet": [255, 179, 217]}, {"acronym": "AMB", "id": 135, "name": "Nucleus ambiguus", "structure_id_path": [997, 8, 343, 1065, 354, 370, 135], "rgb_triplet": [255, 179, 217]}, {"acronym": "AMBd", "id": 939, "name": "Nucleus ambiguus, dorsal division", "structure_id_path": [997, 8, 343, 1065, 354, 370, 135, 939], "rgb_triplet": [255, 179, 217]}, {"acronym": "AMBv", "id": 143, "name": "Nucleus ambiguus, ventral division", "structure_id_path": [997, 8, 343, 1065, 354, 370, 135, 143], "rgb_triplet": [255, 179, 217]}, {"acronym": "DMX", "id": 839, "name": "Dorsal motor nucleus of the vagus nerve", "structure_id_path": [997, 8, 343, 1065, 354, 370, 839], "rgb_triplet": [255, 179, 217]}, {"acronym": "GRN", "id": 1048, "name": "Gigantocellular reticular nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 370, 1048], "rgb_triplet": [255, 179, 217]}, {"acronym": "ICB", "id": 372, "name": "Infracerebellar nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 370, 372], "rgb_triplet": [255, 179, 217]}, {"acronym": "IO", "id": 83, "name": "Inferior olivary complex", "structure_id_path": [997, 8, 343, 1065, 354, 370, 83], "rgb_triplet": [255, 179, 217]}, {"acronym": "IRN", "id": 136, "name": "Intermediate reticular nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 370, 136], "rgb_triplet": [255, 179, 217]}, {"acronym": "ISN", "id": 106, "name": "Inferior salivatory nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 370, 106], "rgb_triplet": [255, 179, 217]}, {"acronym": "LIN", "id": 203, "name": "Linear nucleus of the medulla", "structure_id_path": [997, 8, 343, 1065, 354, 370, 203], "rgb_triplet": [255, 179, 217]}, {"acronym": "LRN", "id": 235, "name": "Lateral reticular nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 370, 235], "rgb_triplet": [255, 179, 217]}, {"acronym": "LRNm", "id": 955, "name": "Lateral reticular nucleus, magnocellular part", "structure_id_path": [997, 8, 343, 1065, 354, 370, 235, 955], "rgb_triplet": [255, 179, 217]}, {"acronym": "LRNp", "id": 963, "name": "Lateral reticular nucleus, parvicellular part", "structure_id_path": [997, 8, 343, 1065, 354, 370, 235, 963], "rgb_triplet": [255, 179, 217]}, {"acronym": "MARN", "id": 307, "name": "Magnocellular reticular nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 370, 307], "rgb_triplet": [255, 179, 217]}, {"acronym": "MDRN", "id": 395, "name": "Medullary reticular nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 370, 395], "rgb_triplet": [255, 179, 217]}, {"acronym": "MDRNd", "id": 1098, "name": "Medullary reticular nucleus, dorsal part", "structure_id_path": [997, 8, 343, 1065, 354, 370, 395, 1098], "rgb_triplet": [255, 179, 217]}, {"acronym": "MDRNv", "id": 1107, "name": "Medullary reticular nucleus, ventral part", "structure_id_path": [997, 8, 343, 1065, 354, 370, 395, 1107], "rgb_triplet": [255, 179, 217]}, {"acronym": "PARN", "id": 852, "name": "Parvicellular reticular nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 370, 852], "rgb_triplet": [255, 179, 217]}, {"acronym": "PAS", "id": 859, "name": "Parasolitary nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 370, 859], "rgb_triplet": [255, 179, 217]}, {"acronym": "PGRN", "id": 938, "name": "Paragigantocellular reticular nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 370, 938], "rgb_triplet": [255, 179, 217]}, {"acronym": "PGRNd", "id": 970, "name": "Paragigantocellular reticular nucleus, dorsal part", "structure_id_path": [997, 8, 343, 1065, 354, 370, 938, 970], "rgb_triplet": [255, 179, 217]}, {"acronym": "PGRNl", "id": 978, "name": "Paragigantocellular reticular nucleus, lateral part", "structure_id_path": [997, 8, 343, 1065, 354, 370, 938, 978], "rgb_triplet": [255, 179, 217]}, {"acronym": "PHY", "id": 154, "name": "Perihypoglossal nuclei", "structure_id_path": [997, 8, 343, 1065, 354, 370, 154], "rgb_triplet": [255, 179, 217]}, {"acronym": "NR", "id": 177, "name": "Nucleus of Roller", "structure_id_path": [997, 8, 343, 1065, 354, 370, 154, 177], "rgb_triplet": [255, 179, 217]}, {"acronym": "PRP", "id": 169, "name": "Nucleus prepositus", "structure_id_path": [997, 8, 343, 1065, 354, 370, 154, 169], "rgb_triplet": [255, 179, 217]}, {"acronym": "PPY", "id": 1069, "name": "Parapyramidal nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 370, 1069], "rgb_triplet": [255, 179, 217]}, {"acronym": "VNC", "id": 701, "name": "Vestibular nuclei", "structure_id_path": [997, 8, 343, 1065, 354, 370, 701], "rgb_triplet": [255, 179, 217]}, {"acronym": "LAV", "id": 209, "name": "Lateral vestibular nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 370, 701, 209], "rgb_triplet": [255, 179, 217]}, {"acronym": "MV", "id": 202, "name": "Medial vestibular nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 370, 701, 202], "rgb_triplet": [255, 179, 217]}, {"acronym": "SPIV", "id": 225, "name": "Spinal vestibular nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 370, 701, 225], "rgb_triplet": [255, 179, 217]}, {"acronym": "SUV", "id": 217, "name": "Superior vestibular nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 370, 701, 217], "rgb_triplet": [255, 179, 217]}, {"acronym": "x", "id": 765, "name": "Nucleus x", "structure_id_path": [997, 8, 343, 1065, 354, 370, 765], "rgb_triplet": [255, 179, 217]}, {"acronym": "XII", "id": 773, "name": "Hypoglossal nucleus", "structure_id_path": [997, 8, 343, 1065, 354, 370, 773], "rgb_triplet": [255, 179, 217]}, {"acronym": "y", "id": 781, "name": "Nucleus y", "structure_id_path": [997, 8, 343, 1065, 354, 370, 781], "rgb_triplet": [255, 179, 217]}, {"acronym": "MY-sat", "id": 379, "name": "Medulla, behavioral state related", "structure_id_path": [997, 8, 343, 1065, 354, 379], "rgb_triplet": [255, 198, 226]}, {"acronym": "RM", "id": 206, "name": "Nucleus raphe magnus", "structure_id_path": [997, 8, 343, 1065, 354, 379, 206], "rgb_triplet": [255, 198, 226]}, {"acronym": "RPA", "id": 230, "name": "Nucleus raphe pallidus", "structure_id_path": [997, 8, 343, 1065, 354, 379, 230], "rgb_triplet": [255, 198, 226]}, {"acronym": "RO", "id": 222, "name": "Nucleus raphe obscurus", "structure_id_path": [997, 8, 343, 1065, 354, 379, 222], "rgb_triplet": [255, 198, 226]}, {"acronym": "CB", "id": 512, "name": "Cerebellum", "structure_id_path": [997, 8, 512], "rgb_triplet": [240, 240, 128]}, {"acronym": "CBX", "id": 528, "name": "Cerebellar cortex", "structure_id_path": [997, 8, 512, 528], "rgb_triplet": [240, 240, 128]}, {"acronym": "VERM", "id": 645, "name": "Vermal regions", "structure_id_path": [997, 8, 512, 528, 645], "rgb_triplet": [255, 252, 145]}, {"acronym": "LING", "id": 912, "name": "Lingula (I)", "structure_id_path": [997, 8, 512, 528, 645, 912], "rgb_triplet": [255, 252, 145]}, {"acronym": "CENT", "id": 920, "name": "Central lobule", "structure_id_path": [997, 8, 512, 528, 645, 920], "rgb_triplet": [255, 252, 145]}, {"acronym": "CENT2", "id": 976, "name": "Lobule II", "structure_id_path": [997, 8, 512, 528, 645, 920, 976], "rgb_triplet": [255, 252, 145]}, {"acronym": "CENT3", "id": 984, "name": "Lobule III", "structure_id_path": [997, 8, 512, 528, 645, 920, 984], "rgb_triplet": [255, 252, 145]}, {"acronym": "CUL", "id": 928, "name": "Culmen", "structure_id_path": [997, 8, 512, 528, 645, 928], "rgb_triplet": [255, 252, 145]}, {"acronym": "CUL4, 5", "id": 1091, "name": "Lobules IV-V", "structure_id_path": [997, 8, 512, 528, 645, 928, 1091], "rgb_triplet": [255, 252, 145]}, {"acronym": "DEC", "id": 936, "name": "Declive (VI)", "structure_id_path": [997, 8, 512, 528, 645, 936], "rgb_triplet": [255, 252, 145]}, {"acronym": "FOTU", "id": 944, "name": "Folium-tuber vermis (VII)", "structure_id_path": [997, 8, 512, 528, 645, 944], "rgb_triplet": [255, 252, 145]}, {"acronym": "PYR", "id": 951, "name": "Pyramus (VIII)", "structure_id_path": [997, 8, 512, 528, 645, 951], "rgb_triplet": [255, 252, 145]}, {"acronym": "UVU", "id": 957, "name": "Uvula (IX)", "structure_id_path": [997, 8, 512, 528, 645, 957], "rgb_triplet": [255, 252, 145]}, {"acronym": "NOD", "id": 968, "name": "Nodulus (X)", "structure_id_path": [997, 8, 512, 528, 645, 968], "rgb_triplet": [255, 252, 145]}, {"acronym": "HEM", "id": 1073, "name": "Hemispheric regions", "structure_id_path": [997, 8, 512, 528, 1073], "rgb_triplet": [255, 252, 145]}, {"acronym": "SIM", "id": 1007, "name": "Simple lobule", "structure_id_path": [997, 8, 512, 528, 1073, 1007], "rgb_triplet": [255, 252, 145]}, {"acronym": "AN", "id": 1017, "name": "Ansiform lobule", "structure_id_path": [997, 8, 512, 528, 1073, 1017], "rgb_triplet": [255, 252, 145]}, {"acronym": "ANcr1", "id": 1056, "name": "Crus 1", "structure_id_path": [997, 8, 512, 528, 1073, 1017, 1056], "rgb_triplet": [255, 252, 145]}, {"acronym": "ANcr2", "id": 1064, "name": "Crus 2", "structure_id_path": [997, 8, 512, 528, 1073, 1017, 1064], "rgb_triplet": [255, 252, 145]}, {"acronym": "PRM", "id": 1025, "name": "Paramedian lobule", "structure_id_path": [997, 8, 512, 528, 1073, 1025], "rgb_triplet": [255, 252, 145]}, {"acronym": "COPY", "id": 1033, "name": "Copula pyramidis", "structure_id_path": [997, 8, 512, 528, 1073, 1033], "rgb_triplet": [255, 252, 145]}, {"acronym": "PFL", "id": 1041, "name": "Paraflocculus", "structure_id_path": [997, 8, 512, 528, 1073, 1041], "rgb_triplet": [255, 252, 145]}, {"acronym": "FL", "id": 1049, "name": "Flocculus", "structure_id_path": [997, 8, 512, 528, 1073, 1049], "rgb_triplet": [255, 252, 145]}, {"acronym": "CBN", "id": 519, "name": "Cerebellar nuclei", "structure_id_path": [997, 8, 512, 519], "rgb_triplet": [240, 240, 128]}, {"acronym": "FN", "id": 989, "name": "Fastigial nucleus", "structure_id_path": [997, 8, 512, 519, 989], "rgb_triplet": [255, 253, 188]}, {"acronym": "IP", "id": 91, "name": "Interposed nucleus", "structure_id_path": [997, 8, 512, 519, 91], "rgb_triplet": [255, 253, 188]}, {"acronym": "DN", "id": 846, "name": "Dentate nucleus", "structure_id_path": [997, 8, 512, 519, 846], "rgb_triplet": [255, 253, 188]}, {"acronym": "VeCB", "id": 589508455, "name": "Vestibulocerebellar nucleus", "structure_id_path": [997, 8, 512, 519, 589508455], "rgb_triplet": [255, 253, 188]}, {"acronym": "fiber tracts", "id": 1009, "name": "fiber tracts", "structure_id_path": [997, 1009], "rgb_triplet": [204, 204, 204]}, {"acronym": "cm", "id": 967, "name": "cranial nerves", "structure_id_path": [997, 1009, 967], "rgb_triplet": [204, 204, 204]}, {"acronym": "von", "id": 949, "name": "vomeronasal nerve", "structure_id_path": [997, 1009, 967, 949], "rgb_triplet": [204, 204, 204]}, {"acronym": "In", "id": 840, "name": "olfactory nerve", "structure_id_path": [997, 1009, 967, 840], "rgb_triplet": [204, 204, 204]}, {"acronym": "onl", "id": 1016, "name": "olfactory nerve layer of main olfactory bulb", "structure_id_path": [997, 1009, 967, 840, 1016], "rgb_triplet": [204, 204, 204]}, {"acronym": "lotg", "id": 21, "name": "lateral olfactory tract, general", "structure_id_path": [997, 1009, 967, 840, 21], "rgb_triplet": [204, 204, 204]}, {"acronym": "lot", "id": 665, "name": "lateral olfactory tract, body", "structure_id_path": [997, 1009, 967, 840, 21, 665], "rgb_triplet": [204, 204, 204]}, {"acronym": "lotd", "id": 538, "name": "dorsal limb", "structure_id_path": [997, 1009, 967, 840, 21, 538], "rgb_triplet": [204, 204, 204]}, {"acronym": "aco", "id": 900, "name": "anterior commissure, olfactory limb", "structure_id_path": [997, 1009, 967, 840, 900], "rgb_triplet": [204, 204, 204]}, {"acronym": "IIn", "id": 848, "name": "optic nerve", "structure_id_path": [997, 1009, 967, 848], "rgb_triplet": [204, 204, 204]}, {"acronym": "bsc", "id": 916, "name": "brachium of the superior colliculus", "structure_id_path": [997, 1009, 967, 848, 916], "rgb_triplet": [204, 204, 204]}, {"acronym": "csc", "id": 336, "name": "superior colliculus commissure", "structure_id_path": [997, 1009, 967, 848, 336], "rgb_triplet": [204, 204, 204]}, {"acronym": "och", "id": 117, "name": "optic chiasm", "structure_id_path": [997, 1009, 967, 848, 117], "rgb_triplet": [204, 204, 204]}, {"acronym": "opt", "id": 125, "name": "optic tract", "structure_id_path": [997, 1009, 967, 848, 125], "rgb_triplet": [204, 204, 204]}, {"acronym": "IIIn", "id": 832, "name": "oculomotor nerve", "structure_id_path": [997, 1009, 967, 832], "rgb_triplet": [204, 204, 204]}, {"acronym": "mlf", "id": 62, "name": "medial longitudinal fascicle", "structure_id_path": [997, 1009, 967, 832, 62], "rgb_triplet": [204, 204, 204]}, {"acronym": "pc", "id": 158, "name": "posterior commissure", "structure_id_path": [997, 1009, 967, 832, 158], "rgb_triplet": [204, 204, 204]}, {"acronym": "IVn", "id": 911, "name": "trochlear nerve", "structure_id_path": [997, 1009, 967, 911], "rgb_triplet": [204, 204, 204]}, {"acronym": "Vn", "id": 901, "name": "trigeminal nerve", "structure_id_path": [997, 1009, 967, 901], "rgb_triplet": [204, 204, 204]}, {"acronym": "moV", "id": 93, "name": "motor root of the trigeminal nerve", "structure_id_path": [997, 1009, 967, 901, 93], "rgb_triplet": [204, 204, 204]}, {"acronym": "sV", "id": 229, "name": "sensory root of the trigeminal nerve", "structure_id_path": [997, 1009, 967, 901, 229], "rgb_triplet": [204, 204, 204]}, {"acronym": "sptV", "id": 794, "name": "spinal tract of the trigeminal nerve", "structure_id_path": [997, 1009, 967, 901, 229, 794], "rgb_triplet": [204, 204, 204]}, {"acronym": "VIIn", "id": 798, "name": "facial nerve", "structure_id_path": [997, 1009, 967, 798], "rgb_triplet": [204, 204, 204]}, {"acronym": "gVIIn", "id": 1116, "name": "genu of the facial nerve", "structure_id_path": [997, 1009, 967, 798, 1116], "rgb_triplet": [204, 204, 204]}, {"acronym": "VIIIn", "id": 933, "name": "vestibulocochlear nerve", "structure_id_path": [997, 1009, 967, 933], "rgb_triplet": [204, 204, 204]}, {"acronym": "vVIIIn", "id": 413, "name": "vestibular nerve", "structure_id_path": [997, 1009, 967, 933, 413], "rgb_triplet": [204, 204, 204]}, {"acronym": "cVIIIn", "id": 948, "name": "cochlear nerve", "structure_id_path": [997, 1009, 967, 933, 948], "rgb_triplet": [204, 204, 204]}, {"acronym": "tb", "id": 841, "name": "trapezoid body", "structure_id_path": [997, 1009, 967, 933, 948, 841], "rgb_triplet": [204, 204, 204]}, {"acronym": "das", "id": 506, "name": "dorsal acoustic stria", "structure_id_path": [997, 1009, 967, 933, 948, 506], "rgb_triplet": [204, 204, 204]}, {"acronym": "ll", "id": 658, "name": "lateral lemniscus", "structure_id_path": [997, 1009, 967, 933, 948, 658], "rgb_triplet": [204, 204, 204]}, {"acronym": "cic", "id": 633, "name": "inferior colliculus commissure", "structure_id_path": [997, 1009, 967, 933, 948, 633], "rgb_triplet": [204, 204, 204]}, {"acronym": "bic", "id": 482, "name": "brachium of the inferior colliculus", "structure_id_path": [997, 1009, 967, 933, 948, 482], "rgb_triplet": [204, 204, 204]}, {"acronym": "Xn", "id": 917, "name": "vagus nerve", "structure_id_path": [997, 1009, 967, 917], "rgb_triplet": [204, 204, 204]}, {"acronym": "ts", "id": 237, "name": "solitary tract", "structure_id_path": [997, 1009, 967, 917, 237], "rgb_triplet": [204, 204, 204]}, {"acronym": "drt", "id": 792, "name": "dorsal roots", "structure_id_path": [997, 1009, 967, 792], "rgb_triplet": [204, 204, 204]}, {"acronym": "cett", "id": 932, "name": "cervicothalamic tract", "structure_id_path": [997, 1009, 967, 792, 932], "rgb_triplet": [204, 204, 204]}, {"acronym": "dc", "id": 514, "name": "dorsal column", "structure_id_path": [997, 1009, 967, 792, 932, 514], "rgb_triplet": [204, 204, 204]}, {"acronym": "cuf", "id": 380, "name": "cuneate fascicle", "structure_id_path": [997, 1009, 967, 792, 932, 514, 380], "rgb_triplet": [204, 204, 204]}, {"acronym": "ml", "id": 697, "name": "medial lemniscus", "structure_id_path": [997, 1009, 967, 792, 932, 697], "rgb_triplet": [204, 204, 204]}, {"acronym": "cbf", "id": 960, "name": "cerebellum related fiber tracts", "structure_id_path": [997, 1009, 960], "rgb_triplet": [204, 204, 204]}, {"acronym": "cbc", "id": 744, "name": "cerebellar commissure", "structure_id_path": [997, 1009, 960, 744], "rgb_triplet": [204, 204, 204]}, {"acronym": "cbp", "id": 752, "name": "cerebellar peduncles", "structure_id_path": [997, 1009, 960, 752], "rgb_triplet": [204, 204, 204]}, {"acronym": "scp", "id": 326, "name": "superior cerebelar peduncles", "structure_id_path": [997, 1009, 960, 752, 326], "rgb_triplet": [204, 204, 204]}, {"acronym": "dscp", "id": 812, "name": "superior cerebellar peduncle decussation", "structure_id_path": [997, 1009, 960, 752, 326, 812], "rgb_triplet": [204, 204, 204]}, {"acronym": "uf", "id": 850, "name": "uncinate fascicle", "structure_id_path": [997, 1009, 960, 752, 326, 850], "rgb_triplet": [204, 204, 204]}, {"acronym": "sctv", "id": 866, "name": "ventral spinocerebellar tract", "structure_id_path": [997, 1009, 960, 752, 326, 866], "rgb_triplet": [204, 204, 204]}, {"acronym": "mcp", "id": 78, "name": "middle cerebellar peduncle", "structure_id_path": [997, 1009, 960, 752, 78], "rgb_triplet": [204, 204, 204]}, {"acronym": "icp", "id": 1123, "name": "inferior cerebellar peduncle", "structure_id_path": [997, 1009, 960, 752, 1123], "rgb_triplet": [204, 204, 204]}, {"acronym": "sctd", "id": 553, "name": "dorsal spinocerebellar tract", "structure_id_path": [997, 1009, 960, 752, 1123, 553], "rgb_triplet": [204, 204, 204]}, {"acronym": "arb", "id": 728, "name": "arbor vitae", "structure_id_path": [997, 1009, 960, 728], "rgb_triplet": [204, 204, 204]}, {"acronym": "scwm", "id": 484682512, "name": "supra-callosal cerebral white matter", "structure_id_path": [997, 1009, 484682512], "rgb_triplet": [204, 204, 204]}, {"acronym": "lfbs", "id": 983, "name": "lateral forebrain bundle system", "structure_id_path": [997, 1009, 983], "rgb_triplet": [204, 204, 204]}, {"acronym": "cc", "id": 776, "name": "corpus callosum", "structure_id_path": [997, 1009, 983, 776], "rgb_triplet": [204, 204, 204]}, {"acronym": "fa", "id": 956, "name": "corpus callosum, anterior forceps", "structure_id_path": [997, 1009, 983, 776, 956], "rgb_triplet": [204, 204, 204]}, {"acronym": "ec", "id": 579, "name": "external capsule", "structure_id_path": [997, 1009, 983, 776, 956, 579], "rgb_triplet": [204, 204, 204]}, {"acronym": "ee", "id": 964, "name": "corpus callosum, extreme capsule", "structure_id_path": [997, 1009, 983, 776, 964], "rgb_triplet": [204, 204, 204]}, {"acronym": "ccg", "id": 1108, "name": "genu of corpus callosum", "structure_id_path": [997, 1009, 983, 776, 1108], "rgb_triplet": [204, 204, 204]}, {"acronym": "fp", "id": 971, "name": "corpus callosum, posterior forceps", "structure_id_path": [997, 1009, 983, 776, 971], "rgb_triplet": [204, 204, 204]}, {"acronym": "ccb", "id": 484682516, "name": "corpus callosum, body", "structure_id_path": [997, 1009, 983, 776, 484682516], "rgb_triplet": [204, 204, 204]}, {"acronym": "ccs", "id": 986, "name": "corpus callosum, splenium", "structure_id_path": [997, 1009, 983, 776, 986], "rgb_triplet": [204, 204, 204]}, {"acronym": "cst", "id": 784, "name": "corticospinal tract", "structure_id_path": [997, 1009, 983, 784], "rgb_triplet": [204, 204, 204]}, {"acronym": "int", "id": 6, "name": "internal capsule", "structure_id_path": [997, 1009, 983, 784, 6], "rgb_triplet": [204, 204, 204]}, {"acronym": "cpd", "id": 924, "name": "cerebal peduncle", "structure_id_path": [997, 1009, 983, 784, 924], "rgb_triplet": [204, 204, 204]}, {"acronym": "py", "id": 190, "name": "pyramid", "structure_id_path": [997, 1009, 983, 784, 190], "rgb_triplet": [204, 204, 204]}, {"acronym": "pyd", "id": 198, "name": "pyramidal decussation", "structure_id_path": [997, 1009, 983, 784, 198], "rgb_triplet": [204, 204, 204]}, {"acronym": "lfbst", "id": 896, "name": "thalamus related", "structure_id_path": [997, 1009, 983, 896], "rgb_triplet": [204, 204, 204]}, {"acronym": "em", "id": 1092, "name": "external medullary lamina of the thalamus", "structure_id_path": [997, 1009, 983, 896, 1092], "rgb_triplet": [204, 204, 204]}, {"acronym": "or", "id": 484682520, "name": "optic radiation", "structure_id_path": [997, 1009, 983, 896, 484682520], "rgb_triplet": [204, 204, 204]}, {"acronym": "ar", "id": 484682524, "name": "auditory radiation", "structure_id_path": [997, 1009, 983, 896, 484682524], "rgb_triplet": [204, 204, 204]}, {"acronym": "eps", "id": 1000, "name": "extrapyramidal fiber systems", "structure_id_path": [997, 1009, 1000], "rgb_triplet": [204, 204, 204]}, {"acronym": "epsc", "id": 760, "name": "cerebral nuclei related", "structure_id_path": [997, 1009, 1000, 760], "rgb_triplet": [204, 204, 204]}, {"acronym": "nst", "id": 102, "name": "nigrostriatal tract", "structure_id_path": [997, 1009, 1000, 760, 102], "rgb_triplet": [204, 204, 204]}, {"acronym": "tsp", "id": 877, "name": "tectospinal pathway", "structure_id_path": [997, 1009, 1000, 877], "rgb_triplet": [204, 204, 204]}, {"acronym": "tspd", "id": 1051, "name": "direct tectospinal pathway", "structure_id_path": [997, 1009, 1000, 877, 1051], "rgb_triplet": [204, 204, 204]}, {"acronym": "dtd", "id": 1060, "name": "doral tegmental decussation", "structure_id_path": [997, 1009, 1000, 877, 1060], "rgb_triplet": [204, 204, 204]}, {"acronym": "tspc", "id": 1043, "name": "crossed tectospinal pathway", "structure_id_path": [997, 1009, 1000, 877, 1043], "rgb_triplet": [204, 204, 204]}, {"acronym": "rust", "id": 863, "name": "rubrospinal tract", "structure_id_path": [997, 1009, 1000, 863], "rgb_triplet": [204, 204, 204]}, {"acronym": "vtd", "id": 397, "name": "ventral tegmental decussation", "structure_id_path": [997, 1009, 1000, 863, 397], "rgb_triplet": [204, 204, 204]}, {"acronym": "mfbs", "id": 991, "name": "medial forebrain bundle system", "structure_id_path": [997, 1009, 991], "rgb_triplet": [204, 204, 204]}, {"acronym": "mfbc", "id": 768, "name": "cerebrum related", "structure_id_path": [997, 1009, 991, 768], "rgb_triplet": [204, 204, 204]}, {"acronym": "amc", "id": 884, "name": "amygdalar capsule", "structure_id_path": [997, 1009, 991, 768, 884], "rgb_triplet": [204, 204, 204]}, {"acronym": "act", "id": 908, "name": "anterior commissure, temporal limb", "structure_id_path": [997, 1009, 991, 768, 908], "rgb_triplet": [204, 204, 204]}, {"acronym": "cing", "id": 940, "name": "cingulum bundle", "structure_id_path": [997, 1009, 991, 768, 940], "rgb_triplet": [204, 204, 204]}, {"acronym": "fxs", "id": 1099, "name": "fornix system", "structure_id_path": [997, 1009, 991, 768, 1099], "rgb_triplet": [204, 204, 204]}, {"acronym": "alv", "id": 466, "name": "alveus", "structure_id_path": [997, 1009, 991, 768, 1099, 466], "rgb_triplet": [204, 204, 204]}, {"acronym": "df", "id": 530, "name": "dorsal fornix", "structure_id_path": [997, 1009, 991, 768, 1099, 530], "rgb_triplet": [204, 204, 204]}, {"acronym": "fi", "id": 603, "name": "fimbria", "structure_id_path": [997, 1009, 991, 768, 1099, 603], "rgb_triplet": [204, 204, 204]}, {"acronym": "fxpo", "id": 737, "name": "postcommissural fornix", "structure_id_path": [997, 1009, 991, 768, 1099, 737], "rgb_triplet": [204, 204, 204]}, {"acronym": "mct", "id": 428, "name": "medial corticohypothalamic tract", "structure_id_path": [997, 1009, 991, 768, 1099, 737, 428], "rgb_triplet": [204, 204, 204]}, {"acronym": "fx", "id": 436, "name": "columns of the fornix", "structure_id_path": [997, 1009, 991, 768, 1099, 737, 436], "rgb_triplet": [204, 204, 204]}, {"acronym": "hc", "id": 618, "name": "hippocampal commissures", "structure_id_path": [997, 1009, 991, 768, 1099, 618], "rgb_triplet": [204, 204, 204]}, {"acronym": "dhc", "id": 443, "name": "dorsal hippocampal commissure", "structure_id_path": [997, 1009, 991, 768, 1099, 618, 443], "rgb_triplet": [204, 204, 204]}, {"acronym": "vhc", "id": 449, "name": "ventral hippocampal commissure", "structure_id_path": [997, 1009, 991, 768, 1099, 618, 449], "rgb_triplet": [204, 204, 204]}, {"acronym": "st", "id": 301, "name": "stria terminalis", "structure_id_path": [997, 1009, 991, 768, 301], "rgb_triplet": [204, 204, 204]}, {"acronym": "stc", "id": 484682528, "name": "commissural branch of stria terminalis", "structure_id_path": [997, 1009, 991, 768, 301, 484682528], "rgb_triplet": [204, 204, 204]}, {"acronym": "mfsbshy", "id": 824, "name": "hypothalamus related", "structure_id_path": [997, 1009, 991, 824], "rgb_triplet": [204, 204, 204]}, {"acronym": "mfb", "id": 54, "name": "medial forebrain bundle", "structure_id_path": [997, 1009, 991, 824, 54], "rgb_triplet": [204, 204, 204]}, {"acronym": "sup", "id": 349, "name": "supraoptic commissures", "structure_id_path": [997, 1009, 991, 824, 349], "rgb_triplet": [204, 204, 204]}, {"acronym": "mfbsma", "id": 46, "name": "mammillary related", "structure_id_path": [997, 1009, 991, 824, 46], "rgb_triplet": [204, 204, 204]}, {"acronym": "pm", "id": 753, "name": "principal mammillary tract", "structure_id_path": [997, 1009, 991, 824, 46, 753], "rgb_triplet": [204, 204, 204]}, {"acronym": "mtt", "id": 690, "name": "mammillothalamic tract", "structure_id_path": [997, 1009, 991, 824, 46, 690], "rgb_triplet": [204, 204, 204]}, {"acronym": "mtg", "id": 681, "name": "mammillotegmental tract", "structure_id_path": [997, 1009, 991, 824, 46, 681], "rgb_triplet": [204, 204, 204]}, {"acronym": "mp", "id": 673, "name": "mammillary peduncle", "structure_id_path": [997, 1009, 991, 824, 46, 673], "rgb_triplet": [204, 204, 204]}, {"acronym": "mfbse", "id": 1083, "name": "epithalamus related", "structure_id_path": [997, 1009, 991, 824, 1083], "rgb_triplet": [204, 204, 204]}, {"acronym": "sm", "id": 802, "name": "stria medullaris", "structure_id_path": [997, 1009, 991, 824, 1083, 802], "rgb_triplet": [204, 204, 204]}, {"acronym": "fr", "id": 595, "name": "fasciculus retroflexus", "structure_id_path": [997, 1009, 991, 824, 1083, 595], "rgb_triplet": [204, 204, 204]}, {"acronym": "hbc", "id": 611, "name": "habenular commissure", "structure_id_path": [997, 1009, 991, 824, 1083, 611], "rgb_triplet": [204, 204, 204]}, {"acronym": "VS", "id": 73, "name": "ventricular systems", "structure_id_path": [997, 73], "rgb_triplet": [170, 170, 170]}, {"acronym": "VL", "id": 81, "name": "lateral ventricle", "structure_id_path": [997, 73, 81], "rgb_triplet": [170, 170, 170]}, {"acronym": "SEZ", "id": 98, "name": "subependymal zone", "structure_id_path": [997, 73, 81, 98], "rgb_triplet": [170, 170, 170]}, {"acronym": "chpl", "id": 108, "name": "choroid plexus", "structure_id_path": [997, 73, 81, 108], "rgb_triplet": [170, 170, 170]}, {"acronym": "V3", "id": 129, "name": "third ventricle", "structure_id_path": [997, 73, 129], "rgb_triplet": [170, 170, 170]}, {"acronym": "AQ", "id": 140, "name": "cerebral aqueduct", "structure_id_path": [997, 73, 140], "rgb_triplet": [170, 170, 170]}, {"acronym": "V4", "id": 145, "name": "fourth ventricle", "structure_id_path": [997, 73, 145], "rgb_triplet": [170, 170, 170]}, {"acronym": "V4r", "id": 153, "name": "lateral recess", "structure_id_path": [997, 73, 145, 153], "rgb_triplet": [170, 170, 170]}, {"acronym": "c", "id": 164, "name": "central canal, spinal cord/medulla", "structure_id_path": [997, 73, 164], "rgb_triplet": [170, 170, 170]}] \ No newline at end of file diff --git a/API/oursin/atlas/data/waxholm39.structures.json b/API/oursin/atlas/data/waxholm39.structures.json new file mode 100644 index 00000000..202a291b --- /dev/null +++ b/API/oursin/atlas/data/waxholm39.structures.json @@ -0,0 +1 @@ +[{"name": "Root", "acronym": "root", "id": 10000, "structure_id_path": [10000], "rgb_triplet": [255, 255, 255]}, {"name": "Brain", "acronym": "Brain", "id": 1000, "structure_id_path": [10000, 1000], "rgb_triplet": [50, 168, 82]}, {"name": "White matter", "acronym": "wmt", "id": 1001, "structure_id_path": [10000, 1000, 1001], "rgb_triplet": [255, 255, 255]}, {"name": "Olfactory white matter", "acronym": "olf", "id": 1050, "structure_id_path": [10000, 1000, 1001, 1050], "rgb_triplet": [255, 255, 255]}, {"name": "lateral olfactory tract", "acronym": "lot", "id": 180, "structure_id_path": [10000, 1000, 1001, 1050, 180], "rgb_triplet": [255, 0, 221]}, {"name": "corpus callosum and associated subcortical white matter", "acronym": "cc-ec-cing-dwm", "id": 67, "structure_id_path": [10000, 1000, 1001, 67], "rgb_triplet": [255, 110, 0]}, {"name": "Anterior commissure", "acronym": "ac", "id": 1002, "structure_id_path": [10000, 1000, 1001, 1002], "rgb_triplet": [255, 255, 255]}, {"name": "anterior commissure, anterior limb", "acronym": "aca", "id": 36, "structure_id_path": [10000, 1000, 1001, 1002, 36], "rgb_triplet": [124, 252, 0]}, {"name": "anterior commissure, posterior limb", "acronym": "acp", "id": 37, "structure_id_path": [10000, 1000, 1001, 1002, 37], "rgb_triplet": [255, 186, 0]}, {"name": "anterior commissure, intrabulbar part", "acronym": "aci", "id": 73, "structure_id_path": [10000, 1000, 1001, 1002, 73], "rgb_triplet": [255, 79, 206]}, {"name": "Hippocampal white matter", "acronym": "hiw", "id": 1003, "structure_id_path": [10000, 1000, 1001, 1003], "rgb_triplet": [255, 255, 255]}, {"name": "alveus of the hippocampus", "acronym": "alv", "id": 6, "structure_id_path": [10000, 1000, 1001, 1003, 6], "rgb_triplet": [255, 0, 255]}, {"name": "ventral hippocampal commissure", "acronym": "vhc", "id": 38, "structure_id_path": [10000, 1000, 1001, 1003, 38], "rgb_triplet": [174, 0, 232]}, {"name": "fornix", "acronym": "f", "id": 52, "structure_id_path": [10000, 1000, 1001, 1003, 52], "rgb_triplet": [21, 192, 255]}, {"name": "fimbria of the hippocampus", "acronym": "fi", "id": 59, "structure_id_path": [10000, 1000, 1001, 1003, 59], "rgb_triplet": [0, 255, 29]}, {"name": "Corticofugal pathways", "acronym": "cfp", "id": 1004, "structure_id_path": [10000, 1000, 1001, 1004], "rgb_triplet": [255, 255, 255]}, {"name": "corticofugal tract and corona radiata", "acronym": "ic-cp-lfp-py", "id": 1, "structure_id_path": [10000, 1000, 1001, 1004, 1], "rgb_triplet": [255, 52, 39]}, {"name": "pyramidal decussation", "acronym": "pyx", "id": 85, "structure_id_path": [10000, 1000, 1001, 1004, 85], "rgb_triplet": [114, 9, 212]}, {"name": "Medial lemniscus", "acronym": "ml", "id": 1005, "structure_id_path": [10000, 1000, 1001, 1005], "rgb_triplet": [255, 255, 255]}, {"name": "medial lemniscus, unspecified", "acronym": "ml-u", "id": 34, "structure_id_path": [10000, 1000, 1001, 1005, 34], "rgb_triplet": [212, 255, 0]}, {"name": "medial lemniscus decussation", "acronym": "mlx", "id": 84, "structure_id_path": [10000, 1000, 1001, 1005, 84], "rgb_triplet": [65, 150, 255]}, {"name": "Thalamic tracts", "acronym": "tht", "id": 1006, "structure_id_path": [10000, 1000, 1001, 1006], "rgb_triplet": [255, 255, 255]}, {"name": "External medullary lamina", "acronym": "eml", "id": 1051, "structure_id_path": [10000, 1000, 1001, 1006, 1051], "rgb_triplet": [255, 255, 255]}, {"name": "external medullary lamina, unspecified", "acronym": "eml-u", "id": 249, "structure_id_path": [10000, 1000, 1001, 1006, 1051, 249], "rgb_triplet": [170, 255, 0]}, {"name": "external medullary lamina, auditory radiation", "acronym": "eml-ar", "id": 157, "structure_id_path": [10000, 1000, 1001, 1006, 1051, 157], "rgb_triplet": [244, 156, 255]}, {"name": "internal medullary lamina", "acronym": "iml", "id": 291, "structure_id_path": [10000, 1000, 1001, 1006, 291], "rgb_triplet": [255, 92, 10]}, {"name": "intramedullary thalamic area", "acronym": "ima", "id": 290, "structure_id_path": [10000, 1000, 1001, 1006, 290], "rgb_triplet": [155, 148, 111]}, {"name": "superior cerebellar peduncle and prerubral field", "acronym": "scp-pr", "id": 270, "structure_id_path": [10000, 1000, 1001, 1006, 270], "rgb_triplet": [210, 182, 140]}, {"name": "pretectothalamic lamina", "acronym": "ptl", "id": 239, "structure_id_path": [10000, 1000, 1001, 1006, 239], "rgb_triplet": [219, 143, 247]}, {"name": "mammillotegmental tract", "acronym": "mtg", "id": 53, "structure_id_path": [10000, 1000, 1001, 1006, 53], "rgb_triplet": [238, 186, 0]}, {"name": "commissural stria terminalis", "acronym": "cst", "id": 54, "structure_id_path": [10000, 1000, 1001, 1006, 54], "rgb_triplet": [173, 255, 47]}, {"name": "fasciculus retroflexus", "acronym": "fr", "id": 60, "structure_id_path": [10000, 1000, 1001, 1006, 60], "rgb_triplet": [244, 67, 69]}, {"name": "stria medullaris thalami", "acronym": "sm", "id": 61, "structure_id_path": [10000, 1000, 1001, 1006, 61], "rgb_triplet": [0, 255, 0]}, {"name": "stria terminalis", "acronym": "st", "id": 62, "structure_id_path": [10000, 1000, 1001, 1006, 62], "rgb_triplet": [238, 117, 51]}, {"name": "habenular commissure", "acronym": "hbc", "id": 80, "structure_id_path": [10000, 1000, 1001, 1006, 80], "rgb_triplet": [69, 235, 202]}, {"name": "posterior commissure", "acronym": "pc", "id": 63, "structure_id_path": [10000, 1000, 1001, 63], "rgb_triplet": [255, 0, 218]}, {"name": "Facial nerve", "acronym": "7n", "id": 1007, "structure_id_path": [10000, 1000, 1001, 1007], "rgb_triplet": [255, 255, 255]}, {"name": "facial nerve, unspecified", "acronym": "7n-u", "id": 35, "structure_id_path": [10000, 1000, 1001, 1007, 35], "rgb_triplet": [255, 25, 240]}, {"name": "ascending fibers of the facial nerve", "acronym": "asc7", "id": 72, "structure_id_path": [10000, 1000, 1001, 1007, 72], "rgb_triplet": [179, 28, 53]}, {"name": "genu of the facial nerve", "acronym": "g7", "id": 57, "structure_id_path": [10000, 1000, 1001, 1007, 57], "rgb_triplet": [250, 244, 247]}, {"name": "Optic fiber system and supraoptic decussation", "acronym": "ofs", "id": 1008, "structure_id_path": [10000, 1000, 1001, 1008], "rgb_triplet": [255, 255, 255]}, {"name": "optic nerve", "acronym": "2n", "id": 41, "structure_id_path": [10000, 1000, 1001, 1008, 41], "rgb_triplet": [48, 218, 0]}, {"name": "optic tract and optic chiasm", "acronym": "opt-och", "id": 42, "structure_id_path": [10000, 1000, 1001, 1008, 42], "rgb_triplet": [38, 126, 255]}, {"name": "supraoptic decussation", "acronym": "sox", "id": 83, "structure_id_path": [10000, 1000, 1001, 1008, 83], "rgb_triplet": [250, 170, 64]}, {"name": "White matter of the tectum", "acronym": "tew", "id": 1009, "structure_id_path": [10000, 1000, 1001, 1009], "rgb_triplet": [255, 255, 255]}, {"name": "commissure of the superior colliculus", "acronym": "csc", "id": 46, "structure_id_path": [10000, 1000, 1001, 1009, 46], "rgb_triplet": [33, 230, 255]}, {"name": "brachium of the superior colliculus", "acronym": "bsc", "id": 68, "structure_id_path": [10000, 1000, 1001, 1009, 68], "rgb_triplet": [188, 32, 173]}, {"name": "inferior colliculus, commissure", "acronym": "cic", "id": 69, "structure_id_path": [10000, 1000, 1001, 1009, 69], "rgb_triplet": [255, 42, 39]}, {"name": "inferior colliculus, brachium", "acronym": "bic", "id": 146, "structure_id_path": [10000, 1000, 1001, 1009, 146], "rgb_triplet": [176, 58, 72]}, {"name": "Cerebellar and precerebellar white matter", "acronym": "cbt", "id": 1010, "structure_id_path": [10000, 1000, 1001, 1010], "rgb_triplet": [255, 255, 255]}, {"name": "inferior cerebellar peduncle", "acronym": "icp", "id": 7, "structure_id_path": [10000, 1000, 1001, 1010, 7], "rgb_triplet": [52, 255, 13]}, {"name": "middle cerebellar peduncle", "acronym": "mcp", "id": 78, "structure_id_path": [10000, 1000, 1001, 1010, 78], "rgb_triplet": [134, 204, 76]}, {"name": "transverse fibers of the pons", "acronym": "tfp", "id": 79, "structure_id_path": [10000, 1000, 1001, 1010, 79], "rgb_triplet": [128, 170, 255]}, {"name": "White matter of the brainstem", "acronym": "bsw", "id": 1011, "structure_id_path": [10000, 1000, 1001, 1011], "rgb_triplet": [255, 255, 255]}, {"name": "Lateral lemniscus", "acronym": "ll", "id": 1012, "structure_id_path": [10000, 1000, 1001, 1011, 1012], "rgb_triplet": [255, 255, 255]}, {"name": "lateral lemniscus, commissure", "acronym": "ll-c", "id": 140, "structure_id_path": [10000, 1000, 1001, 1011, 1012, 140], "rgb_triplet": [255, 29, 0]}, {"name": "lateral lemniscus, unspecified", "acronym": "ll-u", "id": 141, "structure_id_path": [10000, 1000, 1001, 1011, 1012, 141], "rgb_triplet": [255, 166, 0]}, {"name": "acoustic striae", "acronym": "as", "id": 129, "structure_id_path": [10000, 1000, 1001, 1011, 129], "rgb_triplet": [255, 217, 0]}, {"name": "trapezoid body", "acronym": "tz", "id": 130, "structure_id_path": [10000, 1000, 1001, 1011, 130], "rgb_triplet": [213, 255, 0]}, {"name": "spinal trigeminal tract", "acronym": "sp5t", "id": 76, "structure_id_path": [10000, 1000, 1001, 1011, 76], "rgb_triplet": [250, 128, 114]}, {"name": "Gray matter", "acronym": "GM", "id": 1013, "structure_id_path": [10000, 1000, 1013], "rgb_triplet": [128, 128, 128]}, {"name": "Telencephalon", "acronym": "Tel", "id": 1052, "structure_id_path": [10000, 1000, 1013, 1052], "rgb_triplet": [128, 128, 128]}, {"name": "Laminated pallium", "acronym": "LamP", "id": 1053, "structure_id_path": [10000, 1000, 1013, 1052, 1053], "rgb_triplet": [128, 128, 128]}, {"name": "Olfactory bulb", "acronym": "OB", "id": 1020, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1020], "rgb_triplet": [128, 128, 128]}, {"name": "Glomerular layer of the accessory olfactory bulb", "acronym": "GlA", "id": 64, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1020, 64], "rgb_triplet": [15, 109, 230]}, {"name": "Glomerular layer of the olfactory bulb", "acronym": "Gl", "id": 65, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1020, 65], "rgb_triplet": [255, 227, 0]}, {"name": "Olfactory bulb, unspecified", "acronym": "OB-u", "id": 66, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1020, 66], "rgb_triplet": [255, 135, 0]}, {"name": "Nucleus of the lateral olfactory tract", "acronym": "NLOT", "id": 502, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1020, 502], "rgb_triplet": [230, 184, 67]}, {"name": "Cerebral cortex", "acronym": "Cx", "id": 1015, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015], "rgb_triplet": [128, 128, 128]}, {"name": "Hippocampal region", "acronym": "HR", "id": 1055, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055], "rgb_triplet": [128, 128, 128]}, {"name": "Hippocampal formation", "acronym": "HF", "id": 1021, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1021], "rgb_triplet": [128, 128, 128]}, {"name": "Fasciola cinereum", "acronym": "FC", "id": 99, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1021, 99], "rgb_triplet": [255, 0, 0]}, {"name": "Subiculum", "acronym": "SUB", "id": 100, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1021, 100], "rgb_triplet": [255, 192, 0]}, {"name": "Cornu Ammonis", "acronym": "CA", "id": 1022, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1021, 1022], "rgb_triplet": [128, 128, 128]}, {"name": "Cornu ammonis 1", "acronym": "CA1", "id": 98, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1021, 1022, 98], "rgb_triplet": [217, 104, 13]}, {"name": "Cornu ammonis 2", "acronym": "CA2", "id": 97, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1021, 1022, 97], "rgb_triplet": [255, 255, 0]}, {"name": "Cornu ammonis 3", "acronym": "CA3", "id": 95, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1021, 1022, 95], "rgb_triplet": [165, 131, 107]}, {"name": "Dentate gyrus", "acronym": "DG", "id": 96, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1021, 96], "rgb_triplet": [91, 45, 10]}, {"name": "Parahippocampal region", "acronym": "PHR", "id": 1023, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1023], "rgb_triplet": [128, 128, 128]}, {"name": "Postrhinal cortex", "acronym": "POR", "id": 108, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1023, 108], "rgb_triplet": [40, 112, 130]}, {"name": "Presubiculum", "acronym": "PrS", "id": 109, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1023, 109], "rgb_triplet": [80, 123, 175]}, {"name": "Parasubiculum", "acronym": "PaS", "id": 110, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1023, 110], "rgb_triplet": [23, 54, 96]}, {"name": "Perirhinal cortex", "acronym": "PER", "id": 1024, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1023, 1024], "rgb_triplet": [128, 128, 128]}, {"name": "Perirhinal area 35", "acronym": "PER35", "id": 112, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1023, 1024, 112], "rgb_triplet": [205, 51, 255]}, {"name": "Perirhinal area 36", "acronym": "PER36", "id": 113, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1023, 1024, 113], "rgb_triplet": [112, 48, 160]}, {"name": "Entorhinal cortex", "acronym": "EC", "id": 1025, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1023, 1025], "rgb_triplet": [128, 128, 128]}, {"name": "Medial entorhinal cortex", "acronym": "MEC", "id": 114, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1023, 1025, 114], "rgb_triplet": [122, 187, 51]}, {"name": "Lateral entorhinal cortex", "acronym": "LEC", "id": 115, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1023, 1025, 115], "rgb_triplet": [90, 111, 47]}, {"name": "Piriform cortex", "acronym": "PIR", "id": 1056, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1056], "rgb_triplet": [128, 128, 128]}, {"name": "Piriform cortex, layer 1", "acronym": "PIR1", "id": 181, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1056, 181], "rgb_triplet": [0, 204, 255]}, {"name": "Piriform cortex, layer 2", "acronym": "PIR2", "id": 182, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1056, 182], "rgb_triplet": [0, 0, 254]}, {"name": "Piriform cortex, layer 3", "acronym": "PIR3", "id": 183, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1056, 183], "rgb_triplet": [165, 120, 221]}, {"name": "Cingulate region", "acronym": "CgR", "id": 1057, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1057], "rgb_triplet": [128, 128, 128]}, {"name": "Cingulate cortex", "acronym": "Cg", "id": 1018, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1057, 1018], "rgb_triplet": [128, 128, 128]}, {"name": "Cingulate area 1", "acronym": "Cg1", "id": 411, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1057, 1018, 411], "rgb_triplet": [0, 128, 128]}, {"name": "Cingulate area 2", "acronym": "Cg2", "id": 10, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1057, 1018, 10], "rgb_triplet": [29, 104, 235]}, {"name": "Retrosplenial cortex", "acronym": "RS", "id": 1058, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1057, 1058], "rgb_triplet": [128, 128, 128]}, {"name": "Retrosplenial dysgranular area", "acronym": "RSD", "id": 427, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1057, 1058, 427], "rgb_triplet": [200, 73, 164]}, {"name": "Retrosplenial granular area", "acronym": "RSG", "id": 430, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1057, 1058, 430], "rgb_triplet": [25, 100, 200]}, {"name": "Insular region", "acronym": "INS", "id": 1059, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1059], "rgb_triplet": [128, 128, 128]}, {"name": "Agranular insular cortex", "acronym": "AI", "id": 1060, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1059, 1060], "rgb_triplet": [128, 128, 128]}, {"name": "Agranular insular cortex, ventral area", "acronym": "AI-v", "id": 409, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1059, 1060, 409], "rgb_triplet": [255, 201, 14]}, {"name": "Agranular insular cortex dorsal area ", "acronym": "AI-d", "id": 410, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1059, 1060, 410], "rgb_triplet": [255, 127, 39]}, {"name": "Agranular insular cortex, posterior area ", "acronym": "AI-p", "id": 424, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1059, 1060, 424], "rgb_triplet": [181, 230, 29]}, {"name": "Dysgranular insular cortex", "acronym": "DI", "id": 414, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1059, 414], "rgb_triplet": [255, 242, 0]}, {"name": "Granular insular cortex", "acronym": "GI", "id": 416, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1059, 416], "rgb_triplet": [239, 228, 176]}, {"name": "Frontal region", "acronym": "Front", "id": 1061, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061], "rgb_triplet": [128, 128, 128]}, {"name": "Frontal association cortex", "acronym": "FrA", "id": 77, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 77], "rgb_triplet": [206, 211, 7]}, {"name": "Orbitofrontal cortex", "acronym": "Orb", "id": 1062, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1062], "rgb_triplet": [128, 128, 128]}, {"name": "Medial orbital area", "acronym": "MO", "id": 403, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1062, 403], "rgb_triplet": [63, 72, 204]}, {"name": "Ventral orbital area", "acronym": "VO", "id": 402, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1062, 402], "rgb_triplet": [200, 191, 231]}, {"name": "Ventrolateral orbital area", "acronym": "VLO", "id": 400, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1062, 400], "rgb_triplet": [255, 0, 1]}, {"name": "Lateral orbital area", "acronym": "LO", "id": 401, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1062, 401], "rgb_triplet": [255, 174, 201]}, {"name": "Dorsolateral orbital area", "acronym": "DLO", "id": 404, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1062, 404], "rgb_triplet": [185, 122, 87]}, {"name": "Mediofrontal cortex", "acronym": "MFC", "id": 1063, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1063], "rgb_triplet": [128, 128, 128]}, {"name": "Prelimbic area", "acronym": "PrL", "id": 405, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1063, 405], "rgb_triplet": [163, 73, 164]}, {"name": "Infralimbic area", "acronym": "IL", "id": 413, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1063, 413], "rgb_triplet": [34, 177, 76]}, {"name": "Motor cortex", "acronym": "M", "id": 1064, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1064], "rgb_triplet": [128, 128, 128]}, {"name": "Primary motor area", "acronym": "M1", "id": 408, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1064, 408], "rgb_triplet": [153, 217, 234]}, {"name": "Secondary motor area", "acronym": "M2", "id": 406, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1064, 406], "rgb_triplet": [0, 162, 232]}, {"name": "Frontal association area 3", "acronym": "Fr3", "id": 407, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1064, 407], "rgb_triplet": [136, 0, 21]}, {"name": "Parietal region", "acronym": "Par", "id": 1065, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065], "rgb_triplet": [128, 128, 128]}, {"name": "Somatosensory cortex", "acronym": "SS", "id": 1066, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1066], "rgb_triplet": [128, 128, 128]}, {"name": "Primary somatosensory area", "acronym": "S1", "id": 1067, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1066, 1067], "rgb_triplet": [128, 128, 128]}, {"name": "Primary somatosensory area, face representation", "acronym": "S1-f", "id": 420, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1066, 1067, 420], "rgb_triplet": [255, 128, 192]}, {"name": "Primary somatosensory area, barrel field", "acronym": "S1-bf", "id": 425, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1066, 1067, 425], "rgb_triplet": [120, 177, 76]}, {"name": "Primary somatosensory area, dysgranular zone", "acronym": "S1-dz", "id": 418, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1066, 1067, 418], "rgb_triplet": [237, 28, 36]}, {"name": "Primary somatosensory area, forelimb representation", "acronym": "S1-fl", "id": 417, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1066, 1067, 417], "rgb_triplet": [185, 14, 131]}, {"name": "Primary somatosensory area, hindlimb representation", "acronym": "S1-hl", "id": 423, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1066, 1067, 423], "rgb_triplet": [136, 100, 21]}, {"name": "Primary somatosensory area, trunk representation", "acronym": "S1-tr", "id": 429, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1066, 1067, 429], "rgb_triplet": [225, 150, 201]}, {"name": "Secondary somatosensory area", "acronym": "S2", "id": 422, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1066, 422], "rgb_triplet": [200, 100, 250]}, {"name": "Posterior parietal cortex", "acronym": "PPC", "id": 1068, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1068], "rgb_triplet": [128, 128, 128]}, {"name": "Parietal association cortex, medial area", "acronym": "mPPC", "id": 433, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1068, 433], "rgb_triplet": [108, 0, 108]}, {"name": "Parietal association cortex, lateral area", "acronym": "lPPC", "id": 432, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1068, 432], "rgb_triplet": [255, 240, 29]}, {"name": "Parietal association cortex, posterior area ", "acronym": "PtP", "id": 436, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1068, 436], "rgb_triplet": [128, 0, 64]}, {"name": "Occipital region", "acronym": "Oc", "id": 1069, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1069], "rgb_triplet": [128, 128, 128]}, {"name": "Visual cortex", "acronym": "Vis", "id": 1070, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1069, 1070], "rgb_triplet": [128, 128, 128]}, {"name": "Primary visual area", "acronym": "V1", "id": 442, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1069, 1070, 442], "rgb_triplet": [84, 52, 35]}, {"name": "Secondary visual area", "acronym": "V2", "id": 1071, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1069, 1070, 1071], "rgb_triplet": [128, 128, 128]}, {"name": "Secondary visual area, medial part", "acronym": "V2M", "id": 448, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1069, 1070, 1071, 448], "rgb_triplet": [128, 0, 100]}, {"name": "Secondary visual area, lateral part", "acronym": "V2L", "id": 443, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1069, 1070, 1071, 443], "rgb_triplet": [255, 100, 100]}, {"name": "Temporal region", "acronym": "Te", "id": 1072, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1072], "rgb_triplet": [128, 128, 128]}, {"name": "Temporal association cortex", "acronym": "TeA", "id": 444, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1072, 444], "rgb_triplet": [0, 128, 0]}, {"name": "Auditory cortex", "acronym": "Au", "id": 1019, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1072, 1019], "rgb_triplet": [128, 128, 128]}, {"name": "Primary auditory area", "acronym": "Au1", "id": 151, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1072, 1019, 151], "rgb_triplet": [255, 215, 0]}, {"name": "Secondary auditory area", "acronym": "Au2", "id": 1073, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1072, 1019, 1073], "rgb_triplet": [128, 128, 128]}, {"name": "Secondary auditory area, dorsal part", "acronym": "Au2-d", "id": 152, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1072, 1019, 1073, 152], "rgb_triplet": [240, 255, 255]}, {"name": "Secondary auditory area, ventral part", "acronym": "Au2-v", "id": 153, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1072, 1019, 1073, 153], "rgb_triplet": [216, 191, 216]}, {"name": "Non-laminated pallium", "acronym": "N-LamP", "id": 1074, "structure_id_path": [10000, 1000, 1013, 1052, 1074], "rgb_triplet": [128, 128, 128]}, {"name": "Claustrum", "acronym": "CLA", "id": 412, "structure_id_path": [10000, 1000, 1013, 1052, 1074, 412], "rgb_triplet": [153, 217, 200]}, {"name": "Endopiriform nucleus", "acronym": "Endo", "id": 500, "structure_id_path": [10000, 1000, 1013, 1052, 1074, 500], "rgb_triplet": [1, 10, 100]}, {"name": "Amygdaloid area, unspecified", "acronym": "Am-u", "id": 501, "structure_id_path": [10000, 1000, 1013, 1052, 1074, 501], "rgb_triplet": [2, 20, 200]}, {"name": " Subpallium", "acronym": "SubPAL", "id": 1075, "structure_id_path": [10000, 1000, 1013, 1052, 1075], "rgb_triplet": [128, 128, 128]}, {"name": "Striatum", "acronym": "Str", "id": 1076, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1076], "rgb_triplet": [128, 128, 128]}, {"name": "Caudate putamen", "acronym": "CPu", "id": 197, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1076, 197], "rgb_triplet": [129, 79, 155]}, {"name": "Nucleus accumbens", "acronym": "NAc", "id": 1077, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1076, 1077], "rgb_triplet": [128, 128, 128]}, {"name": "Nucleus accumbens, core", "acronym": "NAc-c", "id": 184, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1076, 1077, 184], "rgb_triplet": [230, 216, 250]}, {"name": "Nucleus accumbens, shell", "acronym": "NAc-sh", "id": 192, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1076, 1077, 192], "rgb_triplet": [88, 47, 108]}, {"name": "Ventral striatal region, unspecified", "acronym": "VSR-u", "id": 199, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1076, 199], "rgb_triplet": [220, 20, 60]}, {"name": "Pallidum", "acronym": "PAL", "id": 1028, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1028], "rgb_triplet": [128, 128, 128]}, {"name": "Globus pallidus external", "acronym": "GPe", "id": 1078, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1028, 1078], "rgb_triplet": [128, 128, 128]}, {"name": "Globus pallidus external, medial part", "acronym": "GPe-m", "id": 195, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1028, 1078, 195], "rgb_triplet": [255, 85, 255]}, {"name": "Globus pallidus external, lateral part", "acronym": "GPe-l", "id": 198, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1028, 1078, 198], "rgb_triplet": [200, 25, 200]}, {"name": "Entopeduncular nucleus", "acronym": "EP", "id": 32, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1028, 32], "rgb_triplet": [26, 231, 255]}, {"name": "Ventral pallidum", "acronym": "VP", "id": 193, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1028, 193], "rgb_triplet": [0, 162, 255]}, {"name": "Basal forebrain region ", "acronym": "BRF", "id": 1079, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1079], "rgb_triplet": [128, 128, 128]}, {"name": "Basal forebrain region, unspecified", "acronym": "BFR-u", "id": 82, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1079, 82], "rgb_triplet": [225, 240, 13]}, {"name": "Bed nucleus of the stria terminalis", "acronym": "BNST", "id": 93, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1079, 93], "rgb_triplet": [0, 8, 182]}, {"name": "Septal region", "acronym": "Sep", "id": 40, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1079, 40], "rgb_triplet": [255, 8, 0]}, {"name": "Subthalamic nucleus", "acronym": "STh", "id": 3, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1079, 3], "rgb_triplet": [0, 0, 255]}, {"name": "Diencephalon", "acronym": "Dien", "id": 1080, "structure_id_path": [10000, 1000, 1013, 1080], "rgb_triplet": [128, 128, 128]}, {"name": "Prethalamus", "acronym": "Thal-Pre", "id": 1081, "structure_id_path": [10000, 1000, 1013, 1080, 1081], "rgb_triplet": [128, 128, 128]}, {"name": "Reticular (pre)thalamic nucleus", "acronym": "RT", "id": 1033, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 1033], "rgb_triplet": [128, 128, 128]}, {"name": "Reticular (pre)thalamic nucleus, unspecified", "acronym": "RT-u", "id": 200, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 1033, 200], "rgb_triplet": [0, 217, 255]}, {"name": "Reticular (pre)thalamic nucleus, auditory segment", "acronym": "RT-a", "id": 164, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 1033, 164], "rgb_triplet": [110, 0, 255]}, {"name": "Zona incerta", "acronym": "ZI", "id": 1082, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 1082], "rgb_triplet": [128, 128, 128]}, {"name": "Zona incerta, dorsal part", "acronym": "ZI-d", "id": 235, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 1082, 235], "rgb_triplet": [216, 191, 217]}, {"name": "Zona incerta, ventral part", "acronym": "ZI-v", "id": 236, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 1082, 236], "rgb_triplet": [75, 200, 138]}, {"name": "Zona incerta, rostral part", "acronym": "ZI-r", "id": 257, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 1082, 257], "rgb_triplet": [30, 144, 255]}, {"name": "Zona incerta, caudal part", "acronym": "ZI-c", "id": 287, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 1082, 287], "rgb_triplet": [255, 228, 196]}, {"name": "Zona incerta, A13 dopamine cells", "acronym": "ZI-A13", "id": 238, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 1082, 238], "rgb_triplet": [194, 71, 79]}, {"name": "Zona incerta, A11 dopamine cells", "acronym": "ZI-A11", "id": 284, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 1082, 284], "rgb_triplet": [255, 182, 193]}, {"name": "Fields of Forel", "acronym": "FoF", "id": 280, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 1082, 280], "rgb_triplet": [255, 250, 250]}, {"name": "Pregeniculate nucleus", "acronym": "PrG", "id": 204, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 204], "rgb_triplet": [255, 25, 0]}, {"name": "Subgeniculate nucleus", "acronym": "SubG", "id": 281, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 281], "rgb_triplet": [147, 112, 219]}, {"name": "Intergeniculate leaflet", "acronym": "IGL", "id": 272, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 272], "rgb_triplet": [0, 0, 128]}, {"name": "Epithalamus", "acronym": "Thal-EPI", "id": 1083, "structure_id_path": [10000, 1000, 1013, 1080, 1083], "rgb_triplet": [128, 128, 128]}, {"name": "Lateral habenular nucleus", "acronym": "LHb", "id": 206, "structure_id_path": [10000, 1000, 1013, 1080, 1083, 206], "rgb_triplet": [217, 108, 0]}, {"name": "Medial habenular nucleus", "acronym": "MHb", "id": 207, "structure_id_path": [10000, 1000, 1013, 1080, 1083, 207], "rgb_triplet": [205, 0, 24]}, {"name": "Nucleus of the stria medullaris", "acronym": "SMn", "id": 81, "structure_id_path": [10000, 1000, 1013, 1080, 1083, 81], "rgb_triplet": [222, 7, 237]}, {"name": "Pineal gland", "acronym": "PG", "id": 43, "structure_id_path": [10000, 1000, 1013, 1080, 1083, 43], "rgb_triplet": [218, 170, 62]}, {"name": "Dorsal thalamus", "acronym": "Thal-D", "id": 1084, "structure_id_path": [10000, 1000, 1013, 1080, 1084], "rgb_triplet": [128, 128, 128]}, {"name": "Anterior nuclei of the dorsal thalamus", "acronym": "ANT", "id": 1085, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085], "rgb_triplet": [128, 128, 128]}, {"name": "Anterodorsal thalamic nucleus", "acronym": "AD", "id": 213, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085, 213], "rgb_triplet": [131, 10, 121]}, {"name": "Anteroventral thalamic nucleus", "acronym": "AV", "id": 1086, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085, 1086], "rgb_triplet": [128, 128, 128]}, {"name": "Anteroventral thalamic nucleus, dorsomedial part", "acronym": "AV-dm", "id": 214, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085, 1086, 214], "rgb_triplet": [239, 121, 218]}, {"name": "Anteroventral thalamic nucleus, ventrolateral part", "acronym": "AV-vl", "id": 215, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085, 1086, 215], "rgb_triplet": [101, 35, 142]}, {"name": "Anteromedial thalamic nucleus", "acronym": "AM", "id": 254, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085, 254], "rgb_triplet": [0, 85, 255]}, {"name": "Interanteromedial thalamic nucleus", "acronym": "IAM", "id": 255, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085, 255], "rgb_triplet": [248, 117, 222]}, {"name": "Paraventricular thalamic nuclei (anterior and posterior)", "acronym": "PV", "id": 242, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085, 242], "rgb_triplet": [156, 51, 51]}, {"name": "Intermediodorsal thalamic nucleus", "acronym": "IMD", "id": 260, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085, 260], "rgb_triplet": [160, 82, 45]}, {"name": "Parataenial thalamic nucleus", "acronym": "PT", "id": 211, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085, 211], "rgb_triplet": [205, 0, 6]}, {"name": "Subparafascicular nucleus", "acronym": "SPF", "id": 278, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085, 278], "rgb_triplet": [233, 150, 122]}, {"name": "Posterior intralaminar nucleus", "acronym": "PIL", "id": 208, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085, 208], "rgb_triplet": [228, 112, 214]}, {"name": "Ventral midline group of the dorsal thalamus", "acronym": "V-MID", "id": 1088, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1088], "rgb_triplet": [128, 128, 128]}, {"name": "Rhomboid thalamic nucleus", "acronym": "Rh", "id": 216, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1088, 216], "rgb_triplet": [0, 255, 17]}, {"name": "Reuniens thalamic nucleus", "acronym": "Re", "id": 219, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1088, 219], "rgb_triplet": [255, 170, 0]}, {"name": "Retroreuniens thalamic nucleus", "acronym": "RRe", "id": 268, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1088, 268], "rgb_triplet": [0, 0, 205]}, {"name": "Xiphoid thalamic nucleus", "acronym": "Xi", "id": 218, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1088, 218], "rgb_triplet": [35, 255, 236]}, {"name": "Mediodorsal nucleus of the dorsal thalamus", "acronym": "MD", "id": 1089, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1089], "rgb_triplet": [128, 128, 128]}, {"name": "Mediodorsal thalamic nucleus, lateral part", "acronym": "MD-l", "id": 232, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1089, 232], "rgb_triplet": [255, 85, 127]}, {"name": "Mediodorsal thalamic nucleus, central part", "acronym": "MD-c", "id": 233, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1089, 233], "rgb_triplet": [85, 170, 0]}, {"name": "Mediodorsal thalamic nucleus, medial part", "acronym": "MD-m", "id": 240, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1089, 240], "rgb_triplet": [170, 255, 255]}, {"name": "Ventral nuclei of the dorsal thalamus", "acronym": "VENT", "id": 1090, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1090], "rgb_triplet": [128, 128, 128]}, {"name": "Ventral anterior thalamic nucleus", "acronym": "VA", "id": 293, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1090, 293], "rgb_triplet": [255, 136, 0]}, {"name": "Ventromedial thalamic nucleus", "acronym": "VM", "id": 221, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1090, 221], "rgb_triplet": [0, 185, 126]}, {"name": "Ventrolateral thalamic nucleus", "acronym": "VL", "id": 231, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1090, 231], "rgb_triplet": [170, 170, 255]}, {"name": "Angular thalamic nucleus", "acronym": "Ang", "id": 223, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1090, 223], "rgb_triplet": [139, 93, 139]}, {"name": "Ventral posterior thalamic nucleus", "acronym": "VPN", "id": 1091, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1090, 1091], "rgb_triplet": [128, 128, 128]}, {"name": "Ventral posteromedial thalamic nucleus", "acronym": "VPM", "id": 227, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1090, 1091, 227], "rgb_triplet": [255, 0, 254]}, {"name": "Ventral posterolateral thalamic nucleus", "acronym": "VPL", "id": 294, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1090, 1091, 294], "rgb_triplet": [171, 86, 62]}, {"name": "Ventral posterior nucleus of the thalamus, parvicellular part", "acronym": "VP-pc", "id": 266, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1090, 1091, 266], "rgb_triplet": [0, 255, 8]}, {"name": "Submedius thalamic nucleus", "acronym": "SMT", "id": 222, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1090, 222], "rgb_triplet": [130, 0, 217]}, {"name": "Intralaminar nuclei of the dorsal thalamus", "acronym": "ILM", "id": 1092, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1092], "rgb_triplet": [128, 128, 128]}, {"name": "Paracentral thalamic nucleus", "acronym": "PCN", "id": 246, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1092, 246], "rgb_triplet": [240, 248, 255]}, {"name": "Central medial thalamic nucleus", "acronym": "CM", "id": 247, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1092, 247], "rgb_triplet": [224, 182, 64]}, {"name": "Central lateral thalamic nucleus", "acronym": "CL", "id": 248, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1092, 248], "rgb_triplet": [153, 50, 204]}, {"name": "Parafascicular thalamic nucleus", "acronym": "PF", "id": 267, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1092, 267], "rgb_triplet": [255, 239, 213]}, {"name": "Ethmoid-Limitans nucleus", "acronym": "Eth", "id": 282, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1092, 282], "rgb_triplet": [131, 50, 128]}, {"name": "Posterior complex of the dorsal thalamus", "acronym": "PoC", "id": 1093, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1093], "rgb_triplet": [128, 128, 128]}, {"name": "Posterior thalamic nucleus", "acronym": "Po", "id": 230, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1093, 230], "rgb_triplet": [255, 255, 2]}, {"name": "Posterior thalamic nuclear group, triangular part", "acronym": "Po-t", "id": 210, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1093, 210], "rgb_triplet": [255, 255, 200]}, {"name": "Lateral posterior (pulvinar) complex of the dorsal thalamus", "acronym": "LP", "id": 1094, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1094], "rgb_triplet": [128, 128, 128]}, {"name": "Lateral posterior thalamic nucleus, mediorostral part", "acronym": "LP-mr", "id": 285, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1094, 285], "rgb_triplet": [60, 179, 113]}, {"name": "Lateral posterior thalamic nucleus, mediocaudal part", "acronym": "LP-mc", "id": 286, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1094, 286], "rgb_triplet": [255, 235, 205]}, {"name": "Lateral posterior thalamic nucleus, lateral part", "acronym": "LP-l", "id": 283, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1094, 283], "rgb_triplet": [199, 87, 61]}, {"name": "Laterodorsal thalamic nuclei of the dorsal thalamus", "acronym": "LD", "id": 1095, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1095], "rgb_triplet": [128, 128, 128]}, {"name": "Laterodorsal thalamic nucleus, dorsomedial part", "acronym": "LD-dm", "id": 228, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1095, 228], "rgb_triplet": [255, 123, 0]}, {"name": "Laterodorsal thalamic nucleus, ventrolateral part", "acronym": "LD-vl", "id": 229, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1095, 229], "rgb_triplet": [43, 153, 31]}, {"name": "Dorsal lateral geniculate nucleus", "acronym": "DLG", "id": 205, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1095, 205], "rgb_triplet": [255, 226, 0]}, {"name": "Medial geniculate complex of the dorsal thalamus", "acronym": "MG", "id": 1032, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1032], "rgb_triplet": [128, 128, 128]}, {"name": "Medial geniculate body, ventral division", "acronym": "MG-v", "id": 298, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1032, 298], "rgb_triplet": [131, 58, 31]}, {"name": "Medial geniculate body, dorsal division", "acronym": "MG-d", "id": 295, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1032, 295], "rgb_triplet": [239, 163, 0]}, {"name": "Medial geniculate body, marginal zone", "acronym": "MG-mz", "id": 150, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1032, 150], "rgb_triplet": [255, 47, 242]}, {"name": "Medial geniculate body, medial division", "acronym": "MG-m", "id": 297, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1032, 297], "rgb_triplet": [10, 244, 217]}, {"name": "Medial geniculate body, suprageniculate nucleus", "acronym": "MG-sg", "id": 299, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1032, 299], "rgb_triplet": [10, 244, 150]}, {"name": "Hypothalamus", "acronym": "HY", "id": 1034, "structure_id_path": [10000, 1000, 1013, 1080, 1034], "rgb_triplet": [128, 128, 128]}, {"name": "Hypothalamic region, unspecified", "acronym": "HTh-u", "id": 48, "structure_id_path": [10000, 1000, 1013, 1080, 1034, 48], "rgb_triplet": [226, 120, 161]}, {"name": "Pretectum", "acronym": "PreT", "id": 1096, "structure_id_path": [10000, 1000, 1013, 1080, 1096], "rgb_triplet": [128, 128, 128]}, {"name": "Pretectal region", "acronym": "PRT", "id": 94, "structure_id_path": [10000, 1000, 1013, 1080, 1096, 94], "rgb_triplet": [255, 87, 30]}, {"name": "Nucleus sagulum", "acronym": "Sag", "id": 163, "structure_id_path": [10000, 1000, 1013, 1080, 1096, 163], "rgb_triplet": [99, 205, 0]}, {"name": "Mesencephalon", "acronym": "Mes", "id": 1097, "structure_id_path": [10000, 1000, 1013, 1097], "rgb_triplet": [128, 128, 128]}, {"name": "Midbrain", "acronym": "MB", "id": 1035, "structure_id_path": [10000, 1000, 1013, 1097, 1035], "rgb_triplet": [128, 128, 128]}, {"name": "Tectum", "acronym": "Tc", "id": 1036, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1036], "rgb_triplet": [128, 128, 128]}, {"name": "Inferior colliculus", "acronym": "IC", "id": 1037, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1036, 1037], "rgb_triplet": [128, 128, 128]}, {"name": "Inferior colliculus, dorsal cortex", "acronym": "DCIC", "id": 142, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1036, 1037, 142], "rgb_triplet": [206, 255, 142]}, {"name": "Inferior colliculus, central nucleus", "acronym": "CNIC", "id": 143, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1036, 1037, 143], "rgb_triplet": [0, 238, 254]}, {"name": "Inferior colliculus, external cortex", "acronym": "ECIC", "id": 145, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1036, 1037, 145], "rgb_triplet": [48, 136, 203]}, {"name": "Superior colliculus", "acronym": "Su", "id": 1038, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1036, 1038], "rgb_triplet": [128, 128, 128]}, {"name": "Superficial gray layer of the superior colliculus", "acronym": "SuG", "id": 50, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1036, 1038, 50], "rgb_triplet": [86, 0, 221]}, {"name": "Deeper layers of the superior colliculus", "acronym": "SuD", "id": 55, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1036, 1038, 55], "rgb_triplet": [225, 151, 15]}, {"name": "Tegmentum", "acronym": "Tg", "id": 1039, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1039], "rgb_triplet": [128, 128, 128]}, {"name": "Substantia nigra", "acronym": "SN", "id": 1098, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1039, 1098], "rgb_triplet": [128, 128, 128]}, {"name": "Substantia nigra, reticular part", "acronym": "SN-r", "id": 187, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1039, 1098, 187], "rgb_triplet": [99, 197, 18]}, {"name": "Substantia nigra, compact part", "acronym": "SN-c", "id": 188, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1039, 1098, 188], "rgb_triplet": [255, 255, 127]}, {"name": "Substantia nigra, lateral part", "acronym": "SN-l", "id": 189, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1039, 1098, 189], "rgb_triplet": [0, 159, 159]}, {"name": "Ventral tegmental area", "acronym": "VTA", "id": 196, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1039, 196], "rgb_triplet": [127, 255, 212]}, {"name": "Peripeduncular nucleus", "acronym": "PP", "id": 201, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1039, 201], "rgb_triplet": [183, 199, 136]}, {"name": "Interpeduncular nucleus", "acronym": "IP", "id": 71, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1039, 71], "rgb_triplet": [63, 192, 255]}, {"name": "Periaqueductal gray", "acronym": "PAG", "id": 51, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1039, 51], "rgb_triplet": [7, 255, 89]}, {"name": "Brainstem, unspecified", "acronym": "BS-u", "id": 47, "structure_id_path": [10000, 1000, 1013, 1097, 47], "rgb_triplet": [153, 83, 255]}, {"name": "Rhombencephalon", "acronym": "Rho", "id": 1099, "structure_id_path": [10000, 1000, 1013, 1099], "rgb_triplet": [128, 128, 128]}, {"name": "Metencephalon", "acronym": "Met", "id": 1100, "structure_id_path": [10000, 1000, 1013, 1099, 1100], "rgb_triplet": [128, 128, 128]}, {"name": "Pontine nuclei", "acronym": "Pn", "id": 58, "structure_id_path": [10000, 1000, 1013, 1099, 1100, 58], "rgb_triplet": [0, 215, 11]}, {"name": "Cerebellum", "acronym": "Cb", "id": 1047, "structure_id_path": [10000, 1000, 1013, 1099, 1100, 1047], "rgb_triplet": [128, 128, 128]}, {"name": "Molecular cell layer of the cerebellum", "acronym": "Cb-m", "id": 4, "structure_id_path": [10000, 1000, 1013, 1099, 1100, 1047, 4], "rgb_triplet": [255, 255, 1]}, {"name": "Cerebellum, unspecified", "acronym": "Cb-u", "id": 5, "structure_id_path": [10000, 1000, 1013, 1099, 1100, 1047, 5], "rgb_triplet": [0, 255, 255]}, {"name": "Myelencephalon", "acronym": "Myel", "id": 1101, "structure_id_path": [10000, 1000, 1013, 1099, 1101], "rgb_triplet": [128, 128, 128]}, {"name": "Cochlear nucleus, ventral part", "acronym": "VCN", "id": 1043, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1043], "rgb_triplet": [128, 128, 128]}, {"name": "Ventral cochlear nucleus, anterior part", "acronym": "AVCN", "id": 158, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1043, 158], "rgb_triplet": [34, 152, 255]}, {"name": "Ventral cochlear nucleus, posterior part", "acronym": "PVCN", "id": 159, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1043, 159], "rgb_triplet": [0, 230, 207]}, {"name": "Ventral cochlear nucleus, cap area", "acronym": "Cap", "id": 160, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1043, 160], "rgb_triplet": [0, 255, 106]}, {"name": "Ventral cochlear nucleus, granule cell layer", "acronym": "GCL", "id": 123, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1043, 123], "rgb_triplet": [0, 12, 255]}, {"name": "Cochlear nucleus, dorsal part", "acronym": "DCN", "id": 1044, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1044], "rgb_triplet": [128, 128, 128]}, {"name": "Dorsal cochlear nucleus, molecular layer", "acronym": "DCNM", "id": 126, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1044, 126], "rgb_triplet": [92, 156, 211]}, {"name": "Dorsal cochlear nucleus, fusiform and granule layer", "acronym": "DCNFG", "id": 127, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1044, 127], "rgb_triplet": [0, 80, 156]}, {"name": "Dorsal cochlear nucleus, deep core", "acronym": "DCND", "id": 128, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1044, 128], "rgb_triplet": [197, 238, 255]}, {"name": "Spinal trigeminal nucleus", "acronym": "Sp5n", "id": 75, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 75], "rgb_triplet": [91, 241, 255]}, {"name": "Periventricular gray", "acronym": "PVG", "id": 56, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 56], "rgb_triplet": [235, 87, 255]}, {"name": "Superior olivary complex", "acronym": "SO", "id": 1045, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1045], "rgb_triplet": [128, 128, 128]}, {"name": "Nucleus of the trapezoid body", "acronym": "NTB", "id": 131, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1045, 131], "rgb_triplet": [0, 255, 81]}, {"name": "Superior paraolivary nucleus", "acronym": "SPN", "id": 132, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1045, 132], "rgb_triplet": [0, 238, 255]}, {"name": "Medial superior olive", "acronym": "MSO", "id": 133, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1045, 133], "rgb_triplet": [219, 239, 61]}, {"name": "Lateral superior olive", "acronym": "LSO", "id": 134, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1045, 134], "rgb_triplet": [35, 76, 190]}, {"name": "Superior periolivary region", "acronym": "SPR", "id": 135, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1045, 135], "rgb_triplet": [1, 153, 21]}, {"name": "Ventral periolivary nuclei", "acronym": "VPO", "id": 136, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1045, 136], "rgb_triplet": [0, 174, 255]}, {"name": "Nuclei of the lateral lemniscus", "acronym": "NLL", "id": 1046, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1046], "rgb_triplet": [128, 128, 128]}, {"name": "Lateral lemniscus, ventral nucleus", "acronym": "VLL", "id": 137, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1046, 137], "rgb_triplet": [255, 0, 115]}, {"name": "Lateral lemniscus, intermediate nucleus", "acronym": "ILL", "id": 138, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1046, 138], "rgb_triplet": [171, 16, 91]}, {"name": "Lateral lemniscus, dorsal nucleus", "acronym": "DLL", "id": 139, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1046, 139], "rgb_triplet": [108, 18, 91]}, {"name": "Inferior olive", "acronym": "IO", "id": 74, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 74], "rgb_triplet": [0, 246, 14]}, {"name": "Ventricular system", "acronym": "V", "id": 1048, "structure_id_path": [10000, 1000, 1048], "rgb_triplet": [114, 126, 186]}, {"name": "ventricular system, unspecified", "acronym": "V-u", "id": 33, "structure_id_path": [10000, 1000, 1048, 33], "rgb_triplet": [2, 44, 255]}, {"name": "4th ventricle", "acronym": "4V", "id": 125, "structure_id_path": [10000, 1000, 1048, 125], "rgb_triplet": [52, 29, 144]}, {"name": "central canal", "acronym": "CC", "id": 70, "structure_id_path": [10000, 1000, 1048, 70], "rgb_triplet": [39, 244, 253]}, {"name": "spinal cord", "acronym": "SpC", "id": 45, "structure_id_path": [10000, 45], "rgb_triplet": [134, 255, 90]}, {"name": "Inner ear", "acronym": "IE", "id": 1049, "structure_id_path": [10000, 1049], "rgb_triplet": [16, 79, 24]}, {"name": "vestibular apparatus", "acronym": "VeA", "id": 119, "structure_id_path": [10000, 1049, 119], "rgb_triplet": [0, 144, 55]}, {"name": "cochlea", "acronym": "Co", "id": 120, "structure_id_path": [10000, 1049, 120], "rgb_triplet": [0, 255, 28]}, {"name": "cochlear nerve", "acronym": "8cn", "id": 121, "structure_id_path": [10000, 1049, 121], "rgb_triplet": [253, 148, 0]}, {"name": "vestibular nerve", "acronym": "8vn", "id": 122, "structure_id_path": [10000, 1049, 122], "rgb_triplet": [253, 50, 0]}, {"name": "spiral ganglion", "acronym": "SpG", "id": 162, "structure_id_path": [10000, 1049, 162], "rgb_triplet": [185, 255, 233]}] \ No newline at end of file diff --git a/API/oursin/atlas/data/waxholm78.structures.json b/API/oursin/atlas/data/waxholm78.structures.json new file mode 100644 index 00000000..202a291b --- /dev/null +++ b/API/oursin/atlas/data/waxholm78.structures.json @@ -0,0 +1 @@ +[{"name": "Root", "acronym": "root", "id": 10000, "structure_id_path": [10000], "rgb_triplet": [255, 255, 255]}, {"name": "Brain", "acronym": "Brain", "id": 1000, "structure_id_path": [10000, 1000], "rgb_triplet": [50, 168, 82]}, {"name": "White matter", "acronym": "wmt", "id": 1001, "structure_id_path": [10000, 1000, 1001], "rgb_triplet": [255, 255, 255]}, {"name": "Olfactory white matter", "acronym": "olf", "id": 1050, "structure_id_path": [10000, 1000, 1001, 1050], "rgb_triplet": [255, 255, 255]}, {"name": "lateral olfactory tract", "acronym": "lot", "id": 180, "structure_id_path": [10000, 1000, 1001, 1050, 180], "rgb_triplet": [255, 0, 221]}, {"name": "corpus callosum and associated subcortical white matter", "acronym": "cc-ec-cing-dwm", "id": 67, "structure_id_path": [10000, 1000, 1001, 67], "rgb_triplet": [255, 110, 0]}, {"name": "Anterior commissure", "acronym": "ac", "id": 1002, "structure_id_path": [10000, 1000, 1001, 1002], "rgb_triplet": [255, 255, 255]}, {"name": "anterior commissure, anterior limb", "acronym": "aca", "id": 36, "structure_id_path": [10000, 1000, 1001, 1002, 36], "rgb_triplet": [124, 252, 0]}, {"name": "anterior commissure, posterior limb", "acronym": "acp", "id": 37, "structure_id_path": [10000, 1000, 1001, 1002, 37], "rgb_triplet": [255, 186, 0]}, {"name": "anterior commissure, intrabulbar part", "acronym": "aci", "id": 73, "structure_id_path": [10000, 1000, 1001, 1002, 73], "rgb_triplet": [255, 79, 206]}, {"name": "Hippocampal white matter", "acronym": "hiw", "id": 1003, "structure_id_path": [10000, 1000, 1001, 1003], "rgb_triplet": [255, 255, 255]}, {"name": "alveus of the hippocampus", "acronym": "alv", "id": 6, "structure_id_path": [10000, 1000, 1001, 1003, 6], "rgb_triplet": [255, 0, 255]}, {"name": "ventral hippocampal commissure", "acronym": "vhc", "id": 38, "structure_id_path": [10000, 1000, 1001, 1003, 38], "rgb_triplet": [174, 0, 232]}, {"name": "fornix", "acronym": "f", "id": 52, "structure_id_path": [10000, 1000, 1001, 1003, 52], "rgb_triplet": [21, 192, 255]}, {"name": "fimbria of the hippocampus", "acronym": "fi", "id": 59, "structure_id_path": [10000, 1000, 1001, 1003, 59], "rgb_triplet": [0, 255, 29]}, {"name": "Corticofugal pathways", "acronym": "cfp", "id": 1004, "structure_id_path": [10000, 1000, 1001, 1004], "rgb_triplet": [255, 255, 255]}, {"name": "corticofugal tract and corona radiata", "acronym": "ic-cp-lfp-py", "id": 1, "structure_id_path": [10000, 1000, 1001, 1004, 1], "rgb_triplet": [255, 52, 39]}, {"name": "pyramidal decussation", "acronym": "pyx", "id": 85, "structure_id_path": [10000, 1000, 1001, 1004, 85], "rgb_triplet": [114, 9, 212]}, {"name": "Medial lemniscus", "acronym": "ml", "id": 1005, "structure_id_path": [10000, 1000, 1001, 1005], "rgb_triplet": [255, 255, 255]}, {"name": "medial lemniscus, unspecified", "acronym": "ml-u", "id": 34, "structure_id_path": [10000, 1000, 1001, 1005, 34], "rgb_triplet": [212, 255, 0]}, {"name": "medial lemniscus decussation", "acronym": "mlx", "id": 84, "structure_id_path": [10000, 1000, 1001, 1005, 84], "rgb_triplet": [65, 150, 255]}, {"name": "Thalamic tracts", "acronym": "tht", "id": 1006, "structure_id_path": [10000, 1000, 1001, 1006], "rgb_triplet": [255, 255, 255]}, {"name": "External medullary lamina", "acronym": "eml", "id": 1051, "structure_id_path": [10000, 1000, 1001, 1006, 1051], "rgb_triplet": [255, 255, 255]}, {"name": "external medullary lamina, unspecified", "acronym": "eml-u", "id": 249, "structure_id_path": [10000, 1000, 1001, 1006, 1051, 249], "rgb_triplet": [170, 255, 0]}, {"name": "external medullary lamina, auditory radiation", "acronym": "eml-ar", "id": 157, "structure_id_path": [10000, 1000, 1001, 1006, 1051, 157], "rgb_triplet": [244, 156, 255]}, {"name": "internal medullary lamina", "acronym": "iml", "id": 291, "structure_id_path": [10000, 1000, 1001, 1006, 291], "rgb_triplet": [255, 92, 10]}, {"name": "intramedullary thalamic area", "acronym": "ima", "id": 290, "structure_id_path": [10000, 1000, 1001, 1006, 290], "rgb_triplet": [155, 148, 111]}, {"name": "superior cerebellar peduncle and prerubral field", "acronym": "scp-pr", "id": 270, "structure_id_path": [10000, 1000, 1001, 1006, 270], "rgb_triplet": [210, 182, 140]}, {"name": "pretectothalamic lamina", "acronym": "ptl", "id": 239, "structure_id_path": [10000, 1000, 1001, 1006, 239], "rgb_triplet": [219, 143, 247]}, {"name": "mammillotegmental tract", "acronym": "mtg", "id": 53, "structure_id_path": [10000, 1000, 1001, 1006, 53], "rgb_triplet": [238, 186, 0]}, {"name": "commissural stria terminalis", "acronym": "cst", "id": 54, "structure_id_path": [10000, 1000, 1001, 1006, 54], "rgb_triplet": [173, 255, 47]}, {"name": "fasciculus retroflexus", "acronym": "fr", "id": 60, "structure_id_path": [10000, 1000, 1001, 1006, 60], "rgb_triplet": [244, 67, 69]}, {"name": "stria medullaris thalami", "acronym": "sm", "id": 61, "structure_id_path": [10000, 1000, 1001, 1006, 61], "rgb_triplet": [0, 255, 0]}, {"name": "stria terminalis", "acronym": "st", "id": 62, "structure_id_path": [10000, 1000, 1001, 1006, 62], "rgb_triplet": [238, 117, 51]}, {"name": "habenular commissure", "acronym": "hbc", "id": 80, "structure_id_path": [10000, 1000, 1001, 1006, 80], "rgb_triplet": [69, 235, 202]}, {"name": "posterior commissure", "acronym": "pc", "id": 63, "structure_id_path": [10000, 1000, 1001, 63], "rgb_triplet": [255, 0, 218]}, {"name": "Facial nerve", "acronym": "7n", "id": 1007, "structure_id_path": [10000, 1000, 1001, 1007], "rgb_triplet": [255, 255, 255]}, {"name": "facial nerve, unspecified", "acronym": "7n-u", "id": 35, "structure_id_path": [10000, 1000, 1001, 1007, 35], "rgb_triplet": [255, 25, 240]}, {"name": "ascending fibers of the facial nerve", "acronym": "asc7", "id": 72, "structure_id_path": [10000, 1000, 1001, 1007, 72], "rgb_triplet": [179, 28, 53]}, {"name": "genu of the facial nerve", "acronym": "g7", "id": 57, "structure_id_path": [10000, 1000, 1001, 1007, 57], "rgb_triplet": [250, 244, 247]}, {"name": "Optic fiber system and supraoptic decussation", "acronym": "ofs", "id": 1008, "structure_id_path": [10000, 1000, 1001, 1008], "rgb_triplet": [255, 255, 255]}, {"name": "optic nerve", "acronym": "2n", "id": 41, "structure_id_path": [10000, 1000, 1001, 1008, 41], "rgb_triplet": [48, 218, 0]}, {"name": "optic tract and optic chiasm", "acronym": "opt-och", "id": 42, "structure_id_path": [10000, 1000, 1001, 1008, 42], "rgb_triplet": [38, 126, 255]}, {"name": "supraoptic decussation", "acronym": "sox", "id": 83, "structure_id_path": [10000, 1000, 1001, 1008, 83], "rgb_triplet": [250, 170, 64]}, {"name": "White matter of the tectum", "acronym": "tew", "id": 1009, "structure_id_path": [10000, 1000, 1001, 1009], "rgb_triplet": [255, 255, 255]}, {"name": "commissure of the superior colliculus", "acronym": "csc", "id": 46, "structure_id_path": [10000, 1000, 1001, 1009, 46], "rgb_triplet": [33, 230, 255]}, {"name": "brachium of the superior colliculus", "acronym": "bsc", "id": 68, "structure_id_path": [10000, 1000, 1001, 1009, 68], "rgb_triplet": [188, 32, 173]}, {"name": "inferior colliculus, commissure", "acronym": "cic", "id": 69, "structure_id_path": [10000, 1000, 1001, 1009, 69], "rgb_triplet": [255, 42, 39]}, {"name": "inferior colliculus, brachium", "acronym": "bic", "id": 146, "structure_id_path": [10000, 1000, 1001, 1009, 146], "rgb_triplet": [176, 58, 72]}, {"name": "Cerebellar and precerebellar white matter", "acronym": "cbt", "id": 1010, "structure_id_path": [10000, 1000, 1001, 1010], "rgb_triplet": [255, 255, 255]}, {"name": "inferior cerebellar peduncle", "acronym": "icp", "id": 7, "structure_id_path": [10000, 1000, 1001, 1010, 7], "rgb_triplet": [52, 255, 13]}, {"name": "middle cerebellar peduncle", "acronym": "mcp", "id": 78, "structure_id_path": [10000, 1000, 1001, 1010, 78], "rgb_triplet": [134, 204, 76]}, {"name": "transverse fibers of the pons", "acronym": "tfp", "id": 79, "structure_id_path": [10000, 1000, 1001, 1010, 79], "rgb_triplet": [128, 170, 255]}, {"name": "White matter of the brainstem", "acronym": "bsw", "id": 1011, "structure_id_path": [10000, 1000, 1001, 1011], "rgb_triplet": [255, 255, 255]}, {"name": "Lateral lemniscus", "acronym": "ll", "id": 1012, "structure_id_path": [10000, 1000, 1001, 1011, 1012], "rgb_triplet": [255, 255, 255]}, {"name": "lateral lemniscus, commissure", "acronym": "ll-c", "id": 140, "structure_id_path": [10000, 1000, 1001, 1011, 1012, 140], "rgb_triplet": [255, 29, 0]}, {"name": "lateral lemniscus, unspecified", "acronym": "ll-u", "id": 141, "structure_id_path": [10000, 1000, 1001, 1011, 1012, 141], "rgb_triplet": [255, 166, 0]}, {"name": "acoustic striae", "acronym": "as", "id": 129, "structure_id_path": [10000, 1000, 1001, 1011, 129], "rgb_triplet": [255, 217, 0]}, {"name": "trapezoid body", "acronym": "tz", "id": 130, "structure_id_path": [10000, 1000, 1001, 1011, 130], "rgb_triplet": [213, 255, 0]}, {"name": "spinal trigeminal tract", "acronym": "sp5t", "id": 76, "structure_id_path": [10000, 1000, 1001, 1011, 76], "rgb_triplet": [250, 128, 114]}, {"name": "Gray matter", "acronym": "GM", "id": 1013, "structure_id_path": [10000, 1000, 1013], "rgb_triplet": [128, 128, 128]}, {"name": "Telencephalon", "acronym": "Tel", "id": 1052, "structure_id_path": [10000, 1000, 1013, 1052], "rgb_triplet": [128, 128, 128]}, {"name": "Laminated pallium", "acronym": "LamP", "id": 1053, "structure_id_path": [10000, 1000, 1013, 1052, 1053], "rgb_triplet": [128, 128, 128]}, {"name": "Olfactory bulb", "acronym": "OB", "id": 1020, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1020], "rgb_triplet": [128, 128, 128]}, {"name": "Glomerular layer of the accessory olfactory bulb", "acronym": "GlA", "id": 64, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1020, 64], "rgb_triplet": [15, 109, 230]}, {"name": "Glomerular layer of the olfactory bulb", "acronym": "Gl", "id": 65, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1020, 65], "rgb_triplet": [255, 227, 0]}, {"name": "Olfactory bulb, unspecified", "acronym": "OB-u", "id": 66, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1020, 66], "rgb_triplet": [255, 135, 0]}, {"name": "Nucleus of the lateral olfactory tract", "acronym": "NLOT", "id": 502, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1020, 502], "rgb_triplet": [230, 184, 67]}, {"name": "Cerebral cortex", "acronym": "Cx", "id": 1015, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015], "rgb_triplet": [128, 128, 128]}, {"name": "Hippocampal region", "acronym": "HR", "id": 1055, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055], "rgb_triplet": [128, 128, 128]}, {"name": "Hippocampal formation", "acronym": "HF", "id": 1021, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1021], "rgb_triplet": [128, 128, 128]}, {"name": "Fasciola cinereum", "acronym": "FC", "id": 99, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1021, 99], "rgb_triplet": [255, 0, 0]}, {"name": "Subiculum", "acronym": "SUB", "id": 100, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1021, 100], "rgb_triplet": [255, 192, 0]}, {"name": "Cornu Ammonis", "acronym": "CA", "id": 1022, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1021, 1022], "rgb_triplet": [128, 128, 128]}, {"name": "Cornu ammonis 1", "acronym": "CA1", "id": 98, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1021, 1022, 98], "rgb_triplet": [217, 104, 13]}, {"name": "Cornu ammonis 2", "acronym": "CA2", "id": 97, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1021, 1022, 97], "rgb_triplet": [255, 255, 0]}, {"name": "Cornu ammonis 3", "acronym": "CA3", "id": 95, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1021, 1022, 95], "rgb_triplet": [165, 131, 107]}, {"name": "Dentate gyrus", "acronym": "DG", "id": 96, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1021, 96], "rgb_triplet": [91, 45, 10]}, {"name": "Parahippocampal region", "acronym": "PHR", "id": 1023, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1023], "rgb_triplet": [128, 128, 128]}, {"name": "Postrhinal cortex", "acronym": "POR", "id": 108, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1023, 108], "rgb_triplet": [40, 112, 130]}, {"name": "Presubiculum", "acronym": "PrS", "id": 109, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1023, 109], "rgb_triplet": [80, 123, 175]}, {"name": "Parasubiculum", "acronym": "PaS", "id": 110, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1023, 110], "rgb_triplet": [23, 54, 96]}, {"name": "Perirhinal cortex", "acronym": "PER", "id": 1024, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1023, 1024], "rgb_triplet": [128, 128, 128]}, {"name": "Perirhinal area 35", "acronym": "PER35", "id": 112, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1023, 1024, 112], "rgb_triplet": [205, 51, 255]}, {"name": "Perirhinal area 36", "acronym": "PER36", "id": 113, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1023, 1024, 113], "rgb_triplet": [112, 48, 160]}, {"name": "Entorhinal cortex", "acronym": "EC", "id": 1025, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1023, 1025], "rgb_triplet": [128, 128, 128]}, {"name": "Medial entorhinal cortex", "acronym": "MEC", "id": 114, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1023, 1025, 114], "rgb_triplet": [122, 187, 51]}, {"name": "Lateral entorhinal cortex", "acronym": "LEC", "id": 115, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1055, 1023, 1025, 115], "rgb_triplet": [90, 111, 47]}, {"name": "Piriform cortex", "acronym": "PIR", "id": 1056, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1056], "rgb_triplet": [128, 128, 128]}, {"name": "Piriform cortex, layer 1", "acronym": "PIR1", "id": 181, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1056, 181], "rgb_triplet": [0, 204, 255]}, {"name": "Piriform cortex, layer 2", "acronym": "PIR2", "id": 182, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1056, 182], "rgb_triplet": [0, 0, 254]}, {"name": "Piriform cortex, layer 3", "acronym": "PIR3", "id": 183, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1056, 183], "rgb_triplet": [165, 120, 221]}, {"name": "Cingulate region", "acronym": "CgR", "id": 1057, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1057], "rgb_triplet": [128, 128, 128]}, {"name": "Cingulate cortex", "acronym": "Cg", "id": 1018, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1057, 1018], "rgb_triplet": [128, 128, 128]}, {"name": "Cingulate area 1", "acronym": "Cg1", "id": 411, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1057, 1018, 411], "rgb_triplet": [0, 128, 128]}, {"name": "Cingulate area 2", "acronym": "Cg2", "id": 10, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1057, 1018, 10], "rgb_triplet": [29, 104, 235]}, {"name": "Retrosplenial cortex", "acronym": "RS", "id": 1058, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1057, 1058], "rgb_triplet": [128, 128, 128]}, {"name": "Retrosplenial dysgranular area", "acronym": "RSD", "id": 427, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1057, 1058, 427], "rgb_triplet": [200, 73, 164]}, {"name": "Retrosplenial granular area", "acronym": "RSG", "id": 430, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1057, 1058, 430], "rgb_triplet": [25, 100, 200]}, {"name": "Insular region", "acronym": "INS", "id": 1059, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1059], "rgb_triplet": [128, 128, 128]}, {"name": "Agranular insular cortex", "acronym": "AI", "id": 1060, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1059, 1060], "rgb_triplet": [128, 128, 128]}, {"name": "Agranular insular cortex, ventral area", "acronym": "AI-v", "id": 409, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1059, 1060, 409], "rgb_triplet": [255, 201, 14]}, {"name": "Agranular insular cortex dorsal area ", "acronym": "AI-d", "id": 410, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1059, 1060, 410], "rgb_triplet": [255, 127, 39]}, {"name": "Agranular insular cortex, posterior area ", "acronym": "AI-p", "id": 424, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1059, 1060, 424], "rgb_triplet": [181, 230, 29]}, {"name": "Dysgranular insular cortex", "acronym": "DI", "id": 414, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1059, 414], "rgb_triplet": [255, 242, 0]}, {"name": "Granular insular cortex", "acronym": "GI", "id": 416, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1059, 416], "rgb_triplet": [239, 228, 176]}, {"name": "Frontal region", "acronym": "Front", "id": 1061, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061], "rgb_triplet": [128, 128, 128]}, {"name": "Frontal association cortex", "acronym": "FrA", "id": 77, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 77], "rgb_triplet": [206, 211, 7]}, {"name": "Orbitofrontal cortex", "acronym": "Orb", "id": 1062, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1062], "rgb_triplet": [128, 128, 128]}, {"name": "Medial orbital area", "acronym": "MO", "id": 403, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1062, 403], "rgb_triplet": [63, 72, 204]}, {"name": "Ventral orbital area", "acronym": "VO", "id": 402, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1062, 402], "rgb_triplet": [200, 191, 231]}, {"name": "Ventrolateral orbital area", "acronym": "VLO", "id": 400, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1062, 400], "rgb_triplet": [255, 0, 1]}, {"name": "Lateral orbital area", "acronym": "LO", "id": 401, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1062, 401], "rgb_triplet": [255, 174, 201]}, {"name": "Dorsolateral orbital area", "acronym": "DLO", "id": 404, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1062, 404], "rgb_triplet": [185, 122, 87]}, {"name": "Mediofrontal cortex", "acronym": "MFC", "id": 1063, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1063], "rgb_triplet": [128, 128, 128]}, {"name": "Prelimbic area", "acronym": "PrL", "id": 405, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1063, 405], "rgb_triplet": [163, 73, 164]}, {"name": "Infralimbic area", "acronym": "IL", "id": 413, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1063, 413], "rgb_triplet": [34, 177, 76]}, {"name": "Motor cortex", "acronym": "M", "id": 1064, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1064], "rgb_triplet": [128, 128, 128]}, {"name": "Primary motor area", "acronym": "M1", "id": 408, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1064, 408], "rgb_triplet": [153, 217, 234]}, {"name": "Secondary motor area", "acronym": "M2", "id": 406, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1064, 406], "rgb_triplet": [0, 162, 232]}, {"name": "Frontal association area 3", "acronym": "Fr3", "id": 407, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1061, 1064, 407], "rgb_triplet": [136, 0, 21]}, {"name": "Parietal region", "acronym": "Par", "id": 1065, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065], "rgb_triplet": [128, 128, 128]}, {"name": "Somatosensory cortex", "acronym": "SS", "id": 1066, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1066], "rgb_triplet": [128, 128, 128]}, {"name": "Primary somatosensory area", "acronym": "S1", "id": 1067, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1066, 1067], "rgb_triplet": [128, 128, 128]}, {"name": "Primary somatosensory area, face representation", "acronym": "S1-f", "id": 420, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1066, 1067, 420], "rgb_triplet": [255, 128, 192]}, {"name": "Primary somatosensory area, barrel field", "acronym": "S1-bf", "id": 425, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1066, 1067, 425], "rgb_triplet": [120, 177, 76]}, {"name": "Primary somatosensory area, dysgranular zone", "acronym": "S1-dz", "id": 418, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1066, 1067, 418], "rgb_triplet": [237, 28, 36]}, {"name": "Primary somatosensory area, forelimb representation", "acronym": "S1-fl", "id": 417, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1066, 1067, 417], "rgb_triplet": [185, 14, 131]}, {"name": "Primary somatosensory area, hindlimb representation", "acronym": "S1-hl", "id": 423, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1066, 1067, 423], "rgb_triplet": [136, 100, 21]}, {"name": "Primary somatosensory area, trunk representation", "acronym": "S1-tr", "id": 429, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1066, 1067, 429], "rgb_triplet": [225, 150, 201]}, {"name": "Secondary somatosensory area", "acronym": "S2", "id": 422, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1066, 422], "rgb_triplet": [200, 100, 250]}, {"name": "Posterior parietal cortex", "acronym": "PPC", "id": 1068, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1068], "rgb_triplet": [128, 128, 128]}, {"name": "Parietal association cortex, medial area", "acronym": "mPPC", "id": 433, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1068, 433], "rgb_triplet": [108, 0, 108]}, {"name": "Parietal association cortex, lateral area", "acronym": "lPPC", "id": 432, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1068, 432], "rgb_triplet": [255, 240, 29]}, {"name": "Parietal association cortex, posterior area ", "acronym": "PtP", "id": 436, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1065, 1068, 436], "rgb_triplet": [128, 0, 64]}, {"name": "Occipital region", "acronym": "Oc", "id": 1069, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1069], "rgb_triplet": [128, 128, 128]}, {"name": "Visual cortex", "acronym": "Vis", "id": 1070, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1069, 1070], "rgb_triplet": [128, 128, 128]}, {"name": "Primary visual area", "acronym": "V1", "id": 442, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1069, 1070, 442], "rgb_triplet": [84, 52, 35]}, {"name": "Secondary visual area", "acronym": "V2", "id": 1071, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1069, 1070, 1071], "rgb_triplet": [128, 128, 128]}, {"name": "Secondary visual area, medial part", "acronym": "V2M", "id": 448, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1069, 1070, 1071, 448], "rgb_triplet": [128, 0, 100]}, {"name": "Secondary visual area, lateral part", "acronym": "V2L", "id": 443, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1069, 1070, 1071, 443], "rgb_triplet": [255, 100, 100]}, {"name": "Temporal region", "acronym": "Te", "id": 1072, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1072], "rgb_triplet": [128, 128, 128]}, {"name": "Temporal association cortex", "acronym": "TeA", "id": 444, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1072, 444], "rgb_triplet": [0, 128, 0]}, {"name": "Auditory cortex", "acronym": "Au", "id": 1019, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1072, 1019], "rgb_triplet": [128, 128, 128]}, {"name": "Primary auditory area", "acronym": "Au1", "id": 151, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1072, 1019, 151], "rgb_triplet": [255, 215, 0]}, {"name": "Secondary auditory area", "acronym": "Au2", "id": 1073, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1072, 1019, 1073], "rgb_triplet": [128, 128, 128]}, {"name": "Secondary auditory area, dorsal part", "acronym": "Au2-d", "id": 152, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1072, 1019, 1073, 152], "rgb_triplet": [240, 255, 255]}, {"name": "Secondary auditory area, ventral part", "acronym": "Au2-v", "id": 153, "structure_id_path": [10000, 1000, 1013, 1052, 1053, 1015, 1072, 1019, 1073, 153], "rgb_triplet": [216, 191, 216]}, {"name": "Non-laminated pallium", "acronym": "N-LamP", "id": 1074, "structure_id_path": [10000, 1000, 1013, 1052, 1074], "rgb_triplet": [128, 128, 128]}, {"name": "Claustrum", "acronym": "CLA", "id": 412, "structure_id_path": [10000, 1000, 1013, 1052, 1074, 412], "rgb_triplet": [153, 217, 200]}, {"name": "Endopiriform nucleus", "acronym": "Endo", "id": 500, "structure_id_path": [10000, 1000, 1013, 1052, 1074, 500], "rgb_triplet": [1, 10, 100]}, {"name": "Amygdaloid area, unspecified", "acronym": "Am-u", "id": 501, "structure_id_path": [10000, 1000, 1013, 1052, 1074, 501], "rgb_triplet": [2, 20, 200]}, {"name": " Subpallium", "acronym": "SubPAL", "id": 1075, "structure_id_path": [10000, 1000, 1013, 1052, 1075], "rgb_triplet": [128, 128, 128]}, {"name": "Striatum", "acronym": "Str", "id": 1076, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1076], "rgb_triplet": [128, 128, 128]}, {"name": "Caudate putamen", "acronym": "CPu", "id": 197, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1076, 197], "rgb_triplet": [129, 79, 155]}, {"name": "Nucleus accumbens", "acronym": "NAc", "id": 1077, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1076, 1077], "rgb_triplet": [128, 128, 128]}, {"name": "Nucleus accumbens, core", "acronym": "NAc-c", "id": 184, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1076, 1077, 184], "rgb_triplet": [230, 216, 250]}, {"name": "Nucleus accumbens, shell", "acronym": "NAc-sh", "id": 192, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1076, 1077, 192], "rgb_triplet": [88, 47, 108]}, {"name": "Ventral striatal region, unspecified", "acronym": "VSR-u", "id": 199, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1076, 199], "rgb_triplet": [220, 20, 60]}, {"name": "Pallidum", "acronym": "PAL", "id": 1028, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1028], "rgb_triplet": [128, 128, 128]}, {"name": "Globus pallidus external", "acronym": "GPe", "id": 1078, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1028, 1078], "rgb_triplet": [128, 128, 128]}, {"name": "Globus pallidus external, medial part", "acronym": "GPe-m", "id": 195, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1028, 1078, 195], "rgb_triplet": [255, 85, 255]}, {"name": "Globus pallidus external, lateral part", "acronym": "GPe-l", "id": 198, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1028, 1078, 198], "rgb_triplet": [200, 25, 200]}, {"name": "Entopeduncular nucleus", "acronym": "EP", "id": 32, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1028, 32], "rgb_triplet": [26, 231, 255]}, {"name": "Ventral pallidum", "acronym": "VP", "id": 193, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1028, 193], "rgb_triplet": [0, 162, 255]}, {"name": "Basal forebrain region ", "acronym": "BRF", "id": 1079, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1079], "rgb_triplet": [128, 128, 128]}, {"name": "Basal forebrain region, unspecified", "acronym": "BFR-u", "id": 82, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1079, 82], "rgb_triplet": [225, 240, 13]}, {"name": "Bed nucleus of the stria terminalis", "acronym": "BNST", "id": 93, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1079, 93], "rgb_triplet": [0, 8, 182]}, {"name": "Septal region", "acronym": "Sep", "id": 40, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1079, 40], "rgb_triplet": [255, 8, 0]}, {"name": "Subthalamic nucleus", "acronym": "STh", "id": 3, "structure_id_path": [10000, 1000, 1013, 1052, 1075, 1079, 3], "rgb_triplet": [0, 0, 255]}, {"name": "Diencephalon", "acronym": "Dien", "id": 1080, "structure_id_path": [10000, 1000, 1013, 1080], "rgb_triplet": [128, 128, 128]}, {"name": "Prethalamus", "acronym": "Thal-Pre", "id": 1081, "structure_id_path": [10000, 1000, 1013, 1080, 1081], "rgb_triplet": [128, 128, 128]}, {"name": "Reticular (pre)thalamic nucleus", "acronym": "RT", "id": 1033, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 1033], "rgb_triplet": [128, 128, 128]}, {"name": "Reticular (pre)thalamic nucleus, unspecified", "acronym": "RT-u", "id": 200, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 1033, 200], "rgb_triplet": [0, 217, 255]}, {"name": "Reticular (pre)thalamic nucleus, auditory segment", "acronym": "RT-a", "id": 164, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 1033, 164], "rgb_triplet": [110, 0, 255]}, {"name": "Zona incerta", "acronym": "ZI", "id": 1082, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 1082], "rgb_triplet": [128, 128, 128]}, {"name": "Zona incerta, dorsal part", "acronym": "ZI-d", "id": 235, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 1082, 235], "rgb_triplet": [216, 191, 217]}, {"name": "Zona incerta, ventral part", "acronym": "ZI-v", "id": 236, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 1082, 236], "rgb_triplet": [75, 200, 138]}, {"name": "Zona incerta, rostral part", "acronym": "ZI-r", "id": 257, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 1082, 257], "rgb_triplet": [30, 144, 255]}, {"name": "Zona incerta, caudal part", "acronym": "ZI-c", "id": 287, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 1082, 287], "rgb_triplet": [255, 228, 196]}, {"name": "Zona incerta, A13 dopamine cells", "acronym": "ZI-A13", "id": 238, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 1082, 238], "rgb_triplet": [194, 71, 79]}, {"name": "Zona incerta, A11 dopamine cells", "acronym": "ZI-A11", "id": 284, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 1082, 284], "rgb_triplet": [255, 182, 193]}, {"name": "Fields of Forel", "acronym": "FoF", "id": 280, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 1082, 280], "rgb_triplet": [255, 250, 250]}, {"name": "Pregeniculate nucleus", "acronym": "PrG", "id": 204, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 204], "rgb_triplet": [255, 25, 0]}, {"name": "Subgeniculate nucleus", "acronym": "SubG", "id": 281, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 281], "rgb_triplet": [147, 112, 219]}, {"name": "Intergeniculate leaflet", "acronym": "IGL", "id": 272, "structure_id_path": [10000, 1000, 1013, 1080, 1081, 272], "rgb_triplet": [0, 0, 128]}, {"name": "Epithalamus", "acronym": "Thal-EPI", "id": 1083, "structure_id_path": [10000, 1000, 1013, 1080, 1083], "rgb_triplet": [128, 128, 128]}, {"name": "Lateral habenular nucleus", "acronym": "LHb", "id": 206, "structure_id_path": [10000, 1000, 1013, 1080, 1083, 206], "rgb_triplet": [217, 108, 0]}, {"name": "Medial habenular nucleus", "acronym": "MHb", "id": 207, "structure_id_path": [10000, 1000, 1013, 1080, 1083, 207], "rgb_triplet": [205, 0, 24]}, {"name": "Nucleus of the stria medullaris", "acronym": "SMn", "id": 81, "structure_id_path": [10000, 1000, 1013, 1080, 1083, 81], "rgb_triplet": [222, 7, 237]}, {"name": "Pineal gland", "acronym": "PG", "id": 43, "structure_id_path": [10000, 1000, 1013, 1080, 1083, 43], "rgb_triplet": [218, 170, 62]}, {"name": "Dorsal thalamus", "acronym": "Thal-D", "id": 1084, "structure_id_path": [10000, 1000, 1013, 1080, 1084], "rgb_triplet": [128, 128, 128]}, {"name": "Anterior nuclei of the dorsal thalamus", "acronym": "ANT", "id": 1085, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085], "rgb_triplet": [128, 128, 128]}, {"name": "Anterodorsal thalamic nucleus", "acronym": "AD", "id": 213, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085, 213], "rgb_triplet": [131, 10, 121]}, {"name": "Anteroventral thalamic nucleus", "acronym": "AV", "id": 1086, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085, 1086], "rgb_triplet": [128, 128, 128]}, {"name": "Anteroventral thalamic nucleus, dorsomedial part", "acronym": "AV-dm", "id": 214, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085, 1086, 214], "rgb_triplet": [239, 121, 218]}, {"name": "Anteroventral thalamic nucleus, ventrolateral part", "acronym": "AV-vl", "id": 215, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085, 1086, 215], "rgb_triplet": [101, 35, 142]}, {"name": "Anteromedial thalamic nucleus", "acronym": "AM", "id": 254, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085, 254], "rgb_triplet": [0, 85, 255]}, {"name": "Interanteromedial thalamic nucleus", "acronym": "IAM", "id": 255, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085, 255], "rgb_triplet": [248, 117, 222]}, {"name": "Paraventricular thalamic nuclei (anterior and posterior)", "acronym": "PV", "id": 242, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085, 242], "rgb_triplet": [156, 51, 51]}, {"name": "Intermediodorsal thalamic nucleus", "acronym": "IMD", "id": 260, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085, 260], "rgb_triplet": [160, 82, 45]}, {"name": "Parataenial thalamic nucleus", "acronym": "PT", "id": 211, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085, 211], "rgb_triplet": [205, 0, 6]}, {"name": "Subparafascicular nucleus", "acronym": "SPF", "id": 278, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085, 278], "rgb_triplet": [233, 150, 122]}, {"name": "Posterior intralaminar nucleus", "acronym": "PIL", "id": 208, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1085, 208], "rgb_triplet": [228, 112, 214]}, {"name": "Ventral midline group of the dorsal thalamus", "acronym": "V-MID", "id": 1088, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1088], "rgb_triplet": [128, 128, 128]}, {"name": "Rhomboid thalamic nucleus", "acronym": "Rh", "id": 216, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1088, 216], "rgb_triplet": [0, 255, 17]}, {"name": "Reuniens thalamic nucleus", "acronym": "Re", "id": 219, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1088, 219], "rgb_triplet": [255, 170, 0]}, {"name": "Retroreuniens thalamic nucleus", "acronym": "RRe", "id": 268, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1088, 268], "rgb_triplet": [0, 0, 205]}, {"name": "Xiphoid thalamic nucleus", "acronym": "Xi", "id": 218, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1088, 218], "rgb_triplet": [35, 255, 236]}, {"name": "Mediodorsal nucleus of the dorsal thalamus", "acronym": "MD", "id": 1089, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1089], "rgb_triplet": [128, 128, 128]}, {"name": "Mediodorsal thalamic nucleus, lateral part", "acronym": "MD-l", "id": 232, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1089, 232], "rgb_triplet": [255, 85, 127]}, {"name": "Mediodorsal thalamic nucleus, central part", "acronym": "MD-c", "id": 233, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1089, 233], "rgb_triplet": [85, 170, 0]}, {"name": "Mediodorsal thalamic nucleus, medial part", "acronym": "MD-m", "id": 240, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1089, 240], "rgb_triplet": [170, 255, 255]}, {"name": "Ventral nuclei of the dorsal thalamus", "acronym": "VENT", "id": 1090, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1090], "rgb_triplet": [128, 128, 128]}, {"name": "Ventral anterior thalamic nucleus", "acronym": "VA", "id": 293, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1090, 293], "rgb_triplet": [255, 136, 0]}, {"name": "Ventromedial thalamic nucleus", "acronym": "VM", "id": 221, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1090, 221], "rgb_triplet": [0, 185, 126]}, {"name": "Ventrolateral thalamic nucleus", "acronym": "VL", "id": 231, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1090, 231], "rgb_triplet": [170, 170, 255]}, {"name": "Angular thalamic nucleus", "acronym": "Ang", "id": 223, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1090, 223], "rgb_triplet": [139, 93, 139]}, {"name": "Ventral posterior thalamic nucleus", "acronym": "VPN", "id": 1091, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1090, 1091], "rgb_triplet": [128, 128, 128]}, {"name": "Ventral posteromedial thalamic nucleus", "acronym": "VPM", "id": 227, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1090, 1091, 227], "rgb_triplet": [255, 0, 254]}, {"name": "Ventral posterolateral thalamic nucleus", "acronym": "VPL", "id": 294, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1090, 1091, 294], "rgb_triplet": [171, 86, 62]}, {"name": "Ventral posterior nucleus of the thalamus, parvicellular part", "acronym": "VP-pc", "id": 266, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1090, 1091, 266], "rgb_triplet": [0, 255, 8]}, {"name": "Submedius thalamic nucleus", "acronym": "SMT", "id": 222, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1090, 222], "rgb_triplet": [130, 0, 217]}, {"name": "Intralaminar nuclei of the dorsal thalamus", "acronym": "ILM", "id": 1092, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1092], "rgb_triplet": [128, 128, 128]}, {"name": "Paracentral thalamic nucleus", "acronym": "PCN", "id": 246, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1092, 246], "rgb_triplet": [240, 248, 255]}, {"name": "Central medial thalamic nucleus", "acronym": "CM", "id": 247, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1092, 247], "rgb_triplet": [224, 182, 64]}, {"name": "Central lateral thalamic nucleus", "acronym": "CL", "id": 248, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1092, 248], "rgb_triplet": [153, 50, 204]}, {"name": "Parafascicular thalamic nucleus", "acronym": "PF", "id": 267, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1092, 267], "rgb_triplet": [255, 239, 213]}, {"name": "Ethmoid-Limitans nucleus", "acronym": "Eth", "id": 282, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1092, 282], "rgb_triplet": [131, 50, 128]}, {"name": "Posterior complex of the dorsal thalamus", "acronym": "PoC", "id": 1093, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1093], "rgb_triplet": [128, 128, 128]}, {"name": "Posterior thalamic nucleus", "acronym": "Po", "id": 230, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1093, 230], "rgb_triplet": [255, 255, 2]}, {"name": "Posterior thalamic nuclear group, triangular part", "acronym": "Po-t", "id": 210, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1093, 210], "rgb_triplet": [255, 255, 200]}, {"name": "Lateral posterior (pulvinar) complex of the dorsal thalamus", "acronym": "LP", "id": 1094, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1094], "rgb_triplet": [128, 128, 128]}, {"name": "Lateral posterior thalamic nucleus, mediorostral part", "acronym": "LP-mr", "id": 285, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1094, 285], "rgb_triplet": [60, 179, 113]}, {"name": "Lateral posterior thalamic nucleus, mediocaudal part", "acronym": "LP-mc", "id": 286, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1094, 286], "rgb_triplet": [255, 235, 205]}, {"name": "Lateral posterior thalamic nucleus, lateral part", "acronym": "LP-l", "id": 283, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1094, 283], "rgb_triplet": [199, 87, 61]}, {"name": "Laterodorsal thalamic nuclei of the dorsal thalamus", "acronym": "LD", "id": 1095, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1095], "rgb_triplet": [128, 128, 128]}, {"name": "Laterodorsal thalamic nucleus, dorsomedial part", "acronym": "LD-dm", "id": 228, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1095, 228], "rgb_triplet": [255, 123, 0]}, {"name": "Laterodorsal thalamic nucleus, ventrolateral part", "acronym": "LD-vl", "id": 229, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1095, 229], "rgb_triplet": [43, 153, 31]}, {"name": "Dorsal lateral geniculate nucleus", "acronym": "DLG", "id": 205, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1095, 205], "rgb_triplet": [255, 226, 0]}, {"name": "Medial geniculate complex of the dorsal thalamus", "acronym": "MG", "id": 1032, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1032], "rgb_triplet": [128, 128, 128]}, {"name": "Medial geniculate body, ventral division", "acronym": "MG-v", "id": 298, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1032, 298], "rgb_triplet": [131, 58, 31]}, {"name": "Medial geniculate body, dorsal division", "acronym": "MG-d", "id": 295, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1032, 295], "rgb_triplet": [239, 163, 0]}, {"name": "Medial geniculate body, marginal zone", "acronym": "MG-mz", "id": 150, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1032, 150], "rgb_triplet": [255, 47, 242]}, {"name": "Medial geniculate body, medial division", "acronym": "MG-m", "id": 297, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1032, 297], "rgb_triplet": [10, 244, 217]}, {"name": "Medial geniculate body, suprageniculate nucleus", "acronym": "MG-sg", "id": 299, "structure_id_path": [10000, 1000, 1013, 1080, 1084, 1032, 299], "rgb_triplet": [10, 244, 150]}, {"name": "Hypothalamus", "acronym": "HY", "id": 1034, "structure_id_path": [10000, 1000, 1013, 1080, 1034], "rgb_triplet": [128, 128, 128]}, {"name": "Hypothalamic region, unspecified", "acronym": "HTh-u", "id": 48, "structure_id_path": [10000, 1000, 1013, 1080, 1034, 48], "rgb_triplet": [226, 120, 161]}, {"name": "Pretectum", "acronym": "PreT", "id": 1096, "structure_id_path": [10000, 1000, 1013, 1080, 1096], "rgb_triplet": [128, 128, 128]}, {"name": "Pretectal region", "acronym": "PRT", "id": 94, "structure_id_path": [10000, 1000, 1013, 1080, 1096, 94], "rgb_triplet": [255, 87, 30]}, {"name": "Nucleus sagulum", "acronym": "Sag", "id": 163, "structure_id_path": [10000, 1000, 1013, 1080, 1096, 163], "rgb_triplet": [99, 205, 0]}, {"name": "Mesencephalon", "acronym": "Mes", "id": 1097, "structure_id_path": [10000, 1000, 1013, 1097], "rgb_triplet": [128, 128, 128]}, {"name": "Midbrain", "acronym": "MB", "id": 1035, "structure_id_path": [10000, 1000, 1013, 1097, 1035], "rgb_triplet": [128, 128, 128]}, {"name": "Tectum", "acronym": "Tc", "id": 1036, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1036], "rgb_triplet": [128, 128, 128]}, {"name": "Inferior colliculus", "acronym": "IC", "id": 1037, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1036, 1037], "rgb_triplet": [128, 128, 128]}, {"name": "Inferior colliculus, dorsal cortex", "acronym": "DCIC", "id": 142, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1036, 1037, 142], "rgb_triplet": [206, 255, 142]}, {"name": "Inferior colliculus, central nucleus", "acronym": "CNIC", "id": 143, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1036, 1037, 143], "rgb_triplet": [0, 238, 254]}, {"name": "Inferior colliculus, external cortex", "acronym": "ECIC", "id": 145, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1036, 1037, 145], "rgb_triplet": [48, 136, 203]}, {"name": "Superior colliculus", "acronym": "Su", "id": 1038, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1036, 1038], "rgb_triplet": [128, 128, 128]}, {"name": "Superficial gray layer of the superior colliculus", "acronym": "SuG", "id": 50, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1036, 1038, 50], "rgb_triplet": [86, 0, 221]}, {"name": "Deeper layers of the superior colliculus", "acronym": "SuD", "id": 55, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1036, 1038, 55], "rgb_triplet": [225, 151, 15]}, {"name": "Tegmentum", "acronym": "Tg", "id": 1039, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1039], "rgb_triplet": [128, 128, 128]}, {"name": "Substantia nigra", "acronym": "SN", "id": 1098, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1039, 1098], "rgb_triplet": [128, 128, 128]}, {"name": "Substantia nigra, reticular part", "acronym": "SN-r", "id": 187, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1039, 1098, 187], "rgb_triplet": [99, 197, 18]}, {"name": "Substantia nigra, compact part", "acronym": "SN-c", "id": 188, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1039, 1098, 188], "rgb_triplet": [255, 255, 127]}, {"name": "Substantia nigra, lateral part", "acronym": "SN-l", "id": 189, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1039, 1098, 189], "rgb_triplet": [0, 159, 159]}, {"name": "Ventral tegmental area", "acronym": "VTA", "id": 196, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1039, 196], "rgb_triplet": [127, 255, 212]}, {"name": "Peripeduncular nucleus", "acronym": "PP", "id": 201, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1039, 201], "rgb_triplet": [183, 199, 136]}, {"name": "Interpeduncular nucleus", "acronym": "IP", "id": 71, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1039, 71], "rgb_triplet": [63, 192, 255]}, {"name": "Periaqueductal gray", "acronym": "PAG", "id": 51, "structure_id_path": [10000, 1000, 1013, 1097, 1035, 1039, 51], "rgb_triplet": [7, 255, 89]}, {"name": "Brainstem, unspecified", "acronym": "BS-u", "id": 47, "structure_id_path": [10000, 1000, 1013, 1097, 47], "rgb_triplet": [153, 83, 255]}, {"name": "Rhombencephalon", "acronym": "Rho", "id": 1099, "structure_id_path": [10000, 1000, 1013, 1099], "rgb_triplet": [128, 128, 128]}, {"name": "Metencephalon", "acronym": "Met", "id": 1100, "structure_id_path": [10000, 1000, 1013, 1099, 1100], "rgb_triplet": [128, 128, 128]}, {"name": "Pontine nuclei", "acronym": "Pn", "id": 58, "structure_id_path": [10000, 1000, 1013, 1099, 1100, 58], "rgb_triplet": [0, 215, 11]}, {"name": "Cerebellum", "acronym": "Cb", "id": 1047, "structure_id_path": [10000, 1000, 1013, 1099, 1100, 1047], "rgb_triplet": [128, 128, 128]}, {"name": "Molecular cell layer of the cerebellum", "acronym": "Cb-m", "id": 4, "structure_id_path": [10000, 1000, 1013, 1099, 1100, 1047, 4], "rgb_triplet": [255, 255, 1]}, {"name": "Cerebellum, unspecified", "acronym": "Cb-u", "id": 5, "structure_id_path": [10000, 1000, 1013, 1099, 1100, 1047, 5], "rgb_triplet": [0, 255, 255]}, {"name": "Myelencephalon", "acronym": "Myel", "id": 1101, "structure_id_path": [10000, 1000, 1013, 1099, 1101], "rgb_triplet": [128, 128, 128]}, {"name": "Cochlear nucleus, ventral part", "acronym": "VCN", "id": 1043, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1043], "rgb_triplet": [128, 128, 128]}, {"name": "Ventral cochlear nucleus, anterior part", "acronym": "AVCN", "id": 158, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1043, 158], "rgb_triplet": [34, 152, 255]}, {"name": "Ventral cochlear nucleus, posterior part", "acronym": "PVCN", "id": 159, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1043, 159], "rgb_triplet": [0, 230, 207]}, {"name": "Ventral cochlear nucleus, cap area", "acronym": "Cap", "id": 160, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1043, 160], "rgb_triplet": [0, 255, 106]}, {"name": "Ventral cochlear nucleus, granule cell layer", "acronym": "GCL", "id": 123, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1043, 123], "rgb_triplet": [0, 12, 255]}, {"name": "Cochlear nucleus, dorsal part", "acronym": "DCN", "id": 1044, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1044], "rgb_triplet": [128, 128, 128]}, {"name": "Dorsal cochlear nucleus, molecular layer", "acronym": "DCNM", "id": 126, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1044, 126], "rgb_triplet": [92, 156, 211]}, {"name": "Dorsal cochlear nucleus, fusiform and granule layer", "acronym": "DCNFG", "id": 127, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1044, 127], "rgb_triplet": [0, 80, 156]}, {"name": "Dorsal cochlear nucleus, deep core", "acronym": "DCND", "id": 128, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1044, 128], "rgb_triplet": [197, 238, 255]}, {"name": "Spinal trigeminal nucleus", "acronym": "Sp5n", "id": 75, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 75], "rgb_triplet": [91, 241, 255]}, {"name": "Periventricular gray", "acronym": "PVG", "id": 56, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 56], "rgb_triplet": [235, 87, 255]}, {"name": "Superior olivary complex", "acronym": "SO", "id": 1045, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1045], "rgb_triplet": [128, 128, 128]}, {"name": "Nucleus of the trapezoid body", "acronym": "NTB", "id": 131, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1045, 131], "rgb_triplet": [0, 255, 81]}, {"name": "Superior paraolivary nucleus", "acronym": "SPN", "id": 132, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1045, 132], "rgb_triplet": [0, 238, 255]}, {"name": "Medial superior olive", "acronym": "MSO", "id": 133, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1045, 133], "rgb_triplet": [219, 239, 61]}, {"name": "Lateral superior olive", "acronym": "LSO", "id": 134, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1045, 134], "rgb_triplet": [35, 76, 190]}, {"name": "Superior periolivary region", "acronym": "SPR", "id": 135, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1045, 135], "rgb_triplet": [1, 153, 21]}, {"name": "Ventral periolivary nuclei", "acronym": "VPO", "id": 136, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1045, 136], "rgb_triplet": [0, 174, 255]}, {"name": "Nuclei of the lateral lemniscus", "acronym": "NLL", "id": 1046, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1046], "rgb_triplet": [128, 128, 128]}, {"name": "Lateral lemniscus, ventral nucleus", "acronym": "VLL", "id": 137, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1046, 137], "rgb_triplet": [255, 0, 115]}, {"name": "Lateral lemniscus, intermediate nucleus", "acronym": "ILL", "id": 138, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1046, 138], "rgb_triplet": [171, 16, 91]}, {"name": "Lateral lemniscus, dorsal nucleus", "acronym": "DLL", "id": 139, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 1046, 139], "rgb_triplet": [108, 18, 91]}, {"name": "Inferior olive", "acronym": "IO", "id": 74, "structure_id_path": [10000, 1000, 1013, 1099, 1101, 74], "rgb_triplet": [0, 246, 14]}, {"name": "Ventricular system", "acronym": "V", "id": 1048, "structure_id_path": [10000, 1000, 1048], "rgb_triplet": [114, 126, 186]}, {"name": "ventricular system, unspecified", "acronym": "V-u", "id": 33, "structure_id_path": [10000, 1000, 1048, 33], "rgb_triplet": [2, 44, 255]}, {"name": "4th ventricle", "acronym": "4V", "id": 125, "structure_id_path": [10000, 1000, 1048, 125], "rgb_triplet": [52, 29, 144]}, {"name": "central canal", "acronym": "CC", "id": 70, "structure_id_path": [10000, 1000, 1048, 70], "rgb_triplet": [39, 244, 253]}, {"name": "spinal cord", "acronym": "SpC", "id": 45, "structure_id_path": [10000, 45], "rgb_triplet": [134, 255, 90]}, {"name": "Inner ear", "acronym": "IE", "id": 1049, "structure_id_path": [10000, 1049], "rgb_triplet": [16, 79, 24]}, {"name": "vestibular apparatus", "acronym": "VeA", "id": 119, "structure_id_path": [10000, 1049, 119], "rgb_triplet": [0, 144, 55]}, {"name": "cochlea", "acronym": "Co", "id": 120, "structure_id_path": [10000, 1049, 120], "rgb_triplet": [0, 255, 28]}, {"name": "cochlear nerve", "acronym": "8cn", "id": 121, "structure_id_path": [10000, 1049, 121], "rgb_triplet": [253, 148, 0]}, {"name": "vestibular nerve", "acronym": "8vn", "id": 122, "structure_id_path": [10000, 1049, 122], "rgb_triplet": [253, 50, 0]}, {"name": "spiral ganglion", "acronym": "SpG", "id": 162, "structure_id_path": [10000, 1049, 162], "rgb_triplet": [185, 255, 233]}] \ No newline at end of file diff --git a/API/oursin/atlas/ontology.py b/API/oursin/atlas/ontology.py new file mode 100644 index 00000000..12e46e76 --- /dev/null +++ b/API/oursin/atlas/ontology.py @@ -0,0 +1,353 @@ +from .. import client +from .. import utils +from pathlib import Path + +import json + +class Atlas: + def __init__(self, atlas_name): + # load the ontology structure file + self.atlas_name = atlas_name + self.loaded = False + + current_script_directory = Path(__file__).resolve().parent + + data_file_path = f'{current_script_directory}/data/{atlas_name}.structures.json' + with open(data_file_path,'r') as f: + temp = json.load(f) + + self.areas = [] + for structure_data in temp: + self.areas.append(structure_data['acronym']) + structure_data['color'] = utils.sanitize_color(structure_data['rgb_triplet']) + setattr(self, structure_data['acronym'], Structure(structure_data)) + + def load(self): + """Load this atlas + """ + if self.loaded: + print("(Warning) Atlas was already loaded, the renderer can have issues if you try to load an atlas twice.") + + self.loaded = True + client.sio.emit('LoadAtlas', self.atlas_name) + + def clear(self): + """Clear all visible areas + """ + client.sio.emit('Clear', 'area') + + def load_defaults(self): + """Load the left and right areas + """ + client.sio.emit('LoadDefaultAreas', "") + + def get_areas(self, area_list): + """Get the area objects given a list of area acronyms + + Parameters + ---------- + area_list : list of string + List of acronyms to get objects for + + Returns + ------- + list of areas + + Examples + -------- + >>> area_list = urchin.get_areas(["root", "VISp"]) + """ + areas = [] + for name in area_list: + try: + area = getattr(self, name) + areas.append(area) + except: + print(f'(Warning): Area {name} couldn''t be found in this atlas!') + return areas + + def set_visibilities(self, area_list, area_visibility, side = utils.Side.FULL): + """Set visibility of multiple areas at once + + Parameters + ---------- + area_list : list of string + List of acronyms + area_visibility : list of bool + sided : string, optional + Brain area side to control "full"/"left"/"right", default = "full" + + Examples + -------- + >>> urchin.ccf25.set_visibilities(urchin.ccf25.get_areas(["root", "VISp"]), [True, False]) + >>> urchin.ccf25.set_visibilities(urchin.ccf25.get_areas(["root", "VISp"]), True) + """ + area_visibility = utils.sanitize_list(area_visibility, len(area_list)) + + # output dictionary should match JSON schema AreaData: + #{"acronym": ["a", "b", "c"], "side": [-1, 0, 1], "visible": [true, true, false]} + data_dict = {} + data_dict['acronym'] = [] + data_dict['side'] = [] + data_dict['visible'] = [] + for i, area in enumerate(area_list): + data_dict['acronym'].append(area.acronym) + data_dict['visible'].append(area_visibility[i]) + data_dict['side'].append(side.value) + + client.sio.emit('SetAreaVisibility', json.dumps(data_dict)) + + def set_colors(self, area_list, area_colors, sided="full"): + """Set color of multiple areas at once. + + Parameters + ---------- + area_colors : list of colors (hex string or RGB triplet) + + Examples + -------- + >>> urchin.ccf25.set_visibilities(urchin.ccf25.get_areas(["root", "VISp"]), ['#ff0000', '#00ff00']) + >>> urchin.ccf25.set_visibilities(urchin.ccf25.get_areas(["root", "VISp"]), [255, 255, 255]) + """ + area_colors = utils.sanitize_list(area_colors, len(area_list)) + for i in range(0,len(area_colors)): + area_colors[i] = utils.sanitize_color(area_colors[i]) + + data_dict = {} + for i, area in enumerate(area_list): + area_name = utils.sanitize_side(area.acronym, sided) + data_dict[area_name] = area_colors[i] + + client.sio.emit('SetAreaColors', data_dict) + + def set_colormap(self, colormap_name): + """Set colormap used for mapping area *intensity* values to colors + + + Options are + - cool (default, teal 0 -> magenta 1) + - grey (black 0 -> white 1) + - grey-green (grey 0, light 1/255 -> dark 1) + - grey-purple (grey 0, light 1/255 -> dark 1) + - grey-red (grey 0, light 1/255 -> dark 1) + - grey-rainbow (grey 0, rainbow colors from 1/255 -> 1) + + Parameters + ---------- + colormap_name : string + colormap name + """ + client.sio.emit('SetAreaColormap', colormap_name) + + def set_color_intensity(self, area_list, area_intensities, sided="full"): + """Set intensity values, colors will be set according to the active colormap + + Parameters + ---------- + area_intensities : list of float + 0->1 + + Examples + -------- + >>> urchin.ccf25.set_color_intensity(urchin.ccf25.get_areas(["root", "VISp"]), [0, 1]) + """ + area_intensities = utils.sanitize_list(area_intensities, len(area_list)) + for i in range(0,len(area_intensities)): + area_intensities[i] = utils.sanitize_float(area_intensities[i]) + + data_dict = {} + for i, area in enumerate(area_list): + area_name = utils.sanitize_side(area.acronym, sided) + data_dict[area_name] = area_intensities[i] + + client.sio.emit('SetAreaIntensity', data_dict) + + def set_alphas(self, area_list, area_alphas, sided="full"): + """Set transparency of multiple areas at once. Requires a transparent material. + + Parameters + ---------- + area_alphas : list of float + Alpha ranges from 0->1 + + Examples + -------- + >>> urchin.ccf25.set_alphas(urchin.ccf25.get_areas(["root", "VISp"]), [0.15, 0.15]) + >>> urchin.ccf25.set_alphas(urchin.ccf25.get_areas(["root", "VISp"]), [0.5]) + """ + area_alphas = utils.sanitize_list(area_alphas, len(area_list)) + for i in range(0,len(area_alphas)): + area_alphas[i] = utils.sanitize_float(area_alphas[i]) + + data_dict = {} + for i, area in enumerate(area_list): + area_name = utils.sanitize_side(area.acronym, sided) + data_dict[area_name] = area_alphas[i] + + client.sio.emit('SetAreaAlpha', data_dict) + + def set_materials(self, area_list, area_materials, sided="full"): + """Set material of multiple areas at once. + + Material options are + - 'opaque-lit' or 'default' + - 'opaque-unlit' + - 'transparent-lit' + - 'transparent-unlit' + + Parameters + ---------- + area_colors : dict {string: string} + Keys are area IDs or acronyms, Values are hex colors + + Examples + -------- + >>> urchin.ccf25.set_materials(urchin.ccf25.get_areas(["root", "VISp"]), ['transparent-lit', 'opaque-lit']) + >>> urchin.ccf25.set_materials(urchin.ccf25.get_areas(["root", "VISp"]), ['transparent-lit]) + """ + area_materials = utils.sanitize_list(area_materials, len(area_list)) + for i in range(0,len(area_materials)): + area_materials[i] = utils.sanitize_string(area_materials[i]) + + data_dict = {} + for i, area in enumerate(area_list): + area_name = utils.sanitize_side(area.acronym, sided) + data_dict[area_name] = area_materials[i] + + client.sio.emit('SetAreaMaterial', data_dict) + +class Structure: + """Structure attributes can be accessed as + + >>> structure.name + >>> structure.acronym + >>> structure.id + >>> structure.rgb_triplet + >>> structure.path + """ + def __init__(self, structure_data): + for key, value in structure_data.items(): + setattr(self, key, value) + + def set_test(self): + print(self) + + def set_visibility(self, visibility, sided = utils.Side.FULL): + """Set area visibility + + Parameters + ---------- + visibility : bool + sided : str, optional + "full" "left" or "right, by default "full" + + Examples + -------- + >>> urchin.ccf25.root.set_visibility(True) + >>> urchin.ccf25.root.set_visibility(True, urchin.utils.Side.LEFT) + """ + data_dict = { + 'acronym':[self.acronym], + 'side':[sided.value], + 'visible':[visibility] + } + + client.sio.emit('SetAreaVisibility', json.dumps(data_dict)) + + def set_color(self, color, sided = "full"): + """Set area color. + + Parameters + ---------- + color : hex string + + Examples + -------- + >>> urchin.ccf25.root.set_color('#ff0000') + >>> urchin.ccf25.root.set_color([255, 0, 0], "left") + """ + color = utils.sanitize_color(color) + + area_name = utils.sanitize_side(self.acronym, sided) + + client.sio.emit('SetAreaColors', {area_name:color}) + + def set_intensity(self, intensity, sided = "full"): + """Set color based on the intensity value through the active colormap. + + Parameters + ---------- + intensity : float + 0->1 + + Examples + -------- + >>> urn.set_intensity(0.5) + """ + intensity = utils.sanitize_float(intensity) + area_name = utils.sanitize_side(self.acronym, sided) + + client.sio.emit('SetAreaIntensity', {area_name:intensity}) + + def set_alpha(self, alpha, sided = "full"): + """Set transparency. + + Parameters + ---------- + alpha : float + + Examples + -------- + >>> urchin.ccf25.root.set_alpha(0.15) + >>> urchin.ccf25.root.set_alpha(0.5, "left") + """ + alpha = utils.sanitize_float(alpha) + + area_name = utils.sanitize_side(self.acronym, sided) + + client.sio.emit('SetAreaAlpha', {area_name:alpha}) + + def set_material(self, material, sided = "full"): + """Set material. + + Material options are + - 'opaque-lit' or 'default' + - 'opaque-unlit' + - 'transparent-lit' + - 'transparent-unlit' + + Parameters + ---------- + material: string + + Examples + ---------- + >>> urchin.ccf25.root.set_material('transparent-lit') + """ + material = utils.sanitize_string(material) + + area_name = utils.sanitize_side(self.acronym, sided) + + client.sio.emit('SetAreaMaterial', {area_name:material}) + + # def set_data(area_data): + # """Set the data array for each CCF area model + + # Data arrays work the same as the set_area_intensity() function but are controlled by the area_index value, which can be set in the renderer or through the API. + + # Parameters + # ---------- + # area_data : dict {string: float list} + # keys area IDs or acronyms, values are a list of floats + # """ + # client.sio.emit('SetAreaData', area_data) + + # def set_data_index(area_index): + # """Set the data index for the CCF area models + + # Parameters + # ---------- + # area_index : int + # data index + # """ + # client.sio.emit('SetAreaIndex', area_index) \ No newline at end of file diff --git a/API/oursin/atlas/waxholm.py b/API/oursin/atlas/waxholm.py deleted file mode 100644 index 1bee122f..00000000 --- a/API/oursin/atlas/waxholm.py +++ /dev/null @@ -1,143 +0,0 @@ -""" Waxholm Rat 3D Models""" - -from .. import client - -def load(): - client.sio.emit('LoadAtlas', 'waxholm39') - -# def load_beryl(): -# """Load all beryl areas and set visibility to True - -# NOTE: One of the load functions OR set_area_visibility must be called -# before you set the color/alpha/etc of brain regions. -# """ -# client.sio.emit('LoadDefaultAreas', 'beryl') - -# def load_cosmos(): -# """Load all cosmos areas and set visibility to True - -# NOTE: One of the load functions OR set_area_visibility must be called -# before you set the color/alpha/etc of brain regions. -# """ -# client.sio.emit('LoadDefaultAreas', 'cosmos') - -def set_visibility(area_visibilities): - """Set visibility of CCF area models - - **Note:** you can append a "-lh" or "-rh" suffix to any area acronym or ID to control the visibility of just one-half of the model. This can be used in all of the set_area_* functions. - - Parameters - ---------- - area_visibilities : dict {string : bool} - dictionary of area IDs or acronyms and visibility values - - Examples - -------- - >>> urn.set_visibility({'grey':True}) - >>> urn.set_visibility({8:True}) - >>> urn.set_visibility({'VISp-l':True}) - """ - client.sio.emit('SetAreaVisibility', area_visibilities) - -def set_color(area_colors): - """Set color of CCF area models. - - Parameters - ---------- - area_colors : dict {string: string} - Keys are area IDs or acronyms, Values are hex colors - - Examples - -------- - >>> urn.set_color( {'grey':"#FFFFFF"}) - >>> urn.set_color({8:"#FFFFFF"}) - >>> urn.set_color({"VISp-l":"#00000080"}) - """ - client.sio.emit('SetAreaColors', area_colors) - -def set_intensity(area_intensities): - """Set color of CCF area models using colormap. - - Parameters - ---------- - area_intensities : dict {string: float} - keys are area IDs or acronyms, values are hex colors - - Examples - -------- - >>> urn.set_intensity( {'grey':1.0}) - >>> urn.set_intensity({8:1.0}) - """ - client.sio.emit('SetAreaIntensity', area_intensities) - -def set_colormap(colormap_name): - """Set colormap used for CCF area intensity mapping - - - Options are - - cool (default, teal 0 -> magenta 1) - - grey (black 0 -> white 1) - - grey-green (grey 0, light 1/255 -> dark 1) - - grey-purple (grey 0, light 1/255 -> dark 1) - - grey-red (grey 0, light 1/255 -> dark 1) - - grey-rainbow (grey 0, rainbow colors from 1/255 -> 1) - - Parameters - ---------- - colormap_name : string - colormap name - """ - client.sio.emit('SetAreaColormap', colormap_name) - -def set_alpha(area_alpha): - """Set transparency of CCF area models. - - Parameters - ---------- - area_alpha : dict {string: float} - keys are area IDs or acronyms, values are percent transparency - - Examples - -------- - >>> urn.set_alpha( {'grey':0.5}) - >>> urn.set_alpha({8:0.5}) - """ - client.sio.emit('SetAreaAlpha', area_alpha) - -def set_material(area_materials): - """Set material of CCF area models. - - Material options are - - 'opaque-lit' or 'default' - - 'opaque-unlit' - - 'transparent-lit' - - 'transparent-unlit' - - Parameters - ---------- - area_materials : dict {string: string} - keys are area IDs or acronyms, values are material options - """ - client.sio.emit('SetAreaMaterial', area_materials) - -def set_data(area_data): - """Set the data array for each CCF area model - - Data arrays work the same as the set_area_intensity() function but are controlled by the area_index value, which can be set in the renderer or through the API. - - Parameters - ---------- - area_data : dict {string: float list} - keys area IDs or acronyms, values are a list of floats - """ - client.sio.emit('SetAreaData', area_data) - -def set_data_index(area_index): - """Set the data index for the CCF area models - - Parameters - ---------- - area_index : int - data index - """ - client.sio.emit('SetAreaIndex', area_index) \ No newline at end of file diff --git a/API/oursin/camera.py b/API/oursin/camera.py index b522e45e..ae37d776 100644 --- a/API/oursin/camera.py +++ b/API/oursin/camera.py @@ -3,16 +3,27 @@ from . import client from . import utils +import PIL from PIL import Image import io import json -import numpy as np +import asyncio -receive_fnames = {} receive_totalBytes = {} receive_bytes = {} +receive_camera = {} -def receive_camera_img_meta(data_str): +PIL.Image.MAX_IMAGE_PIXELS = 22500000 + +# Handle receiving camera images back as screenshots +def on_camera_img_meta(data_str): + """Handler for receiving metadata about incoming images + + Parameters + ---------- + data_str : string + JSON with two fields {"name":"", "totalBytes":""} + """ global receive_totalBytes data = json.loads(data_str) @@ -23,10 +34,15 @@ def receive_camera_img_meta(data_str): receive_totalBytes[name] = totalBytes receive_bytes[name] = bytearray() - print(f'(Camera receive meta) {name} receiving {totalBytes} bytes') +def on_camera_img(data_str): + """Handler for receiving data about incoming images -def receive_camera_img(data_str): - global receive_totalBytes, receive_bytes + Parameters + ---------- + data_str : string + JSON with two fields {"name":"", "bytes":""} + """ + global receive_totalBytes, receive_bytes, receive_camera data = json.loads(data_str) @@ -34,60 +50,30 @@ def receive_camera_img(data_str): byte_data = bytes(data["data"]) receive_bytes[name] = receive_bytes[name] + byte_data - - print(f'(Camera receive) {name} receiving {len(byte_data)} bytes') if len(receive_bytes[name]) == receive_totalBytes[name]: - Image.open(io.BytesIO(receive_bytes[name])).save(receive_fnames[name]) - - print(f'(Camera receive) {name} complete') - del receive_fnames[name] - del receive_totalBytes[name] - del receive_bytes[name] + print(f'(Camera receive) Camera {name} received an image') + receive_camera[name].image_received = True ## Camera renderer counter = 0 class Camera: - def __init__(self, target = [0,0,0], position = [0,0,0], preserve_target = True, rotation = [0,0,0], zoom = 1, pan_x = 3, pan_y = 4, mode = "orthographic", controllable = False, main = False): - if(main): - self.id = "CameraMain" - self.in_unity = True + def __init__(self, main = False): + if main: + self.id = 'CameraMain' else: global counter counter += 1 self.id = f'Camera{counter}' client.sio.emit('CreateCamera', [self.id]) - self.in_unity = True - #in theory, the target value can stand for either coordinate or area? (and taking coordinate as default) - # target_coordinate = utils.sanitize_vector3(target) - # self.target = target_coordinate - # client.sio.emit('SetCameraTarget', {self.id: self.target}) - - # position = utils.sanitize_vector3(position) - # self.position = position - # packet = position.copy() - # packet.append(preserve_target) - # client.sio.emit('SetCameraPosition', {self.id: packet}) + self.in_unity = True + self.image_received_event = asyncio.Event() + self.loop = asyncio.get_event_loop() - # rotation = utils.sanitize_vector3(rotation) - # self.rotation = rotation - # client.sio.emit('SetCameraRotation', {self.id: self.rotation}) + self.background_color = '#ffffff' - # self.zoom = zoom - # client.sio.emit('SetCameraZoom', {self.id: self.zoom}) - - # # target_area = utils.sanitize_string(target_area) - # # self.target_area = target_area - # # client.sio.emit('SetCameraTargetArea', self.target_area) - - # self.pan = [pan_x, pan_y] - # client.sio.emit('SetCameraPan', {self.id: self.pan}) - - # self.mode = mode - # client.sio.emit('SetCameraMode', {self.id: self.mode}) - - def create(self,main): + def create(self): """Creates camera Parameters @@ -132,28 +118,29 @@ def set_target_coordinate(self,camera_target_coordinate): self.target = camera_target_coordinate client.sio.emit('SetCameraTarget', {self.id: camera_target_coordinate}) - def set_position(self, position, preserve_target = True): - """Set the camera position in CCF space in um relative to CCF (0,0,0), coordinates can be outside CCF space. + # temporarily removed + # def set_position(self, position, preserve_target = True): + # """Set the camera position in CCF space in um relative to CCF (0,0,0), coordinates can be outside CCF space. - Parameters - ---------- - position : float list - list of coordinates in ml/ap/dv in um - preserve_target : bool, optional - when True keeps the camera aimed at the current target, when False preserves the camera rotation, by default True + # Parameters + # ---------- + # position : float list + # list of coordinates in ml/ap/dv in um + # preserve_target : bool, optional + # when True keeps the camera aimed at the current target, when False preserves the camera rotation, by default True - Examples - -------- - >>> c1.set_position([500,1500,1000]) - """ - if self.in_unity == False: - raise Exception("Camera is not created. Please create camera before calling method.") + # Examples + # -------- + # >>> c1.set_position([500,1500,1000]) + # """ + # if self.in_unity == False: + # raise Exception("Camera is not created. Please create camera before calling method.") - position = utils.sanitize_vector3(position) - self.position = position - packet = position.copy() - packet.append(preserve_target) - client.sio.emit('SetCameraPosition', {self.id: packet}) + # position = utils.sanitize_vector3(position) + # self.position = position + # packet = position.copy() + # packet.append(preserve_target) + # client.sio.emit('SetCameraPosition', {self.id: packet}) def set_rotation(self, rotation): """Set the camera rotation (pitch, yaw, roll). The camera is locked to a target, so this rotation rotates around the target. @@ -162,16 +149,28 @@ def set_rotation(self, rotation): Parameters ---------- - rotation : float list + rotation : float list OR string list of euler angles to set the camera rotation in (pitch, yaw, roll) + OR + string: "axial", "coronal", "sagittal", or "angled" Examples -------- >>> c1.set_rotation([0,0,0]) + >>> c1.set_rotation("angled") """ if self.in_unity == False: raise Exception("Camera is not created. Please create camera before calling method.") + if rotation == 'axial': + rotation = [0,0,0] + elif rotation == 'sagittal': + rotation = [0,90,-90] + elif rotation == 'coronal': + rotation = [-90,0,0] + elif rotation == 'angled': + rotation = [22.5,22.5,225] + rotation = utils.sanitize_vector3(rotation) self.rotation = rotation client.sio.emit('SetCameraRotation', {self.id: rotation}) @@ -321,6 +320,24 @@ def set_mode(self, mode): self.mode = mode client.sio.emit('SetCameraMode', {self.id: mode}) + def set_background_color(self, background_color): + """Set camera background color + + Parameters + ---------- + background_color : hex color string + + Examples + -------- + >>> c1.set_background_color('#000000') # black background + """ + if self.in_unity == False: + raise Exception("Camera is not created. Please create camera before calling method.") + + self.background_color = utils.sanitize_color(background_color) + + client.sio.emit('SetCameraColor', {self.id: self.background_color}) + def set_controllable(self): """Sets camera to controllable @@ -333,32 +350,68 @@ def set_controllable(self): self.controllable = True client.sio.emit('SetCameraControl', self.id) - def screenshot(self, filename, size=[1024,768]): + async def screenshot(self, size=[1024,768], filename = 'return'): """Capture a screenshot Parameters ---------- - filename: string - Filename to save to, relative to local path size : list, optional Size of the screenshot, by default [1024,768] + filename: string, optional + Filename to save to, relative to local path """ - global receive_fnames - print(self.id) - print(filename) - receive_fnames[self.id] = filename + global receive_totalBytes, receive_bytes, receive_camera + self.image_received_event.clear() + self.image_received = False + receive_camera[self.id] = self + + if size[0] > 15000 or size[1] > 15000: + raise Exception('(urchin.camera) Screenshots can''t exceed 15000x15000') + client.sio.emit('RequestCameraImg', json.dumps({"name":self.id, "size":size})) + while not self.image_received: + await asyncio.sleep(0.1) + # await self.image_received_event.wait() + + # image is here, reconstruct it + img = Image.open(io.BytesIO(receive_bytes[self.id])) + + print(f'(Camera receive) {self.id} complete') + del receive_totalBytes[self.id] + del receive_bytes[self.id] + del receive_camera[self.id] + + if not filename == 'return': + img.save(filename) + else: + return img + + def set_light_rotation(angles): - angles = utils.sanitize_vector3(angles) - print(angles) - print(isinstance(angles,list)) - client.sio.emit('SetLightRotation', angles) + """Override the rotation of the main camera light + + Parameters + ---------- + angles : vector3 + Euler angles of light + """ + angles = utils.sanitize_vector3(angles) + print(angles) + print(isinstance(angles,list)) + client.sio.emit('SetLightRotation', angles) def set_light_camera(camera_name = None): - if (camera_name is None): - client.sio.emit('ResetLightLink') - else: - client.sio.emit('SetLightLink', camera_name) + """Change the camera that the main light is linked to (the light will rotate the camera) + + Parameters + ---------- + camera_name : string, optional + Name of camera to attach light to, by default None + """ + if (camera_name is None): + client.sio.emit('ResetLightLink') + else: + client.sio.emit('SetLightLink', camera_name) main = Camera(main = True) \ No newline at end of file diff --git a/API/oursin/client.py b/API/oursin/client.py index 1d675ac5..8bb8ca5a 100644 --- a/API/oursin/client.py +++ b/API/oursin/client.py @@ -1,7 +1,7 @@ """Client for communicating with the echo server""" import socketio -import os import uuid +import asyncio from . import camera @@ -33,13 +33,17 @@ def message(data): def message(data): print('(Renderer) ' + bcolors.FAIL + data) -@sio.on('ReceiveCameraImgMeta') +###### CALLBACKS ####### + +@sio.on('CameraImgMeta') def receive_camera_img_meta(data): - camera.receive_camera_img_meta(data) + camera.on_camera_img_meta(data) -@sio.on('ReceiveCameraImg') +@sio.on('CameraImg') def receive_camera_img(data): - camera.receive_camera_img(data) + camera.on_camera_img(data) + +# Helper functions def connected(): return sio.connected @@ -57,4 +61,4 @@ def change_id(newID): New ID to connect with """ sio.emit('ID',[newID,"send"]) - print(f'Login sent with ID: {newID}, copy this ID into the renderer to connect.') \ No newline at end of file + print(f'Login sent with ID: {newID}, copy this ID into the renderer to connect.') diff --git a/API/oursin/primitives.py b/API/oursin/meshes.py similarity index 99% rename from API/oursin/primitives.py rename to API/oursin/meshes.py index 70d479e6..b9393331 100644 --- a/API/oursin/primitives.py +++ b/API/oursin/meshes.py @@ -6,7 +6,7 @@ ## Primitive Mesh Renderer counter = 0 -class Primitive: +class Mesh: #Run everytime an object is created, sets the fields to defaults if one is not given, and sends the info to Unity #id = int index counter def __init__(self,position= [0.0,0.0,0.0], scale= [1,1,1], color= '#FFFFFF', material = 'default'): @@ -160,7 +160,7 @@ def create(num_objects): """ prim_names = [] for i in range(num_objects): - prim_names.append(Primitive()) + prim_names.append(Mesh()) return(prim_names) def delete(meshes_list): diff --git a/API/oursin/neurons.py b/API/oursin/neurons.py deleted file mode 100644 index 4aa30764..00000000 --- a/API/oursin/neurons.py +++ /dev/null @@ -1,336 +0,0 @@ -"""Neurons""" - -from . import client -import warnings -from . import utils - -## Neurons renderer -counter = 0 -class Neuron: - def __init__(self, position= [0.0,0.0,0.0], color= '#FFFFFF', size= 0.02, shape= 'sphere', material= 'lit-transparent'): - self.create() - - # position = utils.sanitize_vector3(position) - # self.position = position - # client.sio.emit('SetNeuronPos', {self.id: position}) - - # color = utils.sanitize_color(color) - # self.color = color - # client.sio.emit('SetNeuronColor',{self.id: color}) - - # size = utils.sanitize_float(size) - # self.size = size - # client.sio.emit('SetNeuronSize',{self.id: size}) - - # shape = utils.sanitize_string(shape) - # self.shape = shape - # client.sio.emit('SetNeuronShape',{self.id: shape}) - - # material = utils.sanitize_material(material) - # self.material = material - # client.sio.emit('SetNeuronMaterial',{self.id: material}) - - def create(self): - """Creates neurons - - Parameters - ---------- - none - - Examples - >>>n1 = urchin.neurons.Neuron() - """ - global counter - counter += 1 - self.id = 'n' + str(counter) - client.sio.emit('CreateNeurons', [self.id]) - self.in_unity = True - - def delete(self): - """Deletes neurons - - Parameters - ---------- - references object being deleted - - Examples - >>>n1.delete() - """ - client.sio.emit('DeleteNeurons', [self.id]) - self.in_unity = False - - def set_position(self, position): - """Set the position of neuron position in ap/ml/dv coordinates relative to the CCF (0,0,0) point - - Parameters - ---------- - position : list of three floats - vertex positions of the neuron relative to the CCF point in um - - Examples - -------- - >>>n1.set_position([2,2,2]) - """ - if self.in_unity == False: - raise Exception("Neuron does not exist in Unity, call create method first.") - - position = utils.sanitize_vector3(position) - self.position = position - client.sio.emit('SetNeuronPos', {self.id: position}) - - def set_size(self, size): - """Set the size of neuron renderer - - Parameters - ---------- - size : float - size of the neuron - - Examples - -------- - >>>n1.set_size(0.02) - """ - if self.in_unity == False: - raise Exception("Neuron does not exist in Unity, call create method first.") - - size = utils.sanitize_float(size) - self.size = size - client.sio.emit('SetNeuronSize', {self.id: size}) - - def set_color(self, color): - """Set the color of neuron renderer - - Parameters - ---------- - color : string hex color - new hex color of the neuron - - Examples - -------- - >>>n1.set_color('#FFFFFF') - """ - if self.in_unity == False: - raise Exception("Neuron does not exist in Unity, call create method first.") - - color = utils.sanitize_color(color) - self.color = color - client.sio.emit('SetNeuronColor', {self.id: color}) - - def set_shape(self, shape): - """Set the shape of neuron renderer - Options are - - 'sphere' (default) - - 'cube' better performance when rendering tens of thousands of neurons - - Parameters - ---------- - shape : string - new shape of the neuron - - Examples - -------- - >>>n1.set_shape('sphere') - """ - if self.in_unity == False: - raise Exception("Neuron does not exist in Unity, call create method first.") - - self.shape = shape - client.sio.emit('SetNeuronShape', {self.id: shape}) - - def set_material(self, material): - """Set the material of neuron renderer - Options are - - 'lit-transparent' (default) - - 'lit' - - 'unlit' - - Parameters - ---------- - material : string - new material of the neuron - - Examples - -------- - >>>n1.set_material('lit-transparent') - """ - if self.in_unity == False: - raise Exception("Neuron does not exist in Unity, call create method first.") - - self.material = material - client.sio.emit('SetNeuronMaterial', {self.id: material}) - -def create(num_neurons): - """Create neuron objects - - Note: neurons must be created before setting other values - - Parameters - ---------- - num_neurons : int - number of new neuron objects - - Examples - -------- - >>> neurons = urchin.neurons.create(3) - """ - neuron_names = [] - for i in range(num_neurons): - neuron_names.append(Neuron()) - return neuron_names - -def delete(neurons_list): - """Delete neuron objects - - Parameters - ---------- - neuron_names : list of neuron objects - list of neurons being deleted - - Examples - -------- - >>> urchin.neurons.delete() - """ - neurons_list = utils.sanitize_list(neurons_list) - - neurons_ids = [x.id for x in neurons_list] - client.sio.emit('DeleteNeurons', neurons_ids) - -def set_positions(neurons_list, positions_list): - """Set the position of neuron position in ml/ap/dv coordinates relative to the CCF (0,0,0) point - - Parameters - ---------- - neurons_list : list of neuron objects - list of neurons being moved - positions : list of list of three floats - list of positions of neurons - - Examples - -------- - >>> urchin.neurons.set_positions([n1,n2,n3], [[1,1,1],[2,2,2],[3,3,3]]) - """ - neurons_list = utils.sanitize_list(neurons_list) - positions_list = utils.sanitize_list(positions_list) - - neurons_pos = {} - for i in range(len(neurons_list)): - neuron = neurons_list[i] - if neuron.in_unity: - neurons_pos[neuron.id] = utils.sanitize_vector3(positions_list[i]) - else: - warnings.warn(f"Neuron with id {neuron.id} does not exist in Unity, call create method first.") - client.sio.emit('SetNeuronPos', neurons_pos) - -def set_sizes(neurons_list, sizes_list): - """Set neuron sizes - - Parameters - ---------- - neurons_list : list of neuron objects - list of neurons being resized - sizes : list of floats - list of sizes of neurons - - Examples - -------- - >>> urchin.neurons.set_sizes([n1,n2,n3], [0.01,0.02,0.03]) - """ - neurons_list = utils.sanitize_list(neurons_list) - sizes_list = utils.sanitize_list(sizes_list) - - neurons_sizes = {} - for i in range(len(neurons_list)): - neuron = neurons_list[i] - if neuron.in_unity: - neurons_sizes[neuron.id] = utils.sanitize_float(sizes_list[i]) - else: - warnings.warn(f"Neuron with id {neuron.id} does not exist in Unity, call create method first.") - client.sio.emit('SetNeuronSize', neurons_sizes) - -def set_colors(neurons_list, colors_list): - """Set neuron colors - - Parameters - ---------- - neurons_list : list of neuron objects - list of neurons being recolored - colors : list of string hex colors - list of colors of neurons - - Examples - -------- - >>> urchin.neurons.set_colors([n1,n2,n3], ['#FFFFFF','#000000','#FF0000']) - """ - neurons_list = utils.sanitize_list(neurons_list) - colors_list = utils.sanitize_list(colors_list) - - neurons_colors = {} - for i in range(len(neurons_list)): - neuron = neurons_list[i] - if neuron.in_unity: - neurons_colors[neuron.id] = utils.sanitize_color(colors_list[i]) - else: - warnings.warn(f"Neuron with id {neuron.id} does not exist in Unity, call create method first.") - client.sio.emit('SetNeuronColor', neurons_colors) - -def set_shapes(neurons_list, shapes_list): - """Set neuron shapes - - Options are - - 'sphere' (default) - - 'cube' better performance when rendering tens of thousands of neurons - - Parameters - ---------- - neurons_list : list of neuron objects - list of neurons being reshaped - shapes : list of string - list of shapes of neurons - - Examples - -------- - >>> urchin.neurons.set_shapes([n1,n2,n3], ['sphere','cube','sphere']) - """ - neurons_list = utils.sanitize_list(neurons_list) - shapes_list = utils.sanitize_list(shapes_list) - - neurons_shapes = {} - for i in range(len(neurons_list)): - neuron = neurons_list[i] - if neuron.in_unity: - neurons_shapes[neuron.id] = shapes_list[i] - else: - warnings.warn(f"Neuron with id {neuron.id} does not exist in Unity, call create method first.") - client.sio.emit('SetNeuronShape', neurons_shapes) - -def set_materials(neurons_list, materials_list): - """Change the material used to render neurons - - Options are - - 'lit-transparent' (default) - - 'lit' - - 'unlit' - - Parameters - ---------- - neurons_list : list of neuron objects - list of neurons being rematerialized - materials : list of string - list of materials of neurons - - Examples - -------- - >>> urchin.neurons.set_materials([n1,n2,n3], ['lit','unlit','lit']) - """ - neurons_list = utils.sanitize_list(neurons_list) - materials_list = utils.sanitize_list(materials_list) - - neurons_materials = {} - for i in range(len(neurons_list)): - neuron = neurons_list[i] - if neuron.in_unity: - neurons_materials[neuron.id] = utils.sanitize_material(materials_list[i]) - else: - warnings.warn(f"Neuron with id {neuron.id} does not exist in Unity, call create method first.") - client.sio.emit('SetNeuronMaterial', neurons_materials) - diff --git a/API/oursin/particles.py b/API/oursin/particles.py new file mode 100644 index 00000000..b2ecff92 --- /dev/null +++ b/API/oursin/particles.py @@ -0,0 +1,280 @@ +"""Particles""" + +from . import client +import warnings +from . import utils + +## Particle system +counter = 0 +class Particle: + """Particles should not be directly instantiated, use urchin.particles.create(n) and urchin.clear_particles() + """ + def __init__(self): + pass + + def set_position(self, position): + """Set the position of a particle in ap/ml/dv coordinates relative to the origin (0,0,0) + + Parameters + ---------- + position : list of three floats + + Examples + -------- + >>>p1.set_position([5.2,5.7,0.33]) # set a particle to Bregma, in CCF space + """ + if self.in_unity == False: + raise Exception("Particle does not exist in Unity, call create method first.") + + position = utils.sanitize_vector3(position) + self.position = position + client.sio.emit('SetParticlePos', {self.id: position}) + + def set_size(self, size): + """Set the size of a particle + + Parameters + ---------- + size : float + + Examples + -------- + >>>p1.set_size(0.02) # 20 um + """ + if self.in_unity == False: + raise Exception("Particle does not exist in Unity, call create method first.") + + size = utils.sanitize_float(size) + self.size = size + client.sio.emit('SetParticleSize', {self.id: size}) + + def set_color(self, color): + """Set the color of a particle + + Parameters + ---------- + color : string hex color + + Examples + -------- + >>>p1.set_color('#FFFFFF') + """ + if self.in_unity == False: + raise Exception("Particle does not exist in Unity, call create method first.") + + color = utils.sanitize_color(color) + self.color = color + client.sio.emit('SetParticleColor', {self.id: color}) + + # todo: re-implement shape and material when we move to ParticleGroup instead of single Particle objects + + # def set_shape(self, shape): + # """Set the shape of a particle + # Options are + # - 'sphere' (default) + # - 'cube' better performance when rendering tens of thousands of neurons + + # Parameters + # ---------- + # shape : string + # new shape of the neuron + + # Examples + # -------- + # >>>p1.set_shape('sphere') + # """ + # if self.in_unity == False: + # raise Exception("Particle does not exist in Unity, call create method first.") + + # self.shape = shape + # client.sio.emit('SetNeuronShape', {self.id: shape}) + + # def set_material(self, material): + # """Set the material of neuron renderer + # Options are + # - 'lit-transparent' (default) + # - 'lit' + # - 'unlit' + + # Parameters + # ---------- + # material : string + # new material of the neuron + + # Examples + # -------- + # >>>p1.set_material('lit-transparent') + # """ + # if self.in_unity == False: + # raise Exception("Particle does not exist in Unity, call create method first.") + + # self.material = material + # client.sio.emit('SetNeuronMaterial', {self.id: material}) + +def create(num_particles): + """Create particles + + Note: particles must be created before setting other values + + Parameters + ---------- + num_particles : int + + Examples + -------- + >>> neurons = urchin.particles.create(3) + """ + global counter + neurons = [] + for i in range(num_particles): + counter += 1 + particle = Particle() + particle.id = f'n{str(counter)}' + particle.in_unity = True + neurons.append(particle) + + client.sio.emit('CreateParticles', [x.id for x in neurons]) + return neurons + +def clear(): + """Clear all particles + + Note that there is no delete method for individual particles, they must all be cleared at once. + """ + client.sio.emit('Clear', 'particle') + +def set_positions(particles_list, positions_list): + """Set the position of particles in ap/ml/dv coordinates relative to the origin + + Parameters + ---------- + particles_list : list of Particle + positions_list : list of list of three floats + list of positions of neurons + + Examples + -------- + >>> urchin.particles.set_positions([p1,p2,p3], [[1,1,1],[2,2,2],[3,3,3]]) + """ + particles_list = utils.sanitize_list(particles_list) + positions_list = utils.sanitize_list(positions_list) + + neuron_positions = {} + for i in range(len(particles_list)): + neuron = particles_list[i] + if neuron.in_unity: + neuron_positions[neuron.id] = utils.sanitize_vector3(positions_list[i]) + else: + warnings.warn(f"Particle with id {neuron.id} does not exist in Unity, call create method first.") + client.sio.emit('SetParticlePos', neuron_positions) + +def set_sizes(particles_list, sizes_list): + """Set particles sizes + + Parameters + ---------- + particles_list : list of Particle + sizes_list : list of float + + Examples + -------- + >>> urchin.particles.set_sizes([p1,n2,n3], [0.01,0.02,0.03]) + """ + particles_list = utils.sanitize_list(particles_list) + sizes_list = utils.sanitize_list(sizes_list) + + neurons_sizes = {} + for i in range(len(particles_list)): + neuron = particles_list[i] + if neuron.in_unity: + neurons_sizes[neuron.id] = utils.sanitize_float(sizes_list[i]) + else: + warnings.warn(f"Particle with id {neuron.id} does not exist in Unity, call create method first.") + client.sio.emit('SetParticleSize', neurons_sizes) + +def set_colors(particles_list, colors_list): + """Set neuron colors + + Parameters + ---------- + particles_list : list of Particle + colors_list : list of string hex colors + list of colors of neurons + + Examples + -------- + >>> urchin.particles.set_colors([p1,n2,n3], ['#FFFFFF','#000000','#FF0000']) + """ + particles_list = utils.sanitize_list(particles_list) + colors_list = utils.sanitize_list(colors_list) + + neurons_colors = {} + for i in range(len(particles_list)): + neuron = particles_list[i] + if neuron.in_unity: + neurons_colors[neuron.id] = utils.sanitize_color(colors_list[i]) + else: + warnings.warn(f"Particle with id {neuron.id} does not exist in Unity, call create method first.") + client.sio.emit('SetParticleColor', neurons_colors) + +# def set_shapes(neurons_list, shapes_list): +# """Set neuron shapes + +# Options are +# - 'sphere' (default) +# - 'cube' better performance when rendering tens of thousands of neurons + +# Parameters +# ---------- +# neurons_list : list of neuron objects +# list of neurons being reshaped +# shapes : list of string +# list of shapes of neurons + +# Examples +# -------- +# >>> urchin.neurons.set_shapes([p1,n2,n3], ['sphere','cube','sphere']) +# """ +# neurons_list = utils.sanitize_list(neurons_list) +# shapes_list = utils.sanitize_list(shapes_list) + +# neurons_shapes = {} +# for i in range(len(neurons_list)): +# neuron = neurons_list[i] +# if neuron.in_unity: +# neurons_shapes[neuron.id] = shapes_list[i] +# else: +# warnings.warn(f"Neuron with id {neuron.id} does not exist in Unity, call create method first.") +# client.sio.emit('SetNeuronShape', neurons_shapes) + +# def set_materials(neurons_list, materials_list): +# """Change the material used to render neurons + +# Options are +# - 'lit-transparent' (default) +# - 'lit' +# - 'unlit' + +# Parameters +# ---------- +# neurons_list : list of neuron objects +# list of neurons being rematerialized +# materials : list of string +# list of materials of neurons + +# Examples +# -------- +# >>> urchin.neurons.set_materials([p1,n2,n3], ['lit','unlit','lit']) +# """ +# neurons_list = utils.sanitize_list(neurons_list) +# materials_list = utils.sanitize_list(materials_list) + +# neurons_materials = {} +# for i in range(len(neurons_list)): +# neuron = neurons_list[i] +# if neuron.in_unity: +# neurons_materials[neuron.id] = utils.sanitize_material(materials_list[i]) +# else: +# warnings.warn(f"Neuron with id {neuron.id} does not exist in Unity, call create method first.") +# client.sio.emit('SetNeuronMaterial', neurons_materials) + diff --git a/API/oursin/probes.py b/API/oursin/probes.py index c663f8b0..84cdea38 100644 --- a/API/oursin/probes.py +++ b/API/oursin/probes.py @@ -81,12 +81,12 @@ def set_color(self,color): client.sio.emit('SetProbeColors', {self.id:color}) def set_position(self, probe_positions): - """Set probe tip position in ml/ap/dv coordinates in um relative to the CCF (0,0,0) point + """Set probe tip position in AP/ML/DV coordinates in um relative to the zero coordinate (front, top, left) Parameters ---------- - probe_positions : float list - value is list of floats in ml/ap/dv in um + probe_positions : vector3 + value is list of floats in AP/ML/DV in um Examples -------- @@ -95,9 +95,8 @@ def set_position(self, probe_positions): if self.in_unity == False: raise Exception("Object does not exist in Unity, call create method first.") - probe_positions = utils.sanitize_vector3(probe_positions) - self.position = probe_positions - client.sio.emit('SetProbePos', {self.id:probe_positions}) + self.position = utils.sanitize_vector3(probe_positions) + client.sio.emit('SetProbePos', {self.id:[self.position[0]/1000, self.position[1]/1000, self.position[2]/1000]}) def set_angle(self, probe_angles): """Set probe azimuth/elevation/spin angles in degrees @@ -218,17 +217,17 @@ def set_colors(probes_list, colors_list): client.sio.emit('SetProbeColors', probe_colors) def set_positions(probes_list, positions_list): - """Set probe tip position in ml/ap/dv coordinates in um relative to the CCF (0,0,0) point + """Set probe tip positions in AP/ML/DV coordinates in um relative to the zero point (front, left, top) + Parameters ---------- - probes_list : list of probe objects - list of probes being set - positions_list : list of list of three floats - vertex positions of each probe in ml/ap/dv in um + probes_list : list of Probe + positions_list : list of vector3 + tip coordinate in AP/ML/DV in um Examples -------- - >>> urchin.probes.set_positions(probes,[[3,3,3],[2,2,2]]) + >>> urchin.probes.set_positions(probes,[[1000,2000,1000],[2000,2000,2000]]) """ probes_list = utils.sanitize_list(probes_list) positions_list = utils.sanitize_list(positions_list) @@ -237,7 +236,8 @@ def set_positions(probes_list, positions_list): for i in range(len(probes_list)): probe = probes_list[i] if probe.in_unity: - probe_pos[probe.id] = utils.sanitize_vector3(positions_list[i]) + pos = utils.sanitize_vector3(positions_list[i]) + probe_pos[probe.id] = [pos[0]/1000, pos[1]/1000, pos[2]/1000] else: warnings.warn(f"Object with id {probe.id} does not exist. Please create object {probe.id}.") diff --git a/API/oursin/renderer.py b/API/oursin/renderer.py index f94d0f68..1d8467a8 100644 --- a/API/oursin/renderer.py +++ b/API/oursin/renderer.py @@ -60,32 +60,22 @@ def clear(): """ client.sio.emit('Clear', 'all') -def clear_neurons(): - """Clear all neuron objects - """ - client.sio.emit('Clear', 'neurons') - def clear_probes(): """Clear all probe objects """ - client.sio.emit('Clear', 'probes') - -def clear_areas(): - """Clear all CCF area models - """ - client.sio.emit('Clear', 'areas') + client.sio.emit('Clear', 'probe') def clear_volumes(): """Clear all 3D volumes """ - client.sio.emit('Clear', 'volumes') + client.sio.emit('Clear', 'volume') def clear_texts(): """Clear all text """ - client.sio.emit('Clear', 'texts') + client.sio.emit('Clear', 'text') -def clear_primitives(): +def clear_meshes(): """Clear all primitives """ - client.sio.emit('Clear','primitives') \ No newline at end of file + client.sio.emit('Clear','mesh') \ No newline at end of file diff --git a/API/oursin/text.py b/API/oursin/text.py index 8a2bda4b..e9fa5748 100644 --- a/API/oursin/text.py +++ b/API/oursin/text.py @@ -109,7 +109,7 @@ def set_font_size(self,text_size): self.size = text_size client.sio.emit('SetTextSizes',{self.id: text_size}) - def set_position(self,text_pos): + def set_position(self,position): """Set the positions of a set of text objects in UI canvas space Bottom left corner is [-1,-1], top right [1,1] @@ -126,9 +126,8 @@ def set_position(self,text_pos): """ if self.in_unity == False: raise Exception("Object does not exist in Unity, call create method first.") - position = utils.sanitize_list(position) - self.position = position - client.sio.emit('SetTextPositions',{self.id: position}) + self.position = utils.sanitize_list(position) + client.sio.emit('SetTextPositions',{self.id: self.position}) def create(n): diff --git a/API/oursin/utils.py b/API/oursin/utils.py index bb3b54c9..cc5c9944 100644 --- a/API/oursin/utils.py +++ b/API/oursin/utils.py @@ -1,5 +1,14 @@ """Sanitizing inputs to send through API""" import numpy as np +from enum import Enum + +### ENUMS +class Side(Enum): + LEFT = -1 + FULL = 0 + RIGHT = 1 + +### SANITIZING FUNCTIONS def sanitize_vector3(vector): """Guarantee that a vector is a vector 3, or raise an exception @@ -65,7 +74,10 @@ def sanitize_float(value): if isinstance(value, float): return value else: - raise Exception("Parameter needs to be passed as a float.") + try: + return float(value) + except: + raise Exception("Value could not be coerced to a float.") def sanitize_material(material): if isinstance(material, str): @@ -74,14 +86,25 @@ def sanitize_material(material): raise Exception("Material is not properly passed in as a string. Please pass in material as a string.") def sanitize_list(input, length=0): - # resize to match list size - if length > 0 and len(input) != length: - input = input * length + """Guarantee that a list is of at least size length, or try to broadcast to that size - if isinstance(input,list): - return input - else: - return(list(input)) + Parameters + ---------- + input : list + length : int, optional + length to broadcast to, by default 0 + + Returns + ------- + list + """ + if length > 0 and not isinstance(input, list): + input = [input] * length + + if not isinstance(input, list): + raise Exception("List parameter needs to be a list.") + + return input def sanitize_string(string): if isinstance(string, str): @@ -106,3 +129,12 @@ def sanitize_extension(file_name): #NOT VERIFIED return(file_name) else: raise Exception("The file name is not valid. Please make sure the file name is valid.") +def sanitize_side(acronym, sided): + if sided == "full": + return acronym + elif sided == "left": + return f'{acronym}-lh' + elif sided == "right": + return f'{acronym}-rh' + else: + raise Exception(f'Sided enum {sided} not properly defined, should be full/left/right') diff --git a/API/pyproject.toml b/API/pyproject.toml index 59fad26e..030e8acc 100644 --- a/API/pyproject.toml +++ b/API/pyproject.toml @@ -1,29 +1,31 @@ [build-system] -requires = ["setuptools"] -build-backend = "setuptools.build_meta" +requires = ["poetry-core>=1.0.0"] +build-backend = "poetry.core.masonry.api" - -[project] +[tool.poetry] name = "oursin" -version = "0.4.11" -authors = [ - { name="Daniel Birman", email="danbirman@gmail.com" }, -] +version = "0.5.0" description = "Urchin - Universal Renderer Creating Helpful Images for Neuroscience Python API" readme = "README.md" -license = { file="LICENSE" } -requires-python = ">=3.7" +authors = [ + "Daniel Birman " +] +license = "MIT" classifiers = [ "Programming Language :: Python :: 3", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ] -dependencies = [ - "python-socketio[client] >= 5.8,< 5.10", - "numpy >= 1.24.3,< 1.27.0", - "Pillow >= 9.5,< 10.1" -] +include = ["atlas/data/*.json"] + +[tool.poetry.dependencies] +python = ">=3.8, <4.0" +python-socketio = { version = ">=5.8, <5.11", extras = ["client"] } +numpy = ">=1.24.3, <1.27.0" +Pillow = ">=9.5, <10.2" + +[tool.poetry.scripts] -[project.urls] -"Homepage" = "https://virtualbrainlab.org/urchin/installation_and_use.html" -"Bug Tracker" = "https://github.com/VirtualBrainLab/Urchin/issues" \ No newline at end of file +[tool.poetry.urls] +homepage = "https://virtualbrainlab.org/urchin/installation_and_use.html" +repository = "https://github.com/VirtualBrainLab/Urchin" \ No newline at end of file diff --git a/README.md b/README.md index 13f16054..ded4cefe 100644 --- a/README.md +++ b/README.md @@ -6,18 +6,11 @@ urchin Universal Renderer Creating Helpful Images for Neuroscience (Urchin) is a python package that links your analysis scripts to a standalone brain renderer program, to create graphics like the ones below. -# Gallery -

- - - -

-

- +

-# Quickstart +## Quickstart To install the package run `pip install oursin`. To get started open a Python terminal and run: @@ -26,37 +19,20 @@ import oursin as urchin urchin.setup() ``` -## Examples - -Head over to [urchin-examples/basics](https://github.com/VirtualBrainLab/urchin-examples/tree/colab/basics) to find tutorials that introduce the functionality in Urchin. +### Tutorials -To get you started, try running the code below to load the root brain model. - -### Render all Allen CCF areas -``` -urchin.ccf.load_beryl() -``` +We have many [tutorials](https://virtualbrainlab.org/urchin/tutorial.html) available that introduce the functionality in Urchin. -### Render the root area - -``` -urchin.ccf.set_visibility({"grey":True}) -urchin.ccf.set_material({"grey":"transparent-lit"}) -urchin.ccf.set_alpha({"grey":0.25}) -``` - -# Documentation +### Documentation For detailed instructions please see the [documentation](https://virtualbrainlab.org/urchin/installation_and_use.html). -# Urchin for Unity +## Urchin for Unity The Urchin package can be embedded into a Unity application by adding the package: https://github.com/VirtualBrainLab/Urchin.git?path=/UnityClient/Packages/vbl.urchin -# Citing +## Citing [![DOI](https://zenodo.org/badge/460577328.svg)](https://zenodo.org/badge/latestdoi/460577328) If Urchin is used as part of a research project you should cite this repository. We've created a DOI for this purpose on Zenodo. Your citations will help us get grant support for this project in the future! - -These materials are not sponsored by or affiliated with Unity Technologies or its affiliates. “Unity” is a trademark or registered trademark of Unity Technologies or its affiliates in the U.S. and elsewhere. diff --git a/Server/package-lock.json b/Server/package-lock.json index c18cae82..ae846311 100644 --- a/Server/package-lock.json +++ b/Server/package-lock.json @@ -14,18 +14,10 @@ "socket.io": "^4.4.1" } }, - "node_modules/@socket.io/base64-arraybuffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", - "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/@types/component-emitter": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", - "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==" + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" }, "node_modules/@types/cookie": { "version": "0.4.1", @@ -33,22 +25,28 @@ "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" }, "node_modules/@types/cors": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" + "version": "2.8.15", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.15.tgz", + "integrity": "sha512-n91JxbNLD8eQIuXDIChAN1tCKNWCEgpceU9b7ZMbFA+P+Q4yIeh80jizFLEvolRPc1ES0VdwFlGv+kJTSirogw==", + "dependencies": { + "@types/node": "*" + } }, "node_modules/@types/node": { - "version": "17.0.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.12.tgz", - "integrity": "sha512-4YpbAsnJXWYK/fpTVFlMIcUIho2AYCi4wg5aNPrG1ng7fn/1/RZfCIpRCiBX+12RVa34RluilnvCqD+g3KiSiA==" + "version": "20.8.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.10.tgz", + "integrity": "sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==", + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" }, "engines": { "node": ">= 0.6" @@ -68,37 +66,48 @@ } }, "node_modules/body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dependencies": { - "bytes": "3.1.1", + "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", - "type-is": "~1.6.18" + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, "node_modules/bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "engines": { "node": ">= 0.8" } }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/content-disposition": { "version": "0.5.4", @@ -112,17 +121,17 @@ } }, "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "engines": { "node": ">= 0.6" } }, "node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "engines": { "node": ">= 0.6" } @@ -152,36 +161,53 @@ "ms": "2.0.0" } }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "engines": { "node": ">= 0.8" } }, "node_modules/engine.io": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.2.tgz", - "integrity": "sha512-v/7eGHxPvO2AWsksyx2PUsQvBafuvqs0jJJQ0FdmJG1b9qIvgSbqDRGwNhfk2XHaTTbTXiC4quRE8Q9nRjsrQQ==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.3.tgz", + "integrity": "sha512-IML/R4eG/pUS5w7OfcDE0jKrljWS9nwnEfsxWCIJF5eO6AHo6+Hlv+lQbdlAYsiJPHzUthLm1RUjnBzWOs45cw==", "dependencies": { "@types/cookie": "^0.4.1", "@types/cors": "^2.8.12", @@ -191,28 +217,33 @@ "cookie": "~0.4.1", "cors": "~2.8.5", "debug": "~4.3.1", - "engine.io-parser": "~5.0.0", - "ws": "~8.2.3" + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=10.2.0" } }, "node_modules/engine.io-parser": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", - "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", - "dependencies": { - "@socket.io/base64-arraybuffer": "~1.0.2" - }, + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", + "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", "engines": { "node": ">=10.0.0" } }, + "node_modules/engine.io/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/engine.io/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { "ms": "2.1.2" }, @@ -233,48 +264,49 @@ "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "engines": { "node": ">= 0.6" } }, "node_modules/express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dependencies": { - "accepts": "~1.3.7", + "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.1", + "body-parser": "1.20.1", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.1", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.6", + "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", + "send": "0.18.0", + "serve-static": "1.15.0", "setprototypeof": "1.2.0", - "statuses": "~1.5.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -284,16 +316,16 @@ } }, "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" }, "engines": { @@ -311,24 +343,101 @@ "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "engines": { "node": ">= 0.6" } }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dependencies": { - "depd": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", + "statuses": "2.0.1", "toidentifier": "1.0.1" }, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/iconv-lite": { @@ -358,7 +467,7 @@ "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "engines": { "node": ">= 0.6" } @@ -388,19 +497,19 @@ } }, "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dependencies": { - "mime-db": "1.51.0" + "mime-db": "1.52.0" }, "engines": { "node": ">= 0.6" @@ -409,12 +518,12 @@ "node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "engines": { "node": ">= 0.6" } @@ -427,10 +536,18 @@ "node": ">=0.10.0" } }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dependencies": { "ee-first": "1.1.1" }, @@ -464,9 +581,12 @@ } }, "node_modules/qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, "engines": { "node": ">=0.6" }, @@ -483,12 +603,12 @@ } }, "node_modules/raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dependencies": { - "bytes": "3.1.1", - "http-errors": "1.8.1", + "bytes": "3.1.2", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, @@ -521,23 +641,23 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dependencies": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "engines": { "node": ">= 0.8.0" @@ -549,52 +669,82 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.2" + "send": "0.18.0" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/socket.io": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz", - "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.2.tgz", + "integrity": "sha512-bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw==", "dependencies": { "accepts": "~1.3.4", "base64id": "~2.0.0", + "cors": "~2.8.5", "debug": "~4.3.2", - "engine.io": "~6.1.0", - "socket.io-adapter": "~2.3.3", - "socket.io-parser": "~4.0.4" + "engine.io": "~6.5.2", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" }, "engines": { - "node": ">=10.0.0" + "node": ">=10.2.0" } }, "node_modules/socket.io-adapter": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", - "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==" + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", + "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", + "dependencies": { + "ws": "~8.11.0" + } }, "node_modules/socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", "dependencies": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", + "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1" }, "engines": { @@ -602,9 +752,9 @@ } }, "node_modules/socket.io-parser/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { "ms": "2.1.2" }, @@ -644,11 +794,11 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/toidentifier": { @@ -671,10 +821,15 @@ "node": ">= 0.6" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "engines": { "node": ">= 0.8" } @@ -696,9 +851,9 @@ } }, "node_modules/ws": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "engines": { "node": ">=10.0.0" }, @@ -717,15 +872,10 @@ } }, "dependencies": { - "@socket.io/base64-arraybuffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@socket.io/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", - "integrity": "sha512-dOlCBKnDw4iShaIsH/bxujKTM18+2TOAsYz+KSc11Am38H4q5Xw8Bbz97ZYdrVNM+um3p7w86Bvvmcn9q+5+eQ==" - }, - "@types/component-emitter": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", - "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==" + "@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" }, "@types/cookie": { "version": "0.4.1", @@ -733,22 +883,28 @@ "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" }, "@types/cors": { - "version": "2.8.12", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", - "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==" + "version": "2.8.15", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.15.tgz", + "integrity": "sha512-n91JxbNLD8eQIuXDIChAN1tCKNWCEgpceU9b7ZMbFA+P+Q4yIeh80jizFLEvolRPc1ES0VdwFlGv+kJTSirogw==", + "requires": { + "@types/node": "*" + } }, "@types/node": { - "version": "17.0.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.12.tgz", - "integrity": "sha512-4YpbAsnJXWYK/fpTVFlMIcUIho2AYCi4wg5aNPrG1ng7fn/1/RZfCIpRCiBX+12RVa34RluilnvCqD+g3KiSiA==" + "version": "20.8.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.10.tgz", + "integrity": "sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==", + "requires": { + "undici-types": "~5.26.4" + } }, "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" + "mime-types": "~2.1.34", + "negotiator": "0.6.3" } }, "array-flatten": { @@ -762,31 +918,38 @@ "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==" }, "body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "requires": { - "bytes": "3.1.1", + "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", - "type-is": "~1.6.18" + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" } }, "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==" - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "requires": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + } }, "content-disposition": { "version": "0.5.4", @@ -797,14 +960,14 @@ } }, "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" }, "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" }, "cookie-signature": { "version": "1.0.6", @@ -828,30 +991,40 @@ "ms": "2.0.0" } }, + "define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "requires": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" }, "engine.io": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.2.tgz", - "integrity": "sha512-v/7eGHxPvO2AWsksyx2PUsQvBafuvqs0jJJQ0FdmJG1b9qIvgSbqDRGwNhfk2XHaTTbTXiC4quRE8Q9nRjsrQQ==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.3.tgz", + "integrity": "sha512-IML/R4eG/pUS5w7OfcDE0jKrljWS9nwnEfsxWCIJF5eO6AHo6+Hlv+lQbdlAYsiJPHzUthLm1RUjnBzWOs45cw==", "requires": { "@types/cookie": "^0.4.1", "@types/cors": "^2.8.12", @@ -861,14 +1034,19 @@ "cookie": "~0.4.1", "cors": "~2.8.5", "debug": "~4.3.1", - "engine.io-parser": "~5.0.0", - "ws": "~8.2.3" + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0" }, "dependencies": { + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" + }, "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { "ms": "2.1.2" } @@ -881,71 +1059,69 @@ } }, "engine.io-parser": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.3.tgz", - "integrity": "sha512-BtQxwF27XUNnSafQLvDi0dQ8s3i6VgzSoQMJacpIcGNrlUdfHSKbgm3jmjCVvQluGzqwujQMPAoMai3oYSTurg==", - "requires": { - "@socket.io/base64-arraybuffer": "~1.0.2" - } + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", + "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==" }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" }, "express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "requires": { - "accepts": "~1.3.7", + "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.1", + "body-parser": "1.20.1", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.1", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.6", + "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", + "send": "0.18.0", + "serve-static": "1.15.0", "setprototypeof": "1.2.0", - "statuses": "~1.5.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" } }, "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" } }, @@ -957,17 +1133,67 @@ "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "requires": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "requires": { + "get-intrinsic": "^1.2.2" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "requires": { + "function-bind": "^1.1.2" + } }, "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "requires": { - "depd": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", + "statuses": "2.0.1", "toidentifier": "1.0.1" } }, @@ -992,7 +1218,7 @@ "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" }, "merge-descriptors": { "version": "1.0.1", @@ -1010,37 +1236,42 @@ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" }, "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "requires": { - "mime-db": "1.51.0" + "mime-db": "1.52.0" } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, + "object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" + }, "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "requires": { "ee-first": "1.1.1" } @@ -1065,9 +1296,12 @@ } }, "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } }, "range-parser": { "version": "1.2.1", @@ -1075,12 +1309,12 @@ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, "raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "requires": { - "bytes": "3.1.1", - "http-errors": "1.8.1", + "bytes": "3.1.2", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" } @@ -1096,23 +1330,23 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "requires": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "dependencies": { "ms": { @@ -1123,14 +1357,25 @@ } }, "serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.2" + "send": "0.18.0" + } + }, + "set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "requires": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" } }, "setprototypeof": { @@ -1138,17 +1383,28 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, "socket.io": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.4.1.tgz", - "integrity": "sha512-s04vrBswdQBUmuWJuuNTmXUVJhP0cVky8bBDhdkf8y0Ptsu7fKU2LuLbts9g+pdmAdyMMn8F/9Mf1/wbtUN0fg==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.2.tgz", + "integrity": "sha512-bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw==", "requires": { "accepts": "~1.3.4", "base64id": "~2.0.0", + "cors": "~2.8.5", "debug": "~4.3.2", - "engine.io": "~6.1.0", - "socket.io-adapter": "~2.3.3", - "socket.io-parser": "~4.0.4" + "engine.io": "~6.5.2", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" }, "dependencies": { "debug": { @@ -1167,24 +1423,26 @@ } }, "socket.io-adapter": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.3.3.tgz", - "integrity": "sha512-Qd/iwn3VskrpNO60BeRyCyr8ZWw9CPZyitW4AQwmRZ8zCiyDiL+znRnWX6tDHXnWn1sJrM1+b6Mn6wEDJJ4aYQ==" + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz", + "integrity": "sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA==", + "requires": { + "ws": "~8.11.0" + } }, "socket.io-parser": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", - "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", "requires": { - "@types/component-emitter": "^1.2.10", - "component-emitter": "~1.3.0", + "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1" }, "dependencies": { "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "requires": { "ms": "2.1.2" } @@ -1197,9 +1455,9 @@ } }, "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" }, "toidentifier": { "version": "1.0.1", @@ -1215,10 +1473,15 @@ "mime-types": "~2.1.24" } }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" }, "utils-merge": { "version": "1.0.1", @@ -1231,9 +1494,9 @@ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" }, "ws": { - "version": "8.2.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", - "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "requires": {} } } diff --git a/Server/server.js b/Server/server.js index 8a14cf85..9972a428 100644 --- a/Server/server.js +++ b/Server/server.js @@ -19,14 +19,15 @@ const io = require("socket.io")(server, { "methods": "GET,HEAD,PUT,PATCH,POST,DELETE", "preflightContinue": false, "optionsSuccessStatus": 204 - } + }, + maxHttpBufferSize: 1e8 }); ID2Socket = {}; // keeps track of all sockets with the same ID Socket2ID = {}; // keeps track of the ID of each socket Socket2Type = {}; -reserved_messages = ['connection','disconnect','ID','ReceiveCameraImgMeta','ReceiveCameraImg','log','log-warning','log-error'] +reserved_messages = ['connection','disconnect','ID','CameraImgMeta','CameraImg','log','log-warning','log-error'] io.on("connection", function (socket) { console.log("Client connected with ID: " + socket.id); @@ -74,11 +75,11 @@ io.on("connection", function (socket) { // Make sure that these receive events are listed in the reserved_messages list // Camera receive events - socket.on('ReceiveCameraImgMeta', function(data) { - emitToSender(socket.id, 'ReceiveCameraImgMeta', data); + socket.on('CameraImgMeta', function(data) { + emitToSender(socket.id, 'CameraImgMeta', data); }); - socket.on('ReceiveCameraImg', function(data) { - emitToSender(socket.id, 'ReceiveCameraImg', data); + socket.on('CameraImg', function(data) { + emitToSender(socket.id, 'CameraImg', data); }); // Receiver events diff --git a/UnityClient/Assets/Prefabs/Objects/Probes/NP2.4Probe.prefab b/UnityClient/Assets/Prefabs/Objects/Probes/NP2.4Probe.prefab deleted file mode 100644 index 2a97aa46..00000000 --- a/UnityClient/Assets/Prefabs/Objects/Probes/NP2.4Probe.prefab +++ /dev/null @@ -1,2349 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1 &113134687182945832 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 9162503178041584915} - - component: {fileID: 6336827751981143129} - - component: {fileID: 7409922654742737101} - m_Layer: 10 - m_Name: ProbeModel - m_TagString: ProbeModel - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &9162503178041584915 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 113134687182945832} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 14, z: -5.700096} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 6896843788505130519} - - {fileID: 4221684226016091718} - - {fileID: 3738038674211894690} - - {fileID: 3666372574497411457} - m_Father: {fileID: 8599610478370708555} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &6336827751981143129 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 113134687182945832} - m_Mesh: {fileID: -2432090755550338912, guid: 38fde45e30dd1e64e9d6d35f2244f577, type: 3} ---- !u!23 &7409922654742737101 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 113134687182945832} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 820ceb6ec071ab44ab18d963ff7a37b2, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &209146349789154571 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3666372574497411457} - - component: {fileID: 6895363609386333827} - - component: {fileID: 6371514695150109518} - m_Layer: 10 - m_Name: RecordingSlice (3) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3666372574497411457 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 209146349789154571} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.89, z: 0.75} - m_LocalScale: {x: 0.1, y: 1.38, z: 0.1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 9162503178041584915} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &6895363609386333827 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 209146349789154571} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &6371514695150109518 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 209146349789154571} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 7e62e211ef58f2040ab4e4425976a37c, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &293466957461940484 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3570405202115835515} - m_Layer: 10 - m_Name: Probeparts - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3570405202115835515 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 293466957461940484} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -13.5, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 3009220587996793081} - - {fileID: 7919218106639831749} - - {fileID: 7727062095398796594} - - {fileID: 6217565195861435903} - - {fileID: 662637821938283457} - - {fileID: 3456081049925244378} - - {fileID: 2749345240714070966} - - {fileID: 8501572210606726284} - - {fileID: 5252250662393142036} - - {fileID: 8793692585852920866} - - {fileID: 1771331190168906823} - - {fileID: 1898621056582725650} - - {fileID: 3818127504270368465} - m_Father: {fileID: 83076963144849437} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &860328427680718217 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8501572210606726284} - - component: {fileID: 4828709186843854061} - - component: {fileID: 4966523530326170881} - m_Layer: 11 - m_Name: BlackGlue (1) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8501572210606726284 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 860328427680718217} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 8.679998, y: 59.079998, z: 0} - m_LocalScale: {x: 0.22, y: 0.91, z: 7.3} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3570405202115835515} - m_RootOrder: 7 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &4828709186843854061 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 860328427680718217} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &4966523530326170881 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 860328427680718217} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: ba00d3976d62a1f4884922aab0cb5dcd, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &886522796470806612 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 662637821938283457} - - component: {fileID: 7384723612195668246} - - component: {fileID: 6650874822091568096} - m_Layer: 11 - m_Name: PCBBoard (1) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &662637821938283457 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 886522796470806612} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 8.75, y: 55.79, z: 0} - m_LocalScale: {x: 0.22, y: 4.04, z: 7.32} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3570405202115835515} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &7384723612195668246 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 886522796470806612} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &6650874822091568096 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 886522796470806612} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: f0274cc6dffda4249beec41f4fbcb839, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &897149825872122724 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3456081049925244378} - - component: {fileID: 6366954848356649429} - - component: {fileID: 8653770592934858279} - m_Layer: 11 - m_Name: PCBBoard (2) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3456081049925244378 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 897149825872122724} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 8.929998, y: 63.18, z: 0} - m_LocalScale: {x: 0.22, y: 11.41, z: 10.92} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3570405202115835515} - m_RootOrder: 5 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &6366954848356649429 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 897149825872122724} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &8653770592934858279 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 897149825872122724} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: f0274cc6dffda4249beec41f4fbcb839, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &1720951993671350191 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2749345240714070966} - - component: {fileID: 1394598198739753117} - - component: {fileID: 5338218507806350854} - m_Layer: 11 - m_Name: Connector (1) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2749345240714070966 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1720951993671350191} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 8.749998, y: 58.27, z: 0} - m_LocalScale: {x: 0.22, y: 1.1, z: 6.2} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3570405202115835515} - m_RootOrder: 6 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &1394598198739753117 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1720951993671350191} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &5338218507806350854 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1720951993671350191} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: c1617da4109e3cb4aa9b7d1b9509f7eb, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &1823020946817655767 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 763203221676564831} - - component: {fileID: 3141458508698061409} - - component: {fileID: 2792157978347441330} - m_Layer: 10 - m_Name: ElectrodeBase3 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &763203221676564831 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1823020946817655767} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 14.2, z: -5.2} - m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 8599610478370708555} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &3141458508698061409 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1823020946817655767} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!135 &2792157978347441330 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1823020946817655767} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Radius: 0.5 - m_Center: {x: 0, y: 0, z: 0} ---- !u!1 &2161067449959298110 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3738038674211894690} - - component: {fileID: 8440920989201185844} - - component: {fileID: 4637000054617422903} - m_Layer: 10 - m_Name: RecordingSlice (2) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3738038674211894690 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2161067449959298110} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.89, z: 0.5} - m_LocalScale: {x: 0.1, y: 1.38, z: 0.1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 9162503178041584915} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &8440920989201185844 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2161067449959298110} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &4637000054617422903 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2161067449959298110} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 7e62e211ef58f2040ab4e4425976a37c, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &2402599933276470095 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4373075753628498810} - - component: {fileID: 7697252859202761959} - - component: {fileID: 3270886703121569117} - m_Layer: 10 - m_Name: TrueTip - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4373075753628498810 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2402599933276470095} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 14, z: -5.7} - m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 8599610478370708555} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &7697252859202761959 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2402599933276470095} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!135 &3270886703121569117 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2402599933276470095} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Radius: 0.5 - m_Center: {x: 0, y: 0, z: 0} ---- !u!1 &2684049663628889967 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 83076963144849437} - m_Layer: 10 - m_Name: probe0_tip - m_TagString: ProbeModel - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &83076963144849437 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2684049663628889967} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -0, y: 14, z: -5.7000003} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 3570405202115835515} - m_Father: {fileID: 8599610478370708555} - m_RootOrder: 6 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &2757399421754738177 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8542484031129592840} - - component: {fileID: 6533732326579814581} - - component: {fileID: 2172131319257915205} - m_Layer: 10 - m_Name: ElectrodeBase4 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8542484031129592840 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2757399421754738177} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 14.2, z: -4.95} - m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 8599610478370708555} - m_RootOrder: 4 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &6533732326579814581 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2757399421754738177} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!135 &2172131319257915205 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2757399421754738177} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Radius: 0.5 - m_Center: {x: 0, y: 0, z: 0} ---- !u!1 &2792236579036533825 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8716733294281621930} - - component: {fileID: 5890165042845447820} - - component: {fileID: 2237313894972177464} - m_Layer: 10 - m_Name: ElectrodeBase2 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8716733294281621930 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2792236579036533825} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 14.2, z: -5.45} - m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 8599610478370708555} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &5890165042845447820 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2792236579036533825} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!135 &2237313894972177464 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2792236579036533825} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Radius: 0.5 - m_Center: {x: 0, y: 0, z: 0} ---- !u!1 &3629690563522451996 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 933107173841420906} - - component: {fileID: 3078900330724379640} - - component: {fileID: 3120861649975585971} - - component: {fileID: 5634047100200080073} - m_Layer: 0 - m_Name: SensapexCollider - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &933107173841420906 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3629690563522451996} - m_LocalRotation: {x: 0.7071068, y: -0, z: 0.7071068, w: 0} - m_LocalPosition: {x: -0.5200005, y: 27.5, z: -5.400003} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 6896843786842361597} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &3078900330724379640 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3629690563522451996} - m_Mesh: {fileID: -2432090755550338912, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} ---- !u!23 &3120861649975585971 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3629690563522451996} - m_Enabled: 0 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 1ea6edd2a7b9f3f4195eb54f7d735bb7, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!64 &5634047100200080073 -MeshCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3629690563522451996} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 4 - m_Convex: 1 - m_CookingOptions: 30 - m_Mesh: {fileID: -2432090755550338912, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} ---- !u!1 &3674524166720172723 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5252250662393142036} - - component: {fileID: 922234607779943431} - - component: {fileID: 1187430764796103911} - m_Layer: 11 - m_Name: BlackGlue (2) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &5252250662393142036 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3674524166720172723} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 8.679998, y: 63.5, z: -1.9699998} - m_LocalScale: {x: 0.22, y: 6.36, z: 5.52} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3570405202115835515} - m_RootOrder: 8 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &922234607779943431 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3674524166720172723} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &1187430764796103911 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3674524166720172723} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: ba00d3976d62a1f4884922aab0cb5dcd, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &3967037714689279725 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4220993756636544613} - - component: {fileID: 7917175024531095876} - - component: {fileID: 4947281544112344572} - - component: {fileID: 1971961222057650354} - m_Layer: 0 - m_Name: ProbeShaftCollider - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4220993756636544613 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3967037714689279725} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0.50000006, y: 112.3, z: -6.2000036} - m_LocalScale: {x: 7, y: 30, z: 7} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 6896843786842361597} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &7917175024531095876 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3967037714689279725} - m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} ---- !u!136 &4947281544112344572 -CapsuleCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3967037714689279725} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - m_Radius: 0.5000001 - m_Height: 2.27 - m_Direction: 1 - m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697} ---- !u!23 &1971961222057650354 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 3967037714689279725} - m_Enabled: 0 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 1ea6edd2a7b9f3f4195eb54f7d735bb7, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &4978263154274024280 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1771331190168906823} - - component: {fileID: 5133749255107758977} - - component: {fileID: 5552421831301740532} - m_Layer: 11 - m_Name: BlackGlue (4) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1771331190168906823 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4978263154274024280} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 8.679998, y: 61.02, z: 2.62} - m_LocalScale: {x: 0.22, y: 1.76, z: 2.06} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3570405202115835515} - m_RootOrder: 10 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &5133749255107758977 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4978263154274024280} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &5552421831301740532 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4978263154274024280} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: ba00d3976d62a1f4884922aab0cb5dcd, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &5869275209989136557 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 3009220587996793081} - - component: {fileID: 4055494926714602800} - - component: {fileID: 3495629716578884263} - m_Layer: 11 - m_Name: Cylinder - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &3009220587996793081 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5869275209989136557} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 13, y: 98.3, z: -0} - m_LocalScale: {x: 7, y: 30, z: 7} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3570405202115835515} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &4055494926714602800 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5869275209989136557} - m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &3495629716578884263 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5869275209989136557} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &6132813121790352146 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7727062095398796594} - - component: {fileID: 2051254004946000843} - - component: {fileID: 6806881632993799340} - m_Layer: 11 - m_Name: PCBBoard - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7727062095398796594 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6132813121790352146} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 13.88, y: 23.99, z: 0} - m_LocalScale: {x: 0.22, y: 11.26, z: 7.32} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3570405202115835515} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &2051254004946000843 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6132813121790352146} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &6806881632993799340 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6132813121790352146} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: f0274cc6dffda4249beec41f4fbcb839, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &6561753852475144036 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6217565195861435903} - - component: {fileID: 5321025998359990534} - - component: {fileID: 1596946865749630251} - m_Layer: 11 - m_Name: Connector - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6217565195861435903 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6561753852475144036} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 13.88, y: 36.64, z: 0} - m_LocalScale: {x: 0.22, y: 14, z: 2.2} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3570405202115835515} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &5321025998359990534 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6561753852475144036} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &1596946865749630251 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6561753852475144036} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: c1617da4109e3cb4aa9b7d1b9509f7eb, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &6754943102235330276 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 2737065057749105214} - m_Layer: 0 - m_Name: RotateAroundTransform - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &2737065057749105214 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6754943102235330276} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 5.684342e-14, y: 14, z: -5.700001} - m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 8599610478370708555} - m_RootOrder: 8 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6896843786842361598 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6896843786842361597} - m_Layer: 10 - m_Name: Colliders - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6896843786842361597 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6896843786842361598} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 6896843786921319318} - - {fileID: 6896843787741631724} - - {fileID: 933107173841420906} - - {fileID: 4220993756636544613} - m_Father: {fileID: 8599610478370708555} - m_RootOrder: 7 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &6896843786921319319 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6896843786921319318} - - component: {fileID: 6896843786921319316} - - component: {fileID: 6896843786921319317} - - component: {fileID: 5220338665527792226} - m_Layer: 10 - m_Name: ProbeHeadCollider - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6896843786921319318 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6896843786921319319} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0.12, y: 29.7, z: -5.325} - m_LocalScale: {x: 0.3, y: 11, z: 3} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 6896843786842361597} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &6896843786921319316 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6896843786921319319} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &6896843786921319317 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6896843786921319319} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &5220338665527792226 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6896843786921319319} - m_Enabled: 0 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 1ea6edd2a7b9f3f4195eb54f7d735bb7, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &6896843787741631725 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6896843787741631724} - - component: {fileID: 6896843787741631714} - - component: {fileID: 6896843787741631715} - - component: {fileID: 2814233750327333806} - m_Layer: 10 - m_Name: ProbeTipCollider - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6896843787741631724 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6896843787741631725} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: -0, y: 19.06, z: -5.325} - m_LocalScale: {x: 0.05, y: 10, z: 0.89} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 6896843786842361597} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &6896843787741631714 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6896843787741631725} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!65 &6896843787741631715 -BoxCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6896843787741631725} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Size: {x: 1, y: 1, z: 1} - m_Center: {x: 0, y: 0, z: 0} ---- !u!23 &2814233750327333806 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6896843787741631725} - m_Enabled: 0 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 1ea6edd2a7b9f3f4195eb54f7d735bb7, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &6896843788505130512 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6896843788505130519} - - component: {fileID: 6896843788505130516} - - component: {fileID: 6896843788505130517} - m_Layer: 10 - m_Name: RecordingSlice - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &6896843788505130519 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6896843788505130512} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.89, z: 0} - m_LocalScale: {x: 0.1, y: 1.38, z: 0.1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 9162503178041584915} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &6896843788505130516 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6896843788505130512} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &6896843788505130517 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6896843788505130512} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 7e62e211ef58f2040ab4e4425976a37c, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &7223916604980454743 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7919218106639831749} - - component: {fileID: 8089176712464805156} - - component: {fileID: 6821980445241725826} - m_Layer: 11 - m_Name: BlackGlue - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &7919218106639831749 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7223916604980454743} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 13.62, y: 16.26, z: 0.38} - m_LocalScale: {x: 0.22, y: 10, z: 3.03} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3570405202115835515} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &8089176712464805156 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7223916604980454743} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &6821980445241725826 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7223916604980454743} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: ba00d3976d62a1f4884922aab0cb5dcd, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &7590717030900321574 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1898621056582725650} - - component: {fileID: 8940790045068253429} - - component: {fileID: 2820098728138773516} - m_Layer: 11 - m_Name: Connector (2) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &1898621056582725650 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7590717030900321574} - m_LocalRotation: {x: -0, y: -0, z: 0.2135964, w: 0.976922} - m_LocalPosition: {x: 11.59, y: 47.54, z: 0} - m_LocalScale: {x: 0.22, y: 14, z: 2.2} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3570405202115835515} - m_RootOrder: 11 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 24.666} ---- !u!33 &8940790045068253429 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7590717030900321574} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &2820098728138773516 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7590717030900321574} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: c1617da4109e3cb4aa9b7d1b9509f7eb, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &7995512131665064796 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8793692585852920866} - - component: {fileID: 784494941677425047} - - component: {fileID: 1607428534157010905} - m_Layer: 11 - m_Name: BlackGlue (3) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8793692585852920866 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7995512131665064796} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 8.679998, y: 66.08, z: 3.1} - m_LocalScale: {x: 0.22, y: 3.1, z: 3.21} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 3570405202115835515} - m_RootOrder: 9 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &784494941677425047 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7995512131665064796} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &1607428534157010905 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 7995512131665064796} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: ba00d3976d62a1f4884922aab0cb5dcd, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &8132741541750793547 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8132741541750793546} - - component: {fileID: 8132741541750793559} - - component: {fileID: 8132741541750793545} - m_Layer: 10 - m_Name: ElectrodeBase1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8132741541750793546 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8132741541750793547} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 14.2, z: -5.7} - m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 8599610478370708555} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &8132741541750793559 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8132741541750793547} - m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} ---- !u!135 &8132741541750793545 -SphereCollider: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8132741541750793547} - m_Material: {fileID: 0} - m_IsTrigger: 0 - m_Enabled: 1 - serializedVersion: 2 - m_Radius: 0.5 - m_Center: {x: 0, y: 0, z: 0} ---- !u!1 &8790212291502270615 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 4221684226016091718} - - component: {fileID: 3800818617034504501} - - component: {fileID: 967292933529977097} - m_Layer: 10 - m_Name: RecordingSlice (1) - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &4221684226016091718 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8790212291502270615} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0.89, z: 0.25} - m_LocalScale: {x: 0.1, y: 1.38, z: 0.1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 9162503178041584915} - m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!33 &3800818617034504501 -MeshFilter: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8790212291502270615} - m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!23 &967292933529977097 -MeshRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8790212291502270615} - m_Enabled: 1 - m_CastShadows: 1 - m_ReceiveShadows: 1 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - m_MotionVectors: 1 - m_LightProbeUsage: 1 - m_ReflectionProbeUsage: 1 - m_RayTracingMode: 2 - m_RayTraceProcedural: 0 - m_RenderingLayerMask: 1 - m_RendererPriority: 0 - m_Materials: - - {fileID: 2100000, guid: 7e62e211ef58f2040ab4e4425976a37c, type: 2} - m_StaticBatchInfo: - firstSubMesh: 0 - subMeshCount: 0 - m_StaticBatchRoot: {fileID: 0} - m_ProbeAnchor: {fileID: 0} - m_LightProbeVolumeOverride: {fileID: 0} - m_ScaleInLightmap: 1 - m_ReceiveGI: 1 - m_PreserveUVs: 0 - m_IgnoreNormalsForChartDetection: 0 - m_ImportantGI: 0 - m_StitchLightmapSeams: 1 - m_SelectedEditorRenderState: 3 - m_MinimumChartSize: 4 - m_AutoUVMaxDistance: 0.5 - m_AutoUVMaxAngle: 89 - m_LightmapParameters: {fileID: 0} - m_SortingLayerID: 0 - m_SortingLayer: 0 - m_SortingOrder: 0 - m_AdditionalVertexStreams: {fileID: 0} ---- !u!1 &8943063119080654577 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8599610478370708555} - m_Layer: 10 - m_Name: NP2.4Probe - m_TagString: Probe - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8599610478370708555 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 8943063119080654577} - m_LocalRotation: {x: 0, y: -0.7071068, z: 0, w: 0.7071068} - m_LocalPosition: {x: 0, y: -10, z: -6.6} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 4373075753628498810} - - {fileID: 8132741541750793546} - - {fileID: 8716733294281621930} - - {fileID: 763203221676564831} - - {fileID: 8542484031129592840} - - {fileID: 9162503178041584915} - - {fileID: 83076963144849437} - - {fileID: 6896843786842361597} - - {fileID: 2737065057749105214} - m_Father: {fileID: 0} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: -90, z: 0} ---- !u!1001 &3708168665352534330 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 3570405202115835515} - m_Modifications: - - target: {fileID: -8679921383154817045, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} - propertyPath: m_RootOrder - value: 12 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} - propertyPath: m_LocalScale.x - value: 1 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} - propertyPath: m_LocalScale.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} - propertyPath: m_LocalScale.z - value: 1 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} - propertyPath: m_LocalPosition.x - value: 12.98 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} - propertyPath: m_LocalPosition.y - value: 13.5 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} - propertyPath: m_LocalPosition.z - value: 0.29999924 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} - propertyPath: m_LocalRotation.w - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} - propertyPath: m_LocalRotation.x - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} - propertyPath: m_LocalRotation.z - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 90 - objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 180 - objectReference: {fileID: 0} - - target: {fileID: -7635826562936255635, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: 2100000, guid: c93b034009dd4b1459d5c8913cd432e6, type: 2} - - target: {fileID: -3581361210044313325, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} - propertyPath: m_Layer - value: 7 - objectReference: {fileID: 0} - - target: {fileID: 919132149155446097, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} - propertyPath: m_Name - value: NP2_Adapter - objectReference: {fileID: 0} - - target: {fileID: 919132149155446097, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} - propertyPath: m_Layer - value: 7 - objectReference: {fileID: 0} - - target: {fileID: 8164078558771037576, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} - propertyPath: m_Layer - value: 7 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} ---- !u!4 &3818127504270368465 stripped -Transform: - m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: d08307bb25d2b9d40bc92e7907505fe6, type: 3} - m_PrefabInstance: {fileID: 3708168665352534330} - m_PrefabAsset: {fileID: 0} diff --git a/UnityClient/Assets/Prefabs/Objects/Probes/NP2.4Probe.prefab.meta b/UnityClient/Assets/Prefabs/Objects/Probes/NP2.4Probe.prefab.meta deleted file mode 100644 index f437b164..00000000 --- a/UnityClient/Assets/Prefabs/Objects/Probes/NP2.4Probe.prefab.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: c6cbe13bba479184aa05bff7d11023f5 -PrefabImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/UnityClient/Assets/Prefabs/Scene/UI/AllPanels.prefab b/UnityClient/Assets/Prefabs/Scene/UI/AllPanels.prefab index f8890081..4b5f8822 100644 --- a/UnityClient/Assets/Prefabs/Scene/UI/AllPanels.prefab +++ b/UnityClient/Assets/Prefabs/Scene/UI/AllPanels.prefab @@ -31,11 +31,9 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 3503313650584489702} - {fileID: 3503313651827485614} - {fileID: 3503313651691905901} m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 0, y: 0} @@ -111,8 +109,25 @@ PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: + serializedVersion: 3 m_TransformParent: {fileID: 3503313650185552756} m_Modifications: + - target: {fileID: 2518479091755591897, guid: daa7c54fe2d89904cb9d303273524d89, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2518479091755591897, guid: daa7c54fe2d89904cb9d303273524d89, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2518479091755591897, guid: daa7c54fe2d89904cb9d303273524d89, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2518479091755591897, guid: daa7c54fe2d89904cb9d303273524d89, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 5840220619885362602, guid: daa7c54fe2d89904cb9d303273524d89, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -685,124 +700,38 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: daa7c54fe2d89904cb9d303273524d89, type: 3} ---- !u!224 &3503313651691905901 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 5840220619994493422, guid: daa7c54fe2d89904cb9d303273524d89, type: 3} - m_PrefabInstance: {fileID: 7030933217313133187} - m_PrefabAsset: {fileID: 0} ---- !u!1001 &7218963659798552829 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - m_TransformParent: {fileID: 3503313650185552756} - m_Modifications: - - target: {fileID: 6102566642282311192, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} - propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Target - value: - objectReference: {fileID: 0} - - target: {fileID: 6102566642282311194, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} - propertyPath: m_Name - value: IDInput - objectReference: {fileID: 0} - - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} - propertyPath: m_Pivot.x - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} - propertyPath: m_Pivot.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} - propertyPath: m_RootOrder - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} - propertyPath: m_AnchorMax.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + - target: {fileID: 7351080160438009525, guid: daa7c54fe2d89904cb9d303273524d89, type: 3} propertyPath: m_AnchorMax.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} - propertyPath: m_AnchorMin.x value: 0 objectReference: {fileID: 0} - - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + - target: {fileID: 7351080160438009525, guid: daa7c54fe2d89904cb9d303273524d89, type: 3} propertyPath: m_AnchorMin.y - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} - propertyPath: m_SizeDelta.x - value: 200 - objectReference: {fileID: 0} - - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} - propertyPath: m_SizeDelta.y - value: 47.2 - objectReference: {fileID: 0} - - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} - propertyPath: m_LocalPosition.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} - propertyPath: m_LocalRotation.y - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + - target: {fileID: 7351080160438009525, guid: daa7c54fe2d89904cb9d303273524d89, type: 3} propertyPath: m_AnchoredPosition.x - value: 1920 - objectReference: {fileID: 0} - - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} - propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} - - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} - propertyPath: m_LocalEulerAnglesHint.z + - target: {fileID: 7351080160438009525, guid: daa7c54fe2d89904cb9d303273524d89, type: 3} + propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} m_RemovedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} ---- !u!224 &3503313650584489702 stripped + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: daa7c54fe2d89904cb9d303273524d89, type: 3} +--- !u!224 &3503313651691905901 stripped RectTransform: - m_CorrespondingSourceObject: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} - m_PrefabInstance: {fileID: 7218963659798552829} + m_CorrespondingSourceObject: {fileID: 5840220619994493422, guid: daa7c54fe2d89904cb9d303273524d89, type: 3} + m_PrefabInstance: {fileID: 7030933217313133187} m_PrefabAsset: {fileID: 0} --- !u!1001 &8495756762794710246 PrefabInstance: m_ObjectHideFlags: 0 serializedVersion: 2 m_Modification: + serializedVersion: 3 m_TransformParent: {fileID: 3503313650185552756} m_Modifications: - target: {fileID: 5005954357111586632, guid: 519f433e42665a14cb9dcae7465b314e, type: 3} @@ -894,6 +823,9 @@ PrefabInstance: value: Console objectReference: {fileID: 0} m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 519f433e42665a14cb9dcae7465b314e, type: 3} --- !u!224 &3503313651827485614 stripped RectTransform: diff --git a/UnityClient/Assets/Prefabs/Scene/UI/IDInput.prefab b/UnityClient/Assets/Prefabs/Scene/UI/IDInput.prefab index 01e3ff7b..e22aba37 100644 --- a/UnityClient/Assets/Prefabs/Scene/UI/IDInput.prefab +++ b/UnityClient/Assets/Prefabs/Scene/UI/IDInput.prefab @@ -1,6 +1,6 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: ---- !u!1 &6102566641655342362 +--- !u!1 &772281508595836538 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -8,52 +8,206 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 6102566641655342363} - - component: {fileID: 6102566641655342374} - - component: {fileID: 6102566641655342361} - - component: {fileID: 6102566641655342360} + - component: {fileID: 128631831852142845} + - component: {fileID: 276372931649503041} m_Layer: 5 - m_Name: Placeholder + m_Name: Text Area m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &6102566641655342363 +--- !u!224 &128631831852142845 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6102566641655342362} + m_GameObject: {fileID: 772281508595836538} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 6102566642257806686} - m_RootOrder: 0 + m_Children: + - {fileID: 1827267130156048347} + - {fileID: 4033952202680713356} + m_Father: {fileID: 5941056394836268197} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: -0.5} + m_SizeDelta: {x: -20, y: -13} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &276372931649503041 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 772281508595836538} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: {x: -8, y: -5, z: -8, w: -5} + m_Softness: {x: 0, y: 0} +--- !u!1 &2447250053083776937 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1724695505752495144} + - component: {fileID: 2626790280559628543} + - component: {fileID: 3025738541532803695} + - component: {fileID: 2170385505126317712} + m_Layer: 5 + m_Name: Panel + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1724695505752495144 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2447250053083776937} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 3248090959954141035} + - {fileID: 5941056394836268197} + m_Father: {fileID: 6102566642282311195} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_SizeDelta: {x: 500, y: 136.3} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6102566641655342374 +--- !u!222 &2626790280559628543 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6102566641655342362} + m_GameObject: {fileID: 2447250053083776937} m_CullTransparentMesh: 1 ---- !u!114 &6102566641655342361 +--- !u!114 &3025738541532803695 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6102566641655342362} + m_GameObject: {fileID: 2447250053083776937} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0, g: 0, b: 0, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &2170385505126317712 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2447250053083776937} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 1 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!1 &4204607221870950316 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3248090959954141035} + - component: {fileID: 3317791704989220352} + - component: {fileID: 2301425163157277548} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3248090959954141035 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4204607221870950316} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1724695505752495144} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 500, y: 75} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &3317791704989220352 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4204607221870950316} + m_CullTransparentMesh: 1 +--- !u!114 &2301425163157277548 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4204607221870950316} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} @@ -67,7 +221,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: Enter ID... + m_text: Enter ID from API m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -76,8 +230,8 @@ MonoBehaviour: m_fontMaterials: [] m_fontColor32: serializedVersion: 2 - rgba: 2150773298 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} m_enableVertexGradient: 0 m_colorMode: 3 m_fontColorGradient: @@ -94,15 +248,15 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 25.95 - m_fontSizeBase: 25.95 + m_fontSize: 48 + m_fontSizeBase: 48 m_fontWeight: 400 m_enableAutoSizing: 0 m_fontSizeMin: 18 m_fontSizeMax: 72 - m_fontStyle: 2 - m_HorizontalAlignment: 1 - m_VerticalAlignment: 256 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 m_textAlignment: 65535 m_characterSpacing: 0 m_wordSpacing: 0 @@ -110,13 +264,13 @@ MonoBehaviour: m_lineSpacingMax: 0 m_paragraphSpacing: 0 m_charWidthMaxAdj: 0 - m_enableWordWrapping: 0 + m_enableWordWrapping: 1 m_wordWrappingRatios: 0.4 m_overflowMode: 0 m_linkedTextComponent: {fileID: 0} parentLinkedComponent: {fileID: 0} m_enableKerning: 1 - m_enableExtraPadding: 1 + m_enableExtraPadding: 0 checkPaddingRequired: 0 m_isRichText: 1 m_parseCtrlCharacters: 1 @@ -136,27 +290,66 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!114 &6102566641655342360 +--- !u!1 &6102566642282311194 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6102566642282311195} + - component: {fileID: 6102566642282311206} + - component: {fileID: 1739341967123917582} + m_Layer: 5 + m_Name: IDInput + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6102566642282311195 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6102566642282311194} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1724695505752495144} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 4.9000244} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &6102566642282311206 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6102566642282311194} + m_CullTransparentMesh: 1 +--- !u!114 &1739341967123917582 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6102566641655342362} + m_GameObject: {fileID: 6102566642282311194} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Script: {fileID: 11500000, guid: 48f1522bdfa54d94aa2fb05cf5113ccb, type: 3} m_Name: m_EditorClassIdentifier: - m_IgnoreLayout: 1 - m_MinWidth: -1 - m_MinHeight: -1 - m_PreferredWidth: -1 - m_PreferredHeight: -1 - m_FlexibleWidth: -1 - m_FlexibleHeight: -1 - m_LayoutPriority: 1 ---- !u!1 &6102566642159794959 + _inputField: {fileID: 2905519425626450470} +--- !u!1 &6224387640567699613 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -164,51 +357,51 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 6102566642159794956} - - component: {fileID: 6102566642159794954} - - component: {fileID: 6102566642159794957} + - component: {fileID: 1827267130156048347} + - component: {fileID: 6283318411764708549} + - component: {fileID: 5835136863759422412} + - component: {fileID: 972771074299636053} m_Layer: 5 - m_Name: Text + m_Name: Placeholder m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &6102566642159794956 +--- !u!224 &1827267130156048347 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6102566642159794959} + m_GameObject: {fileID: 6224387640567699613} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 6102566642257806686} - m_RootOrder: 1 + m_Father: {fileID: 128631831852142845} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6102566642159794954 +--- !u!222 &6283318411764708549 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6102566642159794959} + m_GameObject: {fileID: 6224387640567699613} m_CullTransparentMesh: 1 ---- !u!114 &6102566642159794957 +--- !u!114 &5835136863759422412 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6102566642159794959} + m_GameObject: {fileID: 6224387640567699613} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} @@ -222,7 +415,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_text: "\u200B" + m_text: Enter ID... m_isRightToLeft: 0 m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} @@ -231,8 +424,8 @@ MonoBehaviour: m_fontMaterials: [] m_fontColor32: serializedVersion: 2 - rgba: 4281479730 - m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + rgba: 2150773298 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5} m_enableVertexGradient: 0 m_colorMode: 3 m_fontColorGradient: @@ -249,13 +442,13 @@ MonoBehaviour: m_faceColor: serializedVersion: 2 rgba: 4294967295 - m_fontSize: 25.95 - m_fontSizeBase: 25.95 + m_fontSize: 36 + m_fontSizeBase: 36 m_fontWeight: 400 m_enableAutoSizing: 0 m_fontSizeMin: 18 m_fontSizeMax: 72 - m_fontStyle: 0 + m_fontStyle: 2 m_HorizontalAlignment: 1 m_VerticalAlignment: 256 m_textAlignment: 65535 @@ -291,7 +484,27 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} ---- !u!1 &6102566642257806673 +--- !u!114 &972771074299636053 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6224387640567699613} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreLayout: 1 + m_MinWidth: -1 + m_MinHeight: -1 + m_PreferredWidth: -1 + m_PreferredHeight: -1 + m_FlexibleWidth: -1 + m_FlexibleHeight: -1 + m_LayoutPriority: 1 +--- !u!1 &6884071834869251666 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -299,52 +512,133 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 6102566642257806686} - - component: {fileID: 6102566642257806687} + - component: {fileID: 4033952202680713356} + - component: {fileID: 5168170449339741359} + - component: {fileID: 6329417540962420206} m_Layer: 5 - m_Name: Text Area + m_Name: Text m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &6102566642257806686 +--- !u!224 &4033952202680713356 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6102566642257806673} + m_GameObject: {fileID: 6884071834869251666} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 6102566641655342363} - - {fileID: 6102566642159794956} - m_Father: {fileID: 6102566642282311195} - m_RootOrder: 0 + m_Children: [] + m_Father: {fileID: 128631831852142845} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: -0.5} - m_SizeDelta: {x: -20, y: -13} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &6102566642257806687 +--- !u!222 &5168170449339741359 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6884071834869251666} + m_CullTransparentMesh: 1 +--- !u!114 &6329417540962420206 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6102566642257806673} + m_GameObject: {fileID: 6884071834869251666} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 3312d7739989d2b4e91e6319e9a96d76, type: 3} + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} m_Name: m_EditorClassIdentifier: - m_Padding: {x: -8, y: -5, z: -8, w: -5} - m_Softness: {x: 0, y: 0} ---- !u!1 &6102566642282311194 + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: "\u200B" + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 0 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 1 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7339379636227001017 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -352,53 +646,52 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 6102566642282311195} - - component: {fileID: 6102566642282311206} - - component: {fileID: 6102566642282311193} - - component: {fileID: 6102566642282311192} + - component: {fileID: 5941056394836268197} + - component: {fileID: 6096364608302609767} + - component: {fileID: 8606154639765873720} + - component: {fileID: 2905519425626450470} m_Layer: 5 - m_Name: IDInput + m_Name: InputField m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 ---- !u!224 &6102566642282311195 + m_IsActive: 1 +--- !u!224 &5941056394836268197 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6102566642282311194} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_GameObject: {fileID: 7339379636227001017} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 6102566642257806686} - m_Father: {fileID: 0} - m_RootOrder: 0 + - {fileID: 128631831852142845} + m_Father: {fileID: 1724695505752495144} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 1920, y: 0} - m_SizeDelta: {x: 200, y: 47.2} - m_Pivot: {x: 1, y: 1} ---- !u!222 &6102566642282311206 + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 450, y: 50} + m_Pivot: {x: 0.5, y: 1} +--- !u!222 &6096364608302609767 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6102566642282311194} + m_GameObject: {fileID: 7339379636227001017} m_CullTransparentMesh: 1 ---- !u!114 &6102566642282311193 +--- !u!114 &8606154639765873720 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6102566642282311194} + m_GameObject: {fileID: 7339379636227001017} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} @@ -422,13 +715,13 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!114 &6102566642282311192 +--- !u!114 &2905519425626450470 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6102566642282311194} + m_GameObject: {fileID: 7339379636227001017} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: 2da0c512f12947e489f739169773d7ca, type: 3} @@ -462,10 +755,10 @@ MonoBehaviour: m_SelectedTrigger: Selected m_DisabledTrigger: Disabled m_Interactable: 1 - m_TargetGraphic: {fileID: 6102566642282311193} - m_TextViewport: {fileID: 6102566642257806686} - m_TextComponent: {fileID: 6102566642159794957} - m_Placeholder: {fileID: 6102566641655342361} + m_TargetGraphic: {fileID: 8606154639765873720} + m_TextViewport: {fileID: 128631831852142845} + m_TextComponent: {fileID: 6329417540962420206} + m_Placeholder: {fileID: 5835136863759422412} m_VerticalScrollbar: {fileID: 0} m_VerticalScrollbarEventHandler: {fileID: 0} m_LayoutGroup: {fileID: 0} @@ -479,7 +772,7 @@ MonoBehaviour: m_HideSoftKeyboard: 0 m_CharacterValidation: 0 m_RegexValue: - m_GlobalPointSize: 14 + m_GlobalPointSize: 36 m_CharacterLimit: 0 m_OnEndEdit: m_PersistentCalls: @@ -501,19 +794,7 @@ MonoBehaviour: m_Calls: [] m_OnValueChanged: m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 0} - m_TargetAssemblyTypeName: UM_Client, Assembly-CSharp - m_MethodName: UpdateID - m_Mode: 0 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 + m_Calls: [] m_OnTouchScreenKeyboardStatusChanged: m_PersistentCalls: m_Calls: [] diff --git a/UnityClient/Assets/Prefabs/Scene/UI/UI.prefab b/UnityClient/Assets/Prefabs/Scene/UI/UI.prefab index cfa0ab0f..9978bb2c 100644 --- a/UnityClient/Assets/Prefabs/Scene/UI/UI.prefab +++ b/UnityClient/Assets/Prefabs/Scene/UI/UI.prefab @@ -74,7 +74,7 @@ RectTransform: - {fileID: 231208879634202656} - {fileID: 3141930578643532547} - {fileID: 3007180431021323783} - - {fileID: 493343958401363892} + - {fileID: 3710492877229581598} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -262,108 +262,6 @@ MonoBehaviour: m_ChildScaleWidth: 0 m_ChildScaleHeight: 0 m_ReverseArrangement: 0 ---- !u!1001 &1968031861686841354 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 231208878819221207} - m_Modifications: - - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} - propertyPath: m_Pivot.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} - propertyPath: m_Pivot.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} - propertyPath: m_AnchorMax.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} - propertyPath: m_AnchorMax.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} - propertyPath: m_AnchorMin.x - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} - propertyPath: m_AnchorMin.y - value: 0.5 - objectReference: {fileID: 0} - - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} - propertyPath: m_SizeDelta.x - value: 150 - objectReference: {fileID: 0} - - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} - propertyPath: m_SizeDelta.y - value: 150 - objectReference: {fileID: 0} - - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} - propertyPath: m_AnchoredPosition.x - value: 746.06 - objectReference: {fileID: 0} - - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} - propertyPath: m_AnchoredPosition.y - value: 629 - objectReference: {fileID: 0} - - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 7398734895119177350, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} - propertyPath: m_Name - value: ControlPanel - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} ---- !u!224 &493343958401363892 stripped -RectTransform: - m_CorrespondingSourceObject: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} - m_PrefabInstance: {fileID: 1968031861686841354} - m_PrefabAsset: {fileID: 0} --- !u!1001 &3173026047738633921 PrefabInstance: m_ObjectHideFlags: 0 @@ -1455,6 +1353,136 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 5446571692843024608, guid: 74e1a1f6f32621740896a8ddbc268513, type: 3} m_PrefabInstance: {fileID: 7074515870400345831} m_PrefabAsset: {fileID: 0} +--- !u!1001 &7480194876013824773 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 231208878819221207} + m_Modifications: + - target: {fileID: 3248090959954141035, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3248090959954141035, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3248090959954141035, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5941056394836268197, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5941056394836268197, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5941056394836268197, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5941056394836268197, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6102566642282311194, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_Name + value: IDInput + objectReference: {fileID: 0} + - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_AnchoredPosition.y + value: 4.9000244 + objectReference: {fileID: 0} + - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} +--- !u!224 &3710492877229581598 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 6102566642282311195, guid: 7b43a9ce73cfa5343a049096a126896c, type: 3} + m_PrefabInstance: {fileID: 7480194876013824773} + m_PrefabAsset: {fileID: 0} --- !u!1001 &8291881588667191145 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/UnityClient/Assets/Scenes/UnityMouseRenderer.unity b/UnityClient/Assets/Scenes/UnityMouseRenderer.unity index cdb38cfd..d41cd778 100644 --- a/UnityClient/Assets/Scenes/UnityMouseRenderer.unity +++ b/UnityClient/Assets/Scenes/UnityMouseRenderer.unity @@ -715,6 +715,11 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: b3164e716bd1d6e4ca85bf55b0655741, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &126242954 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2714169252288693688, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + m_PrefabInstance: {fileID: 231208879068536369} + m_PrefabAsset: {fileID: 0} --- !u!1 &180261669 stripped GameObject: m_CorrespondingSourceObject: {fileID: 231208878770880932, guid: 797f30df999d646458e9984856b9b1f7, type: 3} @@ -1270,11 +1275,6 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &325879979 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 8776701558739034145, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - m_PrefabInstance: {fileID: 7887254271563545724} - m_PrefabAsset: {fileID: 0} --- !u!1 &336972850 GameObject: m_ObjectHideFlags: 0 @@ -1449,7 +1449,7 @@ PrefabInstance: - target: {fileID: 161993171994875574, guid: 8d78849a732a3e54c8a6dfcda3795ec0, type: 3} propertyPath: idPanel value: - objectReference: {fileID: 1875325468} + objectReference: {fileID: 2137763920} - target: {fileID: 161993171994875574, guid: 8d78849a732a3e54c8a6dfcda3795ec0, type: 3} propertyPath: _uiCanvas value: @@ -1462,6 +1462,10 @@ PrefabInstance: propertyPath: consolePanel value: objectReference: {fileID: 971937620} + - target: {fileID: 161993171994875574, guid: 8d78849a732a3e54c8a6dfcda3795ec0, type: 3} + propertyPath: _atlasManager + value: + objectReference: {fileID: 926747821} - target: {fileID: 161993171994875574, guid: 8d78849a732a3e54c8a6dfcda3795ec0, type: 3} propertyPath: infoPanelText value: @@ -1477,15 +1481,15 @@ PrefabInstance: - target: {fileID: 161993171994875574, guid: 8d78849a732a3e54c8a6dfcda3795ec0, type: 3} propertyPath: brainControlsT value: - objectReference: {fileID: 0} + objectReference: {fileID: 801865801} - target: {fileID: 161993171994875574, guid: 8d78849a732a3e54c8a6dfcda3795ec0, type: 3} propertyPath: cameraController value: - objectReference: {fileID: 7887254271563545726} + objectReference: {fileID: 1793010832} - target: {fileID: 161993171994875574, guid: 8d78849a732a3e54c8a6dfcda3795ec0, type: 3} propertyPath: _mainCameraBehavior value: - objectReference: {fileID: 7887254271563545725} + objectReference: {fileID: 1793010831} - target: {fileID: 161993171994875574, guid: 8d78849a732a3e54c8a6dfcda3795ec0, type: 3} propertyPath: cosmosParentObjects.Array.data[0] value: @@ -1803,17 +1807,195 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 431483306} m_Mesh: {fileID: -2432090755550338912, guid: 970a248eb8deda94490ef012a653a2db, type: 3} ---- !u!114 &436999472 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 1424787918614360421, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - m_PrefabInstance: {fileID: 7887254271563545724} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 0a12b47cde633a84bb951f673e9843f2, type: 3} - m_Name: - m_EditorClassIdentifier: +--- !u!1001 &431647798 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 756099984625368948, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: _cameraUIGOs.Array.size + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 756099984625368948, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: _cameraUIGOs.Array.data[0] + value: + objectReference: {fileID: 1475529114} + - target: {fileID: 756099984625368948, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: _cameraUIGOs.Array.data[1] + value: + objectReference: {fileID: 1213862678} + - target: {fileID: 756099984625368948, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: _cameraUIGOs.Array.data[2] + value: + objectReference: {fileID: 1176480804} + - target: {fileID: 756099984625368948, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: _cameraUIGOs.Array.data[3] + value: + objectReference: {fileID: 126242954} + - target: {fileID: 1424787917973710077, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1424787918494435038, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 1424787918614360426, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_LocalRotation.w + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 1424787918614360426, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_LocalRotation.x + value: 0.7071068 + objectReference: {fileID: 0} + - target: {fileID: 1424787918614360426, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1424787918614360426, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1424787918614360426, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1424787918614360426, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1424787919797930836, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_Enabled + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2699667523703933131, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: localhost + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2699667523703933131, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: IDChangedEvent.m_PersistentCalls.m_Calls.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2699667523703933131, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: IDChangedEvent.m_PersistentCalls.m_Calls.Array.data[1].m_Mode + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 2699667523703933131, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: IDChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 231208879068536373} + - target: {fileID: 2699667523703933131, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: IDChangedEvent.m_PersistentCalls.m_Calls.Array.data[1].m_Target + value: + objectReference: {fileID: 231208879068536373} + - target: {fileID: 2699667523703933131, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: IDChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2699667523703933131, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: IDChangedEvent.m_PersistentCalls.m_Calls.Array.data[1].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 2699667523703933131, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: IDChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: UpdateText + objectReference: {fileID: 0} + - target: {fileID: 2699667523703933131, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: IDChangedEvent.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName + value: SetVisibility + objectReference: {fileID: 0} + - target: {fileID: 2699667523703933131, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: IDChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: IDPanel, urchin.unity + objectReference: {fileID: 0} + - target: {fileID: 2699667523703933131, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: IDChangedEvent.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName + value: IDPanel, urchin.unity + objectReference: {fileID: 0} + - target: {fileID: 2699667523703933131, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: IDChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 2699667523703933131, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: IDChangedEvent.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} + - target: {fileID: 3393775226113162769, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 3393775226113162769, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3393775226405738686, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: near clip plane + value: -50 + objectReference: {fileID: 0} + - target: {fileID: 4417393973230421729, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_Name + value: Urchin + objectReference: {fileID: 0} + - target: {fileID: 5167816034593033511, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: uiCanvas + value: + objectReference: {fileID: 858013925} + - target: {fileID: 5167816034593033511, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: _textParent + value: + objectReference: {fileID: 1096435099} + - target: {fileID: 5422044978898989536, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 90 + objectReference: {fileID: 0} + - target: {fileID: 5428924515040814815, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5428924515040814815, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5428924515040814815, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5428924515040814815, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5428924515040814815, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5428924515040814815, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5428924515040814815, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5428924515040814815, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5428924515040814815, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5428924515040814815, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} --- !u!1001 &441444073 PrefabInstance: m_ObjectHideFlags: 0 @@ -1967,6 +2149,11 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 443296334} m_CullTransparentMesh: 1 +--- !u!224 &474566695 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 231208878900000729, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + m_PrefabInstance: {fileID: 231208879068536369} + m_PrefabAsset: {fileID: 0} --- !u!1 &481410852 GameObject: m_ObjectHideFlags: 0 @@ -2397,41 +2584,6 @@ GameObject: m_CorrespondingSourceObject: {fileID: 231208878604459776, guid: 797f30df999d646458e9984856b9b1f7, type: 3} m_PrefabInstance: {fileID: 231208879068536369} m_PrefabAsset: {fileID: 0} ---- !u!1 &678767611 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 678767612} - m_Layer: 5 - m_Name: GameObject - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &678767612 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 678767611} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 231208879068536370} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 100, y: 100} - m_Pivot: {x: 0.5, y: 0.5} --- !u!1 &681682130 GameObject: m_ObjectHideFlags: 0 @@ -2464,17 +2616,6 @@ Transform: - {fileID: 1491165862} m_Father: {fileID: 1690469968} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &689637645 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 2699667523703933131, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - m_PrefabInstance: {fileID: 7887254271563545724} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5ff1da35009d08a478794287dd9363a2, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1 &704313102 GameObject: m_ObjectHideFlags: 0 @@ -2806,6 +2947,116 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 782738171} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1001 &801865800 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 474566695} + m_Modifications: + - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: m_AnchorMax.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: m_SizeDelta.x + value: 150 + objectReference: {fileID: 0} + - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: m_SizeDelta.y + value: 150 + objectReference: {fileID: 0} + - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: m_LocalPosition.z + value: -0.00006866455 + objectReference: {fileID: 0} + - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6177646269513568233, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: layerMask.m_Bits + value: 16384 + objectReference: {fileID: 0} + - target: {fileID: 6177646269513568233, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: renderTextureCamera + value: + objectReference: {fileID: 1754766756} + - target: {fileID: 7398734895119177350, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + propertyPath: m_Name + value: ControlPanel + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} +--- !u!224 &801865801 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 2132295245476896702, guid: 86a9f7e7c13796947b271b6a8f43d4d9, type: 3} + m_PrefabInstance: {fileID: 801865800} + m_PrefabAsset: {fileID: 0} --- !u!1 &803296948 GameObject: m_ObjectHideFlags: 0 @@ -3272,11 +3523,6 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 858515727} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} ---- !u!4 &865640631 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 1585022055348087818, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - m_PrefabInstance: {fileID: 7887254271563545724} - m_PrefabAsset: {fileID: 0} --- !u!1 &868146841 GameObject: m_ObjectHideFlags: 0 @@ -3564,6 +3810,17 @@ Transform: - {fileID: 1185077886} m_Father: {fileID: 211372987} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &926747821 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 7683298792840207488, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + m_PrefabInstance: {fileID: 431647798} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 54cf7c9e3abd4c54e876992ba07441ef, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &928355441 GameObject: m_ObjectHideFlags: 0 @@ -4120,6 +4377,63 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1037046293} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1001 &1040005262 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1061156970922571914, guid: ee09154d7a7870a419882ff36080d765, type: 3} + propertyPath: m_Name + value: BrainAtlas + objectReference: {fileID: 0} + - target: {fileID: 3131845913727300861, guid: ee09154d7a7870a419882ff36080d765, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3131845913727300861, guid: ee09154d7a7870a419882ff36080d765, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3131845913727300861, guid: ee09154d7a7870a419882ff36080d765, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3131845913727300861, guid: ee09154d7a7870a419882ff36080d765, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 3131845913727300861, guid: ee09154d7a7870a419882ff36080d765, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3131845913727300861, guid: ee09154d7a7870a419882ff36080d765, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3131845913727300861, guid: ee09154d7a7870a419882ff36080d765, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3131845913727300861, guid: ee09154d7a7870a419882ff36080d765, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3131845913727300861, guid: ee09154d7a7870a419882ff36080d765, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3131845913727300861, guid: ee09154d7a7870a419882ff36080d765, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: ee09154d7a7870a419882ff36080d765, type: 3} --- !u!1 &1044665369 GameObject: m_ObjectHideFlags: 0 @@ -4481,6 +4795,11 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1081936865} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1096435099 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 231208879634202657, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + m_PrefabInstance: {fileID: 231208879068536369} + m_PrefabAsset: {fileID: 0} --- !u!1 &1113022679 GameObject: m_ObjectHideFlags: 0 @@ -4650,6 +4969,11 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 01102d1e79ed0f646a707fd0c57cedcf, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &1176480804 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1215881425424863814, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + m_PrefabInstance: {fileID: 231208879068536369} + m_PrefabAsset: {fileID: 0} --- !u!1 &1185077885 GameObject: m_ObjectHideFlags: 0 @@ -4749,6 +5073,11 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!1 &1213862678 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1237764440512478901, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + m_PrefabInstance: {fileID: 231208879068536369} + m_PrefabAsset: {fileID: 0} --- !u!1 &1221187707 GameObject: m_ObjectHideFlags: 0 @@ -6047,11 +6376,6 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1409692257} m_Mesh: {fileID: -2432090755550338912, guid: 3b914b63b0438684998cbb29a9ea9af5, type: 3} ---- !u!20 &1424113120 stripped -Camera: - m_CorrespondingSourceObject: {fileID: 3393775226405738686, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - m_PrefabInstance: {fileID: 7887254271563545724} - m_PrefabAsset: {fileID: 0} --- !u!1 &1430290735 GameObject: m_ObjectHideFlags: 0 @@ -6574,6 +6898,11 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1469330506} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1475529114 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8990276977539201879, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + m_PrefabInstance: {fileID: 231208879068536369} + m_PrefabAsset: {fileID: 0} --- !u!1 &1491165861 GameObject: m_ObjectHideFlags: 0 @@ -7968,6 +8297,11 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1744259007} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!20 &1754766756 stripped +Camera: + m_CorrespondingSourceObject: {fileID: 3007811191311767224, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + m_PrefabInstance: {fileID: 431647798} + m_PrefabAsset: {fileID: 0} --- !u!1 &1756174612 GameObject: m_ObjectHideFlags: 0 @@ -8375,6 +8709,28 @@ Transform: - {fileID: 846650642} m_Father: {fileID: 211372987} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1793010831 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3393775226113162772, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + m_PrefabInstance: {fileID: 431647798} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 29696c16e4ad4234f81dfdbd428c8ad3, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!114 &1793010832 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3393775226113162775, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + m_PrefabInstance: {fileID: 431647798} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9d43419cf1d43bf4995059dad0606dfc, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &1813139463 GameObject: m_ObjectHideFlags: 0 @@ -8574,11 +8930,6 @@ Transform: - {fileID: 2138639684} m_Father: {fileID: 1690469968} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1875325468 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 231208879810997293, guid: 797f30df999d646458e9984856b9b1f7, type: 3} - m_PrefabInstance: {fileID: 231208879068536369} - m_PrefabAsset: {fileID: 0} --- !u!1 &1878764714 GameObject: m_ObjectHideFlags: 0 @@ -8621,6 +8972,17 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!114 &1891580943 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 2699667523703933131, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} + m_PrefabInstance: {fileID: 431647798} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5ff1da35009d08a478794287dd9363a2, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &1935462488 GameObject: m_ObjectHideFlags: 0 @@ -9439,6 +9801,11 @@ GameObject: m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 +--- !u!1 &2137763920 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 5059967279959968940, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + m_PrefabInstance: {fileID: 231208879068536369} + m_PrefabAsset: {fileID: 0} --- !u!1 &2138639683 GameObject: m_ObjectHideFlags: 0 @@ -9639,15 +10006,23 @@ PrefabInstance: - target: {fileID: 231208878819221204, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: m_Camera value: - objectReference: {fileID: 1424113120} + objectReference: {fileID: 0} - target: {fileID: 231208878819221204, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: m_RenderMode value: 0 objectReference: {fileID: 0} + - target: {fileID: 231208878819221204, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + propertyPath: m_AdditionalShaderChannelsFlag + value: 25 + objectReference: {fileID: 0} + - target: {fileID: 231208878819221206, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + propertyPath: asset + value: + objectReference: {fileID: 4900000, guid: 432d871e24a06c549b7ea7403b3ea297, type: 3} - target: {fileID: 231208878819221206, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: cameraController value: - objectReference: {fileID: 7887254271563545726} + objectReference: {fileID: 1793010832} - target: {fileID: 231208878819221207, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: m_Pivot.x value: 0 @@ -9835,7 +10210,7 @@ PrefabInstance: - target: {fileID: 231208879271050929, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: cameraController value: - objectReference: {fileID: 7887254271563545726} + objectReference: {fileID: 0} - target: {fileID: 231208879274710924, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: m_AnchorMax.y value: 1 @@ -9911,7 +10286,7 @@ PrefabInstance: - target: {fileID: 231208879654799411, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: cameraController value: - objectReference: {fileID: 7887254271563545726} + objectReference: {fileID: 0} - target: {fileID: 231208879664146760, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -9936,17 +10311,25 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 231208879664146763, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} - target: {fileID: 231208879664146763, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Target value: - objectReference: {fileID: 1170116141} + objectReference: {fileID: 1793010831} - target: {fileID: 231208879664146763, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[1].m_Target value: objectReference: {fileID: 0} - target: {fileID: 231208879664146763, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName - value: + value: SetBackgroundWhite + objectReference: {fileID: 0} + - target: {fileID: 231208879664146763, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + propertyPath: onValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: Urchin.Behaviors.CameraBehavior, urchin.behaviors objectReference: {fileID: 0} - target: {fileID: 231208879810997292, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: m_AnchorMax.y @@ -9967,7 +10350,7 @@ PrefabInstance: - target: {fileID: 231208879810997295, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Target value: - objectReference: {fileID: 689637645} + objectReference: {fileID: 0} - target: {fileID: 231208879810997295, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName value: UpdateID @@ -10199,7 +10582,7 @@ PrefabInstance: - target: {fileID: 231208880477188383, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: cameraController value: - objectReference: {fileID: 7887254271563545726} + objectReference: {fileID: 1793010832} - target: {fileID: 231208880491200672, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -10352,6 +10735,14 @@ PrefabInstance: propertyPath: m_RootOrder value: 7 objectReference: {fileID: 0} + - target: {fileID: 3710492877229581598, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + propertyPath: m_AnchoredPosition.y + value: 4.8999023 + objectReference: {fileID: 0} + - target: {fileID: 3710492877229581599, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + propertyPath: m_Name + value: IDInput + objectReference: {fileID: 0} - target: {fileID: 3764308364162813692, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: m_AnchorMax.y value: 1 @@ -10368,6 +10759,22 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: -15 objectReference: {fileID: 0} + - target: {fileID: 3872008038248816544, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3872008038248816544, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3872008038248816544, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 3872008038248816544, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} - target: {fileID: 4736730828150503533, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: m_AnchorMax.y value: 1 @@ -10396,6 +10803,46 @@ PrefabInstance: propertyPath: m_IsActive value: 1 objectReference: {fileID: 0} + - target: {fileID: 5394595607194702958, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + propertyPath: m_AnchorMax.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5394595607194702958, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5394595607194702958, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5736608586804912419, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5736608586804912419, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Mode + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5736608586804912419, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1891580943} + - target: {fileID: 5736608586804912419, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 5736608586804912419, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: UpdateID + objectReference: {fileID: 0} + - target: {fileID: 5736608586804912419, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: Urchin.API.Client_SocketIO, urchin.api + objectReference: {fileID: 0} + - target: {fileID: 5736608586804912419, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + propertyPath: m_OnEndEdit.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine + objectReference: {fileID: 0} - target: {fileID: 5873102397275390939, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode value: 4 @@ -10447,15 +10894,15 @@ PrefabInstance: - target: {fileID: 7270662321234023859, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: brainCameraController value: - objectReference: {fileID: 7887254271563545726} + objectReference: {fileID: 0} - target: {fileID: 7270662321352231643, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: cameraController value: - objectReference: {fileID: 7887254271563545726} + objectReference: {fileID: 0} - target: {fileID: 7270662321770684968, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: cameraController value: - objectReference: {fileID: 7887254271563545726} + objectReference: {fileID: 0} - target: {fileID: 7270662321938345605, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -10471,11 +10918,11 @@ PrefabInstance: - target: {fileID: 7270662323094379807, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: cameraController value: - objectReference: {fileID: 7887254271563545726} + objectReference: {fileID: 0} - target: {fileID: 7270662323121202640, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: cameraController value: - objectReference: {fileID: 7887254271563545726} + objectReference: {fileID: 0} - target: {fileID: 7958904233872172113, guid: 797f30df999d646458e9984856b9b1f7, type: 3} propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode value: 4 @@ -10516,17 +10963,22 @@ PrefabInstance: propertyPath: m_IsActive value: 0 objectReference: {fileID: 0} + - target: {fileID: 9218199754286686219, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + propertyPath: _idPanelGO + value: + objectReference: {fileID: 2137763920} m_RemovedComponents: [] m_RemovedGameObjects: - {fileID: 7270662321938345606, guid: 797f30df999d646458e9984856b9b1f7, type: 3} - {fileID: 231208880491200673, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + - {fileID: 7773516218411812634, guid: 797f30df999d646458e9984856b9b1f7, type: 3} m_AddedGameObjects: - targetCorrespondingSourceObject: {fileID: 231208878819221207, guid: 797f30df999d646458e9984856b9b1f7, type: 3} insertIndex: -1 addedObject: {fileID: 1503741397} - - targetCorrespondingSourceObject: {fileID: 231208878819221207, guid: 797f30df999d646458e9984856b9b1f7, type: 3} - insertIndex: -1 - addedObject: {fileID: 678767612} + - targetCorrespondingSourceObject: {fileID: 231208878900000729, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + insertIndex: 0 + addedObject: {fileID: 801865801} m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 797f30df999d646458e9984856b9b1f7, type: 3} --- !u!224 &231208879068536370 stripped @@ -10534,294 +10986,17 @@ RectTransform: m_CorrespondingSourceObject: {fileID: 231208878819221207, guid: 797f30df999d646458e9984856b9b1f7, type: 3} m_PrefabInstance: {fileID: 231208879068536369} m_PrefabAsset: {fileID: 0} ---- !u!1001 &7887254271563545724 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 0} - m_Modifications: - - target: {fileID: 163920639137477556, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: ShapeModule.type - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 163920639137477556, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: ShapeModule.radiusThickness - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 756099984625368948, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: _lightBehavior - value: - objectReference: {fileID: 0} - - target: {fileID: 2919354365425105655, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_UseCustomVertexStreams - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 2919354365425105655, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_Materials.Array.data[0] - value: - objectReference: {fileID: -876546973899608171, guid: 1dc5f88314fced14b872effb4596bd94, type: 3} - - target: {fileID: 2919354365425105655, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_VertexStreams.Array.size - value: 5 - objectReference: {fileID: 0} - - target: {fileID: 2919354365425105655, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_VertexStreams.Array.data[4] - value: 14 - objectReference: {fileID: 0} - - target: {fileID: 3393775225267903235, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalPosition.y - value: 16 - objectReference: {fileID: 0} - - target: {fileID: 3393775225267903235, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalRotation.w - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 3393775225267903235, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalRotation.x - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 3393775225267903235, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 90 - objectReference: {fileID: 0} - - target: {fileID: 3393775225267903238, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: near clip plane - value: 0.01 - objectReference: {fileID: 0} - - target: {fileID: 3393775226113162769, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3393775226113162769, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3393775226113162769, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3393775226113162769, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3393775226113162769, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3393775226113162769, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3393775226113162769, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3393775226113162775, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: brain - value: - objectReference: {fileID: 1690469967} - - target: {fileID: 3393775226113162775, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: _mainCameraTargetT - value: - objectReference: {fileID: 865640631} - - target: {fileID: 3393775226113162775, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: RotationChangedEvent.m_PersistentCalls.m_Calls.Array.size - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3393775226113162775, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: RotationChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_Mode - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3393775226113162775, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: RotationChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_Target - value: - objectReference: {fileID: 436999472} - - target: {fileID: 3393775226113162775, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: RotationChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_CallState - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 3393775226113162775, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: RotationChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName - value: UpdateRotation - objectReference: {fileID: 0} - - target: {fileID: 3393775226113162775, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: RotationChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName - value: Urchin.Cameras.CameraMiniController, urchin.cameras - objectReference: {fileID: 0} - - target: {fileID: 3393775226113162775, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: RotationChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName - value: UnityEngine.Object, UnityEngine - objectReference: {fileID: 0} - - target: {fileID: 3393775226405738686, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: near clip plane - value: -50 - objectReference: {fileID: 0} - - target: {fileID: 3393775226405738686, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_CullingMask.m_Bits - value: 16383 - objectReference: {fileID: 0} - - target: {fileID: 3393775226405738687, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalPosition.y - value: 16 - objectReference: {fileID: 0} - - target: {fileID: 3393775226405738687, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalRotation.w - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 3393775226405738687, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalRotation.x - value: 0.7071068 - objectReference: {fileID: 0} - - target: {fileID: 3393775226405738687, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 90 - objectReference: {fileID: 0} - - target: {fileID: 4417393973230421729, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_Name - value: Urchin - objectReference: {fileID: 0} - - target: {fileID: 5428924515040814815, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5428924515040814815, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5428924515040814815, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5428924515040814815, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5428924515040814815, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5428924515040814815, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5428924515040814815, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5428924515040814815, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5428924515040814815, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5428924515040814815, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 5499955737624851356, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: ColormapChangeEvent.m_PersistentCalls.m_Calls.Array.size - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 5499955737624851356, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: ColormapChangeEvent.m_PersistentCalls.m_Calls.Array.data[0].m_Target - value: - objectReference: {fileID: 116938375} - - target: {fileID: 5499955737624851356, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: ColormapChangeEvent.m_PersistentCalls.m_Calls.Array.data[0].m_CallState - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 5499955737624851356, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: ColormapChangeEvent.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName - value: SetColormap - objectReference: {fileID: 0} - - target: {fileID: 5499955737624851356, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: ColormapChangeEvent.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName - value: ColormapPanel, urchin.unity - objectReference: {fileID: 0} - - target: {fileID: 5499955737624851356, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: ColormapChangeEvent.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName - value: UnityEngine.Object, UnityEngine - objectReference: {fileID: 0} - - target: {fileID: 6701840750721492199, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: _cameraTransform - value: - objectReference: {fileID: 7887254271563545727} - - target: {fileID: 7501069364843500107, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: _brainRegionMaterials.Array.size - value: 5 - objectReference: {fileID: 0} - - target: {fileID: 7501069364843500107, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: _brainRegionMaterials.Array.data[5] - value: - objectReference: {fileID: -876546973899608171, guid: 6f9304d39b41cba46877c293b47816eb, type: 3} - - target: {fileID: 7747742223502542136, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: _probeParentT - value: - objectReference: {fileID: 325879979} - - target: {fileID: 7747742223502542136, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: _defaultProbeStyle - value: line - objectReference: {fileID: 0} - - target: {fileID: 7747742223502542136, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: _probePrefabNames.Array.size - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 7747742223502542136, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: _probePrefabOptions.Array.size - value: 2 - objectReference: {fileID: 0} - - target: {fileID: 7747742223502542136, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: _probePrefabNames.Array.data[0] - value: line - objectReference: {fileID: 0} - - target: {fileID: 7747742223502542136, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: _probePrefabNames.Array.data[1] - value: neuropixels2.4 - objectReference: {fileID: 0} - - target: {fileID: 7747742223502542136, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: _probePrefabOptions.Array.data[0] - value: - objectReference: {fileID: 2507564506256405100, guid: bbfd294d9a4375144b5214e4196f5d20, type: 3} - - target: {fileID: 7747742223502542136, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - propertyPath: _probePrefabOptions.Array.data[1] - value: - objectReference: {fileID: 8943063119080654577, guid: c6cbe13bba479184aa05bff7d11023f5, type: 3} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} ---- !u!114 &7887254271563545725 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 3393775226113162772, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - m_PrefabInstance: {fileID: 7887254271563545724} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 0} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 29696c16e4ad4234f81dfdbd428c8ad3, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!114 &7887254271563545726 stripped +--- !u!114 &231208879068536373 stripped MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 3393775226113162775, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - m_PrefabInstance: {fileID: 7887254271563545724} + m_CorrespondingSourceObject: {fileID: 9218199754286686219, guid: 797f30df999d646458e9984856b9b1f7, type: 3} + m_PrefabInstance: {fileID: 231208879068536369} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 9d43419cf1d43bf4995059dad0606dfc, type: 3} + m_Script: {fileID: 11500000, guid: 48f1522bdfa54d94aa2fb05cf5113ccb, type: 3} m_Name: m_EditorClassIdentifier: ---- !u!4 &7887254271563545727 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 3393775226113162769, guid: a0c57925ee59dae4ebf1f78ba70837a6, type: 3} - m_PrefabInstance: {fileID: 7887254271563545724} - m_PrefabAsset: {fileID: 0} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 @@ -10830,4 +11005,5 @@ SceneRoots: - {fileID: 1495091484} - {fileID: 231208879068536369} - {fileID: 1044665372} - - {fileID: 7887254271563545724} + - {fileID: 431647798} + - {fileID: 1040005262} diff --git a/UnityClient/Assets/Scripts/SettingsPanel.cs b/UnityClient/Assets/Scripts/SettingsPanel.cs index 6c507fd1..814ef36a 100644 --- a/UnityClient/Assets/Scripts/SettingsPanel.cs +++ b/UnityClient/Assets/Scripts/SettingsPanel.cs @@ -8,11 +8,6 @@ public class SettingsPanel : MonoBehaviour { [SerializeField] private BrainCameraController cameraController; [SerializeField] private GameObject settingsPanel; - // Start is called before the first frame update - void Start() - { - - } // Update is called once per frame void Update() diff --git a/UnityClient/Assets/Scripts/UI/IDPanel.cs b/UnityClient/Assets/Scripts/UI/IDPanel.cs new file mode 100644 index 00000000..17e5ae91 --- /dev/null +++ b/UnityClient/Assets/Scripts/UI/IDPanel.cs @@ -0,0 +1,18 @@ +using TMPro; +using UnityEngine; + +public class IDPanel : MonoBehaviour +{ + [SerializeField] TMP_InputField _inputField; + [SerializeField] GameObject _idPanelGO; + + public void UpdateText(string text) + { + _inputField.SetTextWithoutNotify(text); + } + + public void SetVisibility(bool visible) + { + _idPanelGO.SetActive(visible); + } +} diff --git a/UnityClient/Assets/Shaders/RendererFeatures/DepthNormalsFeature.cs.meta b/UnityClient/Assets/Scripts/UI/IDPanel.cs.meta similarity index 83% rename from UnityClient/Assets/Shaders/RendererFeatures/DepthNormalsFeature.cs.meta rename to UnityClient/Assets/Scripts/UI/IDPanel.cs.meta index f13e5e35..afddaf96 100644 --- a/UnityClient/Assets/Shaders/RendererFeatures/DepthNormalsFeature.cs.meta +++ b/UnityClient/Assets/Scripts/UI/IDPanel.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e7b9e7e77d0a5f344badbd4dd22cfebe +guid: 48f1522bdfa54d94aa2fb05cf5113ccb MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/UnityClient/Assets/Scripts/UrchinCore.cs b/UnityClient/Assets/Scripts/UrchinCore.cs index e38ca92b..4e7202ca 100644 --- a/UnityClient/Assets/Scripts/UrchinCore.cs +++ b/UnityClient/Assets/Scripts/UrchinCore.cs @@ -65,7 +65,7 @@ private void Awake() if (Instance == null) Instance = this; else - throw new Exception("There should only be on UM_Launch component in the scene"); + throw new Exception("There should only be one UrchinCore component in the scene"); originalTransformPositionsLeft = new(); @@ -116,7 +116,7 @@ void Update() } // Before checking for keydown events, return if the user is typing in the input box - if (idPanel.GetComponent().isFocused) + if (idPanel.activeSelf && idPanel.GetComponentInChildren().isFocused) return; // Check for key down events @@ -215,7 +215,7 @@ private void UpdateExploded() public void UpdateDataIndex(float newIdx) { - Debug.Log(newIdx); + //TODO } public void UpdateTextColor(bool state) diff --git a/UnityClient/Assets/Shaders/Includes.meta b/UnityClient/Assets/Shaders/Includes.meta deleted file mode 100644 index 0fe472a8..00000000 --- a/UnityClient/Assets/Shaders/Includes.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 502d435449fe80542a71e63b4ea35345 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/UnityClient/Assets/Shaders/Includes/DecodeDepthNormals.hlsl b/UnityClient/Assets/Shaders/Includes/DecodeDepthNormals.hlsl deleted file mode 100644 index 4ed2c4d9..00000000 --- a/UnityClient/Assets/Shaders/Includes/DecodeDepthNormals.hlsl +++ /dev/null @@ -1,48 +0,0 @@ -// Taken from the Unity built-in shader source - -// MIT License - -// Copyright(c) 2016 Unity Technologies - -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files(the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions : - -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -#ifndef DECODEDEPTHNORMALS_INCLUDED -#define DECODEDEPTHNORMALS_INCLUDED - -inline float DecodeFloatRG(float2 enc) { - float2 kDecodeDot = float2(1.0, 1 / 255.0); - return dot(enc, kDecodeDot); -} - -inline float3 DecodeViewNormalStereo(float4 enc4) { - float kScale = 1.7777; - float3 nn = enc4.xyz * float3(2 * kScale, 2 * kScale, 0) + float3(-kScale, -kScale, 1); - float g = 2.0 / dot(nn.xyz, nn.xyz); - float3 n; - n.xy = g * nn.xy; - n.z = g - 1; - return n; -} - -inline void DecodeDepthNormal(float4 enc, out float depth, out float3 normal) { - depth = DecodeFloatRG(enc.zw); - normal = DecodeViewNormalStereo(enc); -} - -#endif \ No newline at end of file diff --git a/UnityClient/Assets/Shaders/Includes/DecodeDepthNormals.hlsl.meta b/UnityClient/Assets/Shaders/Includes/DecodeDepthNormals.hlsl.meta deleted file mode 100644 index d6c9f515..00000000 --- a/UnityClient/Assets/Shaders/Includes/DecodeDepthNormals.hlsl.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 4b235092260967f4c93dd58cfa9e61f7 -ShaderImporter: - externalObjects: {} - defaultTextures: [] - nonModifiableTextures: [] - preprocessorOverride: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/UnityClient/Assets/Shaders/Includes/Lighting.hlsl b/UnityClient/Assets/Shaders/Includes/Lighting.hlsl deleted file mode 100644 index 42232854..00000000 --- a/UnityClient/Assets/Shaders/Includes/Lighting.hlsl +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright (C) 2020 NedMakesGames - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . - -// This is the Lighting.hlsl file for the end of the first video in 2020.2 - -#ifndef CUSTOM_LIGHTING_INCLUDED -#define CUSTOM_LIGHTING_INCLUDED - -void CalculateMainLight_float(float3 WorldPos, out float3 Direction, out float3 Color, out half DistanceAtten, out half ShadowAtten) { -#ifdef SHADERGRAPH_PREVIEW - Direction = half3(0.5, 0.5, 0); - Color = 1; - DistanceAtten = 1; - ShadowAtten = 1; -#else -#if SHADOWS_SCREEN - half4 clipPos = TransformWorldToHClip(WorldPos); - half4 shadowCoord = ComputeScreenPos(clipPos); -#else - half4 shadowCoord = TransformWorldToShadowCoord(WorldPos); -#endif - Light mainLight = GetMainLight(shadowCoord); - Direction = mainLight.direction; - Color = mainLight.color; - DistanceAtten = mainLight.distanceAttenuation; - ShadowAtten = mainLight.shadowAttenuation; -#endif -} - -void AddAdditionalLights_float(float Smoothness, float3 WorldPosition, float3 WorldNormal, float3 WorldView, - float MainDiffuse, float MainSpecular, float3 MainColor, - out float Diffuse, out float Specular, out float3 Color) { - Diffuse = MainDiffuse; - Specular = MainSpecular; - Color = MainColor * (MainDiffuse + MainSpecular); - -#ifndef SHADERGRAPH_PREVIEW - int pixelLightCount = GetAdditionalLightsCount(); - for (int i = 0; i < pixelLightCount; ++i) { - Light light = GetAdditionalLight(i, WorldPosition); - half NdotL = saturate(dot(WorldNormal, light.direction)); - half atten = light.distanceAttenuation * light.shadowAttenuation; - half thisDiffuse = atten * NdotL; - half thisSpecular = LightingSpecular(thisDiffuse, light.direction, WorldNormal, WorldView, 1, Smoothness); - Diffuse += thisDiffuse; - Specular += thisSpecular; - Color += light.color * (thisDiffuse + thisSpecular); - } -#endif - - half total = Diffuse + Specular; - // If no light touches this pixel, set the color to the main light's color - Color = total <= 0 ? MainColor : Color / total; -} - -#endif \ No newline at end of file diff --git a/UnityClient/Assets/Shaders/Includes/Lighting.hlsl.meta b/UnityClient/Assets/Shaders/Includes/Lighting.hlsl.meta deleted file mode 100644 index 9098a929..00000000 --- a/UnityClient/Assets/Shaders/Includes/Lighting.hlsl.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: afeb3e32dbf4bab47a54b090df5d37ef -ShaderImporter: - externalObjects: {} - defaultTextures: [] - nonModifiableTextures: [] - preprocessorOverride: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/UnityClient/Assets/Shaders/Includes/OutlinesInclude.hlsl b/UnityClient/Assets/Shaders/Includes/OutlinesInclude.hlsl deleted file mode 100644 index d27cd8a2..00000000 --- a/UnityClient/Assets/Shaders/Includes/OutlinesInclude.hlsl +++ /dev/null @@ -1,114 +0,0 @@ -// MIT License - -// Copyright (c) 2020 NedMakesGames - -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files(the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions : - -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -#ifndef SOBELOUTLINES_INCLUDED -#define SOBELOUTLINES_INCLUDED - -#include "DecodeDepthNormals.hlsl" - -TEXTURE2D(_DepthNormalsTexture); SAMPLER(sampler_DepthNormalsTexture); - -// The sobel effect runs by sampling the texture around a point to see -// if there are any large changes. Each sample is multiplied by a convolution -// matrix weight for the x and y components seperately. Each value is then -// added together, and the final sobel value is the length of the resulting float2. -// Higher values mean the algorithm detected more of an edge - -// These are points to sample relative to the starting point -static float2 sobelSamplePoints[9] = { - float2(-1, 1), float2(0, 1), float2(1, 1), - float2(-1, 0), float2(0, 0), float2(1, 0), - float2(-1, -1), float2(0, -1), float2(1, -1), -}; - -// Weights for the x component -static float sobelXMatrix[9] = { - 1, 0, -1, - 2, 0, -2, - 1, 0, -1 -}; - -// Weights for the y component -static float sobelYMatrix[9] = { - 1, 2, 1, - 0, 0, 0, - -1, -2, -1 -}; - -// This function runs the sobel algorithm over the depth texture -void DepthSobel_float(float2 UV, float Thickness, out float Out) { - float2 sobel = 0; - // We can unroll this loop to make it more efficient - // The compiler is also smart enough to remove the i=4 iteration, which is always zero - [unroll] for (int i = 0; i < 9; i++) { - float depth = SHADERGRAPH_SAMPLE_SCENE_DEPTH(UV + sobelSamplePoints[i] * Thickness); - sobel += depth * float2(sobelXMatrix[i], sobelYMatrix[i]); - } - // Get the final sobel value - Out = length(sobel); -} - -// Sample the depth normal map and decode depth and normal from the texture -void GetDepthAndNormal(float2 uv, out float depth, out float3 normal) { - float4 coded = SAMPLE_TEXTURE2D(_DepthNormalsTexture, sampler_DepthNormalsTexture, uv); - DecodeDepthNormal(coded, depth, normal); -} - -// A wrapper around the above function for use in a custom function node -void CalculateDepthNormal_float(float2 UV, out float Depth, out float3 Normal) { - GetDepthAndNormal(UV, Depth, Normal); - // Normals are encoded from 0 to 1 in the texture. Remap them to -1 to 1 for easier use in the graph - Normal = Normal * 2 - 1; -} - -void NormalsSobel_float(float2 UV, float Thickness, out float Out) { - // We have to run the sobel algorithm over the XYZ channels separately, like color - float2 sobelX = 0; - float2 sobelY = 0; - float2 sobelZ = 0; - // We can unroll this loop to make it more efficient - // The compiler is also smart enough to remove the i=4 iteration, which is always zero - [unroll] for (int i = 0; i < 9; i++) { - float depth; - float3 normal; - GetDepthAndNormal(UV + sobelSamplePoints[i] * Thickness, depth, normal); - // Create the kernel for this iteration - float2 kernel = float2(sobelXMatrix[i], sobelYMatrix[i]); - // Accumulate samples for each coordinate - sobelX += normal.x * kernel; - sobelY += normal.y * kernel; - sobelZ += normal.z * kernel; - } - // Get the final sobel value - // Combine the XYZ values by taking the one with the largest sobel value - Out = max(length(sobelX), max(length(sobelY), length(sobelZ))); -} - -void ViewDirectionFromScreenUV_float(float2 In, out float3 Out) { - // Code by Keijiro Takahashi @_kzr and Ben Golus @bgolus - // Get the perspective projection - float2 p11_22 = float2(unity_CameraProjection._11, unity_CameraProjection._22); - // Convert the uvs into view space by "undoing" projection - Out = -normalize(float3((In * 2 - 1) / p11_22, -1)); -} - -#endif \ No newline at end of file diff --git a/UnityClient/Assets/Shaders/Includes/OutlinesInclude.hlsl.meta b/UnityClient/Assets/Shaders/Includes/OutlinesInclude.hlsl.meta deleted file mode 100644 index 0ba18af9..00000000 --- a/UnityClient/Assets/Shaders/Includes/OutlinesInclude.hlsl.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: ce2d543bf21ae424d952d2e26b9d3cc2 -ShaderImporter: - externalObjects: {} - defaultTextures: [] - nonModifiableTextures: [] - preprocessorOverride: 0 - userData: - assetBundleName: - assetBundleVariant: diff --git a/UnityClient/Assets/Shaders/RendererFeatures.meta b/UnityClient/Assets/Shaders/RendererFeatures.meta deleted file mode 100644 index 313cd69e..00000000 --- a/UnityClient/Assets/Shaders/RendererFeatures.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 4eafd46f1ded0464c822755f2c9c8096 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/UnityClient/Assets/Shaders/RendererFeatures/DepthNormalsFeature.cs b/UnityClient/Assets/Shaders/RendererFeatures/DepthNormalsFeature.cs deleted file mode 100644 index c34a039f..00000000 --- a/UnityClient/Assets/Shaders/RendererFeatures/DepthNormalsFeature.cs +++ /dev/null @@ -1,96 +0,0 @@ -// MIT License - -// Copyright (c) 2020 NedMakesGames - -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files(the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions : - -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -using System.Collections.Generic; -using UnityEngine; -using UnityEngine.Rendering; -using UnityEngine.Rendering.Universal; - -public class DepthNormalsFeature : ScriptableRendererFeature -{ - class RenderPass : ScriptableRenderPass - { - - private Material material; - private RenderTargetHandle destinationHandle; - private List shaderTags; - private FilteringSettings filteringSettings; - - public RenderPass(Material material) : base() - { - this.material = material; - // This contains a list of shader tags. The renderer will only render objects with - // materials containing a shader with at least one tag in this list - this.shaderTags = new List() { - new ShaderTagId("DepthOnly"), - //new ShaderTagId("SRPDefaultUnlit"), - //new ShaderTagId("UniversalForward"), - //new ShaderTagId("LightweightForward"), - }; - // Render opaque materials - this.filteringSettings = new FilteringSettings(RenderQueueRange.opaque); - destinationHandle.Init("_DepthNormalsTexture"); - } - - // Configure the pass by creating a temporary render texture and - // readying it for rendering - public override void Configure(CommandBuffer cmd, RenderTextureDescriptor cameraTextureDescriptor) - { - cmd.GetTemporaryRT(destinationHandle.id, cameraTextureDescriptor, FilterMode.Point); - ConfigureTarget(destinationHandle.Identifier()); - ConfigureClear(ClearFlag.All, Color.black); - } - - public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) - { - - // Create the draw settings, which configures a new draw call to the GPU - var drawSettings = CreateDrawingSettings(shaderTags, ref renderingData, renderingData.cameraData.defaultOpaqueSortFlags); - // We cant to render all objects using our material - drawSettings.overrideMaterial = material; - context.DrawRenderers(renderingData.cullResults, ref drawSettings, ref filteringSettings); - } - - public override void FrameCleanup(CommandBuffer cmd) - { - cmd.ReleaseTemporaryRT(destinationHandle.id); - } - } - - private RenderPass renderPass; - - public override void Create() - { - // We will use the built-in renderer's depth normals texture shader - Material material = CoreUtils.CreateEngineMaterial("Hidden/Internal-DepthNormalsTexture"); - this.renderPass = new RenderPass(material); - // Render after shadow caster, depth, etc. passes - renderPass.renderPassEvent = RenderPassEvent.AfterRenderingPrePasses; - } - - public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) - { - renderer.EnqueuePass(renderPass); - } -} - - diff --git a/UnityClient/Assets/Shaders/SubGraphs.meta b/UnityClient/Assets/Shaders/SubGraphs.meta deleted file mode 100644 index 47b8e3c6..00000000 --- a/UnityClient/Assets/Shaders/SubGraphs.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: 1684d1820f8dd4b4c942c0ad73acd5d4 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/UnityClient/Assets/Shaders/SubGraphs/CalculateLights.shadersubgraph b/UnityClient/Assets/Shaders/SubGraphs/CalculateLights.shadersubgraph deleted file mode 100644 index 34b9a996..00000000 --- a/UnityClient/Assets/Shaders/SubGraphs/CalculateLights.shadersubgraph +++ /dev/null @@ -1,660 +0,0 @@ -{ - "m_SGVersion": 2, - "m_Type": "UnityEditor.ShaderGraph.GraphData", - "m_ObjectId": "51c438837ef34a098ebe01419b3f4a4e", - "m_Properties": [], - "m_Keywords": [], - "m_Nodes": [ - { - "m_Id": "fb63ba42d611467880db710c4aca4100" - }, - { - "m_Id": "e7389c383d0f460fa4dcc799bf4a3efe" - }, - { - "m_Id": "c14ce7a9b6fb432981ca74c5529a00e9" - }, - { - "m_Id": "a72bdb28f428495f83c5bd88998d4044" - }, - { - "m_Id": "22af45a8b05d4a9fac3096c1a90dffd2" - }, - { - "m_Id": "bb3eca946bef40dca69ffbf4e4d86ead" - } - ], - "m_GroupDatas": [], - "m_StickyNoteDatas": [], - "m_Edges": [ - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "22af45a8b05d4a9fac3096c1a90dffd2" - }, - "m_SlotId": 2 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "bb3eca946bef40dca69ffbf4e4d86ead" - }, - "m_SlotId": 0 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "a72bdb28f428495f83c5bd88998d4044" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "22af45a8b05d4a9fac3096c1a90dffd2" - }, - "m_SlotId": 1 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "bb3eca946bef40dca69ffbf4e4d86ead" - }, - "m_SlotId": 1 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "fb63ba42d611467880db710c4aca4100" - }, - "m_SlotId": 2 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "c14ce7a9b6fb432981ca74c5529a00e9" - }, - "m_SlotId": 1 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "fb63ba42d611467880db710c4aca4100" - }, - "m_SlotId": 1 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "c14ce7a9b6fb432981ca74c5529a00e9" - }, - "m_SlotId": 4 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "22af45a8b05d4a9fac3096c1a90dffd2" - }, - "m_SlotId": 0 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "e7389c383d0f460fa4dcc799bf4a3efe" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "c14ce7a9b6fb432981ca74c5529a00e9" - }, - "m_SlotId": 0 - } - } - ], - "m_VertexContext": { - "m_Position": { - "x": 0.0, - "y": 0.0 - }, - "m_Blocks": [] - }, - "m_FragmentContext": { - "m_Position": { - "x": 0.0, - "y": 0.0 - }, - "m_Blocks": [] - }, - "m_PreviewData": { - "serializedMesh": { - "m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}", - "m_Guid": "" - } - }, - "m_Path": "Sub Graphs", - "m_ConcretePrecision": 0, - "m_PreviewMode": 2, - "m_OutputNode": { - "m_Id": "fb63ba42d611467880db710c4aca4100" - }, - "m_ActiveTargets": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "1a996eb8c69d43c38b7be9821a879889", - "m_Id": 0, - "m_DisplayName": "In", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "In", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "2002e0f7c47c4f89a5bc1410ff5ec527", - "m_Id": 3, - "m_DisplayName": "ShadowAtten", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "ShadowAtten", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DotProductNode", - "m_ObjectId": "22af45a8b05d4a9fac3096c1a90dffd2", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Dot Product", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": 86.39999389648438, - "y": -110.39999389648438, - "width": 207.99998474121095, - "height": 301.6000061035156 - } - }, - "m_Slots": [ - { - "m_Id": "3280632458954e84b19247ac1d375eb7" - }, - { - "m_Id": "7b6dc520928249d896bec7729bda164f" - }, - { - "m_Id": "3d128bab928b4c52a431fab196e1f910" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", - "m_ObjectId": "2bcbfc3d2dd845769ad679591a750e0e", - "m_Id": 0, - "m_DisplayName": "Out", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 1.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "3280632458954e84b19247ac1d375eb7", - "m_Id": 0, - "m_DisplayName": "A", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "A", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "3d128bab928b4c52a431fab196e1f910", - "m_Id": 2, - "m_DisplayName": "Out", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", - "m_ObjectId": "4e740188199240f0861f9c81325a4e77", - "m_Id": 1, - "m_DisplayName": "Color", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "Color", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "7b6dc520928249d896bec7729bda164f", - "m_Id": 1, - "m_DisplayName": "B", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "B", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 1.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", - "m_ObjectId": "95a55c240ca7482f8ca4b16dbca005af", - "m_Id": 1, - "m_DisplayName": "Color", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Color", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.NormalVectorNode", - "m_ObjectId": "a72bdb28f428495f83c5bd88998d4044", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Normal Vector", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -242.39999389648438, - "y": 52.0, - "width": 208.00001525878907, - "height": 314.3999328613281 - } - }, - "m_Slots": [ - { - "m_Id": "2bcbfc3d2dd845769ad679591a750e0e" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 2, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_Space": 2 -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.SaturateNode", - "m_ObjectId": "bb3eca946bef40dca69ffbf4e4d86ead", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Saturate", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": 360.79998779296877, - "y": -110.4000244140625, - "width": 207.99998474121095, - "height": 277.60003662109377 - } - }, - "m_Slots": [ - { - "m_Id": "1a996eb8c69d43c38b7be9821a879889" - }, - { - "m_Id": "de59e35ea70048268be2176330cd67de" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", - "m_ObjectId": "bbc54b6c91c8464999ae300b90b62543", - "m_Id": 4, - "m_DisplayName": "Direction", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Direction", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "m_Labels": [] -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode", - "m_ObjectId": "c14ce7a9b6fb432981ca74c5529a00e9", - "m_Group": { - "m_Id": "" - }, - "m_Name": "CalculateMainLight (Custom Function)", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -242.39993286132813, - "y": -366.39996337890627, - "width": 268.0, - "height": 349.5999450683594 - } - }, - "m_Slots": [ - { - "m_Id": "fbfe8b76012d45e49ef354e9bd469722" - }, - { - "m_Id": "bbc54b6c91c8464999ae300b90b62543" - }, - { - "m_Id": "95a55c240ca7482f8ca4b16dbca005af" - }, - { - "m_Id": "f092aca85ef64cdbabe5abccb3b3af6b" - }, - { - "m_Id": "2002e0f7c47c4f89a5bc1410ff5ec527" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_SourceType": 0, - "m_FunctionName": "CalculateMainLight", - "m_FunctionSource": "afeb3e32dbf4bab47a54b090df5d37ef", - "m_FunctionBody": "Enter function body here..." -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", - "m_ObjectId": "c59fa629c3bd4b589d8842809f2bdae2", - "m_Id": 0, - "m_DisplayName": "Out", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "de59e35ea70048268be2176330cd67de", - "m_Id": 1, - "m_DisplayName": "Out", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.PositionNode", - "m_ObjectId": "e7389c383d0f460fa4dcc799bf4a3efe", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Position", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -568.7999267578125, - "y": -366.3999938964844, - "width": 208.0000457763672, - "height": 314.3999938964844 - } - }, - "m_Slots": [ - { - "m_Id": "c59fa629c3bd4b589d8842809f2bdae2" - } - ], - "synonyms": [], - "m_Precision": 1, - "m_PreviewExpanded": true, - "m_PreviewMode": 2, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_Space": 4 -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "f092aca85ef64cdbabe5abccb3b3af6b", - "m_Id": 2, - "m_DisplayName": "DistanceAtten", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "DistanceAtten", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "fa3c02dacbb441d0928fbcd387903d2f", - "m_Id": 2, - "m_DisplayName": "Diffuse", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "Diffuse", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.SubGraphOutputNode", - "m_ObjectId": "fb63ba42d611467880db710c4aca4100", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Output", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": 747.2000122070313, - "y": -211.1999969482422, - "width": 121.59996795654297, - "height": 100.79998779296875 - } - }, - "m_Slots": [ - { - "m_Id": "4e740188199240f0861f9c81325a4e77" - }, - { - "m_Id": "fa3c02dacbb441d0928fbcd387903d2f" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "IsFirstSlotValid": true -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", - "m_ObjectId": "fbfe8b76012d45e49ef354e9bd469722", - "m_Id": 0, - "m_DisplayName": "WorldPos", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "WorldPos", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "m_Labels": [] -} - diff --git a/UnityClient/Assets/Shaders/SubGraphs/CalculateLights.shadersubgraph.meta b/UnityClient/Assets/Shaders/SubGraphs/CalculateLights.shadersubgraph.meta deleted file mode 100644 index fb54b9fa..00000000 --- a/UnityClient/Assets/Shaders/SubGraphs/CalculateLights.shadersubgraph.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 961ae501e7964194c82fe62fa4526af6 -ScriptedImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 2 - userData: - assetBundleName: - assetBundleVariant: - script: {fileID: 11500000, guid: 60072b568d64c40a485e0fc55012dc9f, type: 3} diff --git a/UnityClient/Assets/Shaders/SubGraphs/Outlines.shadersubgraph b/UnityClient/Assets/Shaders/SubGraphs/Outlines.shadersubgraph deleted file mode 100644 index cd2b60e6..00000000 --- a/UnityClient/Assets/Shaders/SubGraphs/Outlines.shadersubgraph +++ /dev/null @@ -1,3653 +0,0 @@ -{ - "m_SGVersion": 2, - "m_Type": "UnityEditor.ShaderGraph.GraphData", - "m_ObjectId": "8f3d32a166e941c3bf071e9a1b0464a5", - "m_Properties": [ - { - "m_Id": "dd075c9d965548c3a670876d5af2480b" - }, - { - "m_Id": "bab05b1488b64dc0a8ab98f5d5358355" - }, - { - "m_Id": "8b86c0987b0545b68719a28defa97210" - }, - { - "m_Id": "bf9b7705136840288fe43899e93f9c33" - }, - { - "m_Id": "0fe5bfb2a37b466dbedc387f3614f79f" - }, - { - "m_Id": "b67578a13d7149b5863665765fd58409" - }, - { - "m_Id": "81ea168c550242c9b32e19abf928ddd4" - }, - { - "m_Id": "8d337c2389544bd0b7c509f9e2d37208" - }, - { - "m_Id": "bdef768322f54f449524ade14a5a9271" - }, - { - "m_Id": "f491904b78e8471ebc25c231de91e4ec" - }, - { - "m_Id": "94c014c9ca5c4b28bff730984771b688" - }, - { - "m_Id": "7a2c89dda1aa48f68d6388e931074e2c" - }, - { - "m_Id": "0454ffee6f0341acac258fbf7e44edb7" - } - ], - "m_Keywords": [], - "m_Nodes": [ - { - "m_Id": "ff66c373ffb3439f98adc5ce34931117" - }, - { - "m_Id": "f1679376c6f2453c9b99bdbd8bc7c80a" - }, - { - "m_Id": "74acfa4fcc3a463b938c1207c94c1681" - }, - { - "m_Id": "e19d26517ad14c92900f8534c9d9f6a3" - }, - { - "m_Id": "fd94a904fb004bce98a77bb136ae0b2e" - }, - { - "m_Id": "438ea06771e34e48aa40c9c1d4d65b2e" - }, - { - "m_Id": "48d819b4ae9d4fb3bed5bdc0419797da" - }, - { - "m_Id": "a0d7f73db0c94c2db4cf12d031fb6151" - }, - { - "m_Id": "1554a9fe77d2470fa9f2606754190798" - }, - { - "m_Id": "98e2f0d770634f679a141e6ebb92b5e4" - }, - { - "m_Id": "e5be1f9dea1f48b6a6e3b9d6198dd836" - }, - { - "m_Id": "014f2b794865407cb0493ddf9e5f96b6" - }, - { - "m_Id": "a80b796aedc6422689ce109d75c97800" - }, - { - "m_Id": "18b6150955a84587933d01c76d92c4be" - }, - { - "m_Id": "e06f457c5c8441efb20def92ba51eae1" - }, - { - "m_Id": "9460d9ac555a440f859811e9d2938b52" - }, - { - "m_Id": "8864f139081a41b6a3f948dd2aa72317" - }, - { - "m_Id": "156c45f9789341c98a87987a0b41037c" - }, - { - "m_Id": "075931c17b794f95b3b82ec191fe7760" - }, - { - "m_Id": "279e809b4926468e96c3df0258f8beff" - }, - { - "m_Id": "801cfc59f3c14c55b7f1e308c9efa989" - }, - { - "m_Id": "3acb3b391efb47ca9509d2d10ee2c6e7" - }, - { - "m_Id": "555b70234a204cb9b19294ea5207a3c0" - }, - { - "m_Id": "24dfa07cd76842db943a1ec2d252245c" - }, - { - "m_Id": "90b5ecbad34a42ca9c5e4eb068dd2a02" - }, - { - "m_Id": "9aa7231b224c46e49bb1b8dce412ff3c" - }, - { - "m_Id": "3febe673f19d4f6a9ff2d34129a037f0" - }, - { - "m_Id": "266c75f9271847f390a7d51f2f932c30" - }, - { - "m_Id": "2a28dc44877745bbb5908f1adf929c30" - }, - { - "m_Id": "2acb0a705e724b66b800b01e062cc99f" - }, - { - "m_Id": "cd53955adfcd4a7c9d2c3dca4ffb544f" - }, - { - "m_Id": "38aa4561b8ec4ffc8d3c3062ee8d7046" - }, - { - "m_Id": "440c1c68ab33471f8c227b2a14865c46" - } - ], - "m_GroupDatas": [], - "m_StickyNoteDatas": [], - "m_Edges": [ - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "014f2b794865407cb0493ddf9e5f96b6" - }, - "m_SlotId": 1 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "e06f457c5c8441efb20def92ba51eae1" - }, - "m_SlotId": 1 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "075931c17b794f95b3b82ec191fe7760" - }, - "m_SlotId": 3 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "3acb3b391efb47ca9509d2d10ee2c6e7" - }, - "m_SlotId": 1 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "1554a9fe77d2470fa9f2606754190798" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "438ea06771e34e48aa40c9c1d4d65b2e" - }, - "m_SlotId": -1658184029 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "156c45f9789341c98a87987a0b41037c" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "8864f139081a41b6a3f948dd2aa72317" - }, - "m_SlotId": 1 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "18b6150955a84587933d01c76d92c4be" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "014f2b794865407cb0493ddf9e5f96b6" - }, - "m_SlotId": 0 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "18b6150955a84587933d01c76d92c4be" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "a80b796aedc6422689ce109d75c97800" - }, - "m_SlotId": 0 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "24dfa07cd76842db943a1ec2d252245c" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "555b70234a204cb9b19294ea5207a3c0" - }, - "m_SlotId": 0 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "266c75f9271847f390a7d51f2f932c30" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "2a28dc44877745bbb5908f1adf929c30" - }, - "m_SlotId": 1 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "279e809b4926468e96c3df0258f8beff" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "075931c17b794f95b3b82ec191fe7760" - }, - "m_SlotId": 0 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "2a28dc44877745bbb5908f1adf929c30" - }, - "m_SlotId": 3 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "2acb0a705e724b66b800b01e062cc99f" - }, - "m_SlotId": 2 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "2acb0a705e724b66b800b01e062cc99f" - }, - "m_SlotId": 3 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "48d819b4ae9d4fb3bed5bdc0419797da" - }, - "m_SlotId": 939865761 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "38aa4561b8ec4ffc8d3c3062ee8d7046" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "2acb0a705e724b66b800b01e062cc99f" - }, - "m_SlotId": 1 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "3acb3b391efb47ca9509d2d10ee2c6e7" - }, - "m_SlotId": 2 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "438ea06771e34e48aa40c9c1d4d65b2e" - }, - "m_SlotId": 939865761 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "3febe673f19d4f6a9ff2d34129a037f0" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "2a28dc44877745bbb5908f1adf929c30" - }, - "m_SlotId": 0 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "438ea06771e34e48aa40c9c1d4d65b2e" - }, - "m_SlotId": 1 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "440c1c68ab33471f8c227b2a14865c46" - }, - "m_SlotId": 0 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "440c1c68ab33471f8c227b2a14865c46" - }, - "m_SlotId": 2 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "ff66c373ffb3439f98adc5ce34931117" - }, - "m_SlotId": 1 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "48d819b4ae9d4fb3bed5bdc0419797da" - }, - "m_SlotId": 1 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "440c1c68ab33471f8c227b2a14865c46" - }, - "m_SlotId": 1 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "555b70234a204cb9b19294ea5207a3c0" - }, - "m_SlotId": 1 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "3acb3b391efb47ca9509d2d10ee2c6e7" - }, - "m_SlotId": 0 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "74acfa4fcc3a463b938c1207c94c1681" - }, - "m_SlotId": 2 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "48d819b4ae9d4fb3bed5bdc0419797da" - }, - "m_SlotId": 950905805 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "801cfc59f3c14c55b7f1e308c9efa989" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "075931c17b794f95b3b82ec191fe7760" - }, - "m_SlotId": 1 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "8864f139081a41b6a3f948dd2aa72317" - }, - "m_SlotId": 3 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "075931c17b794f95b3b82ec191fe7760" - }, - "m_SlotId": 2 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "90b5ecbad34a42ca9c5e4eb068dd2a02" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "9aa7231b224c46e49bb1b8dce412ff3c" - }, - "m_SlotId": 0 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "9460d9ac555a440f859811e9d2938b52" - }, - "m_SlotId": 1 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "8864f139081a41b6a3f948dd2aa72317" - }, - "m_SlotId": 2 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "98e2f0d770634f679a141e6ebb92b5e4" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "48d819b4ae9d4fb3bed5bdc0419797da" - }, - "m_SlotId": -1658184029 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "9aa7231b224c46e49bb1b8dce412ff3c" - }, - "m_SlotId": 1 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "2a28dc44877745bbb5908f1adf929c30" - }, - "m_SlotId": 2 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "a0d7f73db0c94c2db4cf12d031fb6151" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "438ea06771e34e48aa40c9c1d4d65b2e" - }, - "m_SlotId": 65197052 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "a80b796aedc6422689ce109d75c97800" - }, - "m_SlotId": 2 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "e06f457c5c8441efb20def92ba51eae1" - }, - "m_SlotId": 0 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "cd53955adfcd4a7c9d2c3dca4ffb544f" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "2acb0a705e724b66b800b01e062cc99f" - }, - "m_SlotId": 0 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "e06f457c5c8441efb20def92ba51eae1" - }, - "m_SlotId": 2 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "9460d9ac555a440f859811e9d2938b52" - }, - "m_SlotId": 0 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "e19d26517ad14c92900f8534c9d9f6a3" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "74acfa4fcc3a463b938c1207c94c1681" - }, - "m_SlotId": 0 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "e19d26517ad14c92900f8534c9d9f6a3" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "f1679376c6f2453c9b99bdbd8bc7c80a" - }, - "m_SlotId": 0 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "e5be1f9dea1f48b6a6e3b9d6198dd836" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "48d819b4ae9d4fb3bed5bdc0419797da" - }, - "m_SlotId": 65197052 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "f1679376c6f2453c9b99bdbd8bc7c80a" - }, - "m_SlotId": 2 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "438ea06771e34e48aa40c9c1d4d65b2e" - }, - "m_SlotId": 950905805 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "fd94a904fb004bce98a77bb136ae0b2e" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "74acfa4fcc3a463b938c1207c94c1681" - }, - "m_SlotId": 3 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "fd94a904fb004bce98a77bb136ae0b2e" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "f1679376c6f2453c9b99bdbd8bc7c80a" - }, - "m_SlotId": 3 - } - } - ], - "m_VertexContext": { - "m_Position": { - "x": 0.0, - "y": 0.0 - }, - "m_Blocks": [] - }, - "m_FragmentContext": { - "m_Position": { - "x": 0.0, - "y": 0.0 - }, - "m_Blocks": [] - }, - "m_PreviewData": { - "serializedMesh": { - "m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}", - "m_Guid": "" - } - }, - "m_Path": "Sub Graphs", - "m_ConcretePrecision": 0, - "m_PreviewMode": 2, - "m_OutputNode": { - "m_Id": "ff66c373ffb3439f98adc5ce34931117" - }, - "m_ActiveTargets": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot", - "m_ObjectId": "005b78870b8345fdb06c0e575b696ec6", - "m_Id": 0, - "m_DisplayName": "UV", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "UV", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0 - }, - "m_Labels": [] -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode", - "m_ObjectId": "014f2b794865407cb0493ddf9e5f96b6", - "m_Group": { - "m_Id": "" - }, - "m_Name": "ViewDirectionFromScreenUV (Custom Function)", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -1665.60009765625, - "y": -517.5999755859375, - "width": 323.2000732421875, - "height": 278.4000244140625 - } - }, - "m_Slots": [ - { - "m_Id": "382e8b052f354ee099b34b41328c770c" - }, - { - "m_Id": "2c3cc595c2774b80ae4e983fa220b626" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_SourceType": 0, - "m_FunctionName": "ViewDirectionFromScreenUV", - "m_FunctionSource": "ce2d543bf21ae424d952d2e26b9d3cc2", - "m_FunctionBody": "Enter function body here..." -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", - "m_ObjectId": "0454ffee6f0341acac258fbf7e44edb7", - "m_Guid": { - "m_GuidSerialized": "34ff6e18-cf0b-4603-a741-df5ed617329f" - }, - "m_Name": "FarNormalEndDepth", - "m_DefaultReferenceName": "Vector1_0454ffee6f0341acac258fbf7e44edb7", - "m_OverrideReferenceName": "", - "m_GeneratePropertyBlock": true, - "m_Precision": 0, - "overrideHLSLDeclaration": false, - "hlslDeclarationOverride": 0, - "m_Hidden": false, - "m_Value": 0.0, - "m_FloatType": 0, - "m_RangeValues": { - "x": 0.0, - "y": 1.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "069df809380c4b709e2cbe6ba3a4e18c", - "m_Id": 2, - "m_DisplayName": "In", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "In", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.LerpNode", - "m_ObjectId": "075931c17b794f95b3b82ec191fe7760", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Lerp", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -386.39996337890627, - "y": -790.4000244140625, - "width": 207.99998474121095, - "height": 326.4000244140625 - } - }, - "m_Slots": [ - { - "m_Id": "0d0c4166a4e343d9854d38ea75755418" - }, - { - "m_Id": "eee05744d9db4f389e6555358b3e005c" - }, - { - "m_Id": "d136d50256fb485f85ac9161e1f8941b" - }, - { - "m_Id": "e5cde70386274093884864e4b94f0607" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "084c6d5dcf694382825698b11b3303a8", - "m_Id": 3, - "m_DisplayName": "Out", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "0b51172a66134dd38aab6ad84b95d350", - "m_Id": 1, - "m_DisplayName": "Out", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "0c359410f59b424bad5c60f5899b55d3", - "m_Id": 0, - "m_DisplayName": "NormalStrength", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "0d0c4166a4e343d9854d38ea75755418", - "m_Id": 0, - "m_DisplayName": "A", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "A", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "0e4250f71bb948d99351f9a58a1f91b0", - "m_Id": 950905805, - "m_DisplayName": "Sobel", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "Vector1_e4e960e9c453436ea9c1bfd2944e4bdf", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "0ef8ad2f8a004c8ea8c31d8f7465d999", - "m_Id": 1, - "m_DisplayName": "Depth", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Depth", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "0f87bfe202f04319ab801826f8878f9d", - "m_Id": 0, - "m_DisplayName": "DepthThreshold", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot", - "m_ObjectId": "0fe410d914b44328a4c0d7d390dcdea4", - "m_Id": 0, - "m_DisplayName": "ScreenUV", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0 - }, - "m_Labels": [] -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", - "m_ObjectId": "0fe5bfb2a37b466dbedc387f3614f79f", - "m_Guid": { - "m_GuidSerialized": "240564ef-b440-418d-b968-b28928f91ed8" - }, - "m_Name": "DepthThreshold", - "m_DefaultReferenceName": "Vector1_0fe5bfb2a37b466dbedc387f3614f79f", - "m_OverrideReferenceName": "", - "m_GeneratePropertyBlock": true, - "m_Precision": 0, - "overrideHLSLDeclaration": false, - "hlslDeclarationOverride": 0, - "m_Hidden": false, - "m_Value": 0.0, - "m_FloatType": 0, - "m_RangeValues": { - "x": 0.0, - "y": 1.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.PropertyNode", - "m_ObjectId": "1554a9fe77d2470fa9f2606754190798", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Property", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -78.04061126708985, - "y": 6.436397552490234, - "width": 0.0, - "height": 0.0 - } - }, - "m_Slots": [ - { - "m_Id": "84d0590f3a6a47fd9c719cb217fe800c" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_Property": { - "m_Id": "8b86c0987b0545b68719a28defa97210" - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.PropertyNode", - "m_ObjectId": "156c45f9789341c98a87987a0b41037c", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Property", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -998.4000244140625, - "y": -824.7999267578125, - "width": 151.199951171875, - "height": 34.39996337890625 - } - }, - "m_Slots": [ - { - "m_Id": "8f51f3427b1a456ab7fcd8999828ee88" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_Property": { - "m_Id": "81ea168c550242c9b32e19abf928ddd4" - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.PropertyNode", - "m_ObjectId": "18b6150955a84587933d01c76d92c4be", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Property", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -2038.4000244140625, - "y": -608.7999267578125, - "width": 130.4000244140625, - "height": 34.39996337890625 - } - }, - "m_Slots": [ - { - "m_Id": "d8e6704fe97649ce8706af07836bb603" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_Property": { - "m_Id": "dd075c9d965548c3a670876d5af2480b" - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot", - "m_ObjectId": "2402d20e263642eba31b3d878c3a2f19", - "m_Id": 0, - "m_DisplayName": "ScreenUV", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0 - }, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.PropertyNode", - "m_ObjectId": "24dfa07cd76842db943a1ec2d252245c", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Property", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -467.2000427246094, - "y": -1011.199951171875, - "width": 130.3999786376953, - "height": 34.4000244140625 - } - }, - "m_Slots": [ - { - "m_Id": "2daaf1f1b8a24d9f8affe23a93df2b44" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_Property": { - "m_Id": "dd075c9d965548c3a670876d5af2480b" - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.PropertyNode", - "m_ObjectId": "266c75f9271847f390a7d51f2f932c30", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Property", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -747.2000122070313, - "y": 685.5999755859375, - "width": 185.6000213623047, - "height": 33.600032806396487 - } - }, - "m_Slots": [ - { - "m_Id": "fb689b3e37d14b438b8ade1ba087e706" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_Property": { - "m_Id": "0454ffee6f0341acac258fbf7e44edb7" - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "271a7489a026478a895f201d9fb40c6d", - "m_Id": 3, - "m_DisplayName": "Out", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.PropertyNode", - "m_ObjectId": "279e809b4926468e96c3df0258f8beff", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Property", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -632.0000610351563, - "y": -859.9999389648438, - "width": 164.80001831054688, - "height": 34.4000244140625 - } - }, - "m_Slots": [ - { - "m_Id": "0f87bfe202f04319ab801826f8878f9d" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_Property": { - "m_Id": "0fe5bfb2a37b466dbedc387f3614f79f" - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "2978a5e0935640608853a7d40834031f", - "m_Id": 950905805, - "m_DisplayName": "Sobel", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "Vector1_e4e960e9c453436ea9c1bfd2944e4bdf", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "2a0e609703714d9a8ac0712e1c97a1b4", - "m_Id": 0, - "m_DisplayName": "A", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "A", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.SmoothstepNode", - "m_ObjectId": "2a28dc44877745bbb5908f1adf929c30", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Smoothstep", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -507.2000427246094, - "y": 660.0, - "width": 208.0, - "height": 325.5999450683594 - } - }, - "m_Slots": [ - { - "m_Id": "7d79746e96ca494986d9b2022d1e5294" - }, - { - "m_Id": "de7e97151206443c82bd90776975cf3c" - }, - { - "m_Id": "069df809380c4b709e2cbe6ba3a4e18c" - }, - { - "m_Id": "a9df27e5997b43e2acf4c7daa0863063" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.LerpNode", - "m_ObjectId": "2acb0a705e724b66b800b01e062cc99f", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Lerp", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -231.199951171875, - "y": 615.9999389648438, - "width": 208.0, - "height": 325.5999450683594 - } - }, - "m_Slots": [ - { - "m_Id": "804abd26948d41b99fc1b3d5f56b53dc" - }, - { - "m_Id": "b97a2a9bbb0b40a8bf2b7019f871a925" - }, - { - "m_Id": "79215cd067d94c1aa94b47bc7ac7519f" - }, - { - "m_Id": "271a7489a026478a895f201d9fb40c6d" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", - "m_ObjectId": "2c3cc595c2774b80ae4e983fa220b626", - "m_Id": 1, - "m_DisplayName": "Out", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "2ce81fcf0205481c95cc80a0627c7265", - "m_Id": 0, - "m_DisplayName": "NormalTightening", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot", - "m_ObjectId": "2daaf1f1b8a24d9f8affe23a93df2b44", - "m_Id": 0, - "m_DisplayName": "ScreenUV", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0 - }, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "2fb53f30e7f0461887f04eee68502c0a", - "m_Id": -1658184029, - "m_DisplayName": "Strength", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "Vector1_760f19c7142c4b4ab7764f828b0a0e1c", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", - "m_ObjectId": "301d51a354df455da872e0d3309fe68f", - "m_Id": 2, - "m_DisplayName": "Out", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": { - "e00": 0.0, - "e01": 0.0, - "e02": 0.0, - "e03": 0.0, - "e10": 0.0, - "e11": 0.0, - "e12": 0.0, - "e13": 0.0, - "e20": 0.0, - "e21": 0.0, - "e22": 0.0, - "e23": 0.0, - "e30": 0.0, - "e31": 0.0, - "e32": 0.0, - "e33": 0.0 - }, - "m_DefaultValue": { - "e00": 1.0, - "e01": 0.0, - "e02": 0.0, - "e03": 0.0, - "e10": 0.0, - "e11": 1.0, - "e12": 0.0, - "e13": 0.0, - "e20": 0.0, - "e21": 0.0, - "e22": 1.0, - "e23": 0.0, - "e30": 0.0, - "e31": 0.0, - "e32": 0.0, - "e33": 1.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot", - "m_ObjectId": "382e8b052f354ee099b34b41328c770c", - "m_Id": 0, - "m_DisplayName": "In", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "In", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0 - }, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.PropertyNode", - "m_ObjectId": "38aa4561b8ec4ffc8d3c3062ee8d7046", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Property", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -487.199951171875, - "y": 564.7999877929688, - "width": 187.20001220703126, - "height": 33.600032806396487 - } - }, - "m_Slots": [ - { - "m_Id": "df6b2ad0fff24012a0164dde5b1e21b3" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_Property": { - "m_Id": "94c014c9ca5c4b28bff730984771b688" - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "3a82d710b0b44cbab121ad4a1d28dbc5", - "m_Id": 2, - "m_DisplayName": "In", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "In", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.MultiplyNode", - "m_ObjectId": "3acb3b391efb47ca9509d2d10ee2c6e7", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Multiply", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -77.60003662109375, - "y": -888.7999877929688, - "width": 207.99998474121095, - "height": 302.3999328613281 - } - }, - "m_Slots": [ - { - "m_Id": "eadc24b44ede475585b8095e3db3cc2a" - }, - { - "m_Id": "722a409c877e4485919d8d892cf3babf" - }, - { - "m_Id": "301d51a354df455da872e0d3309fe68f" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "3b60d5b9d792454ab68b26857dbf3520", - "m_Id": 3, - "m_DisplayName": "Thickness", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "Thickness", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "3ccf13432e9a4bbabcaa8c3496d3f836", - "m_Id": 2, - "m_DisplayName": "Out", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.PropertyNode", - "m_ObjectId": "3febe673f19d4f6a9ff2d34129a037f0", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Property", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -782.3999633789063, - "y": 633.5999755859375, - "width": 190.40000915527345, - "height": 33.600032806396487 - } - }, - "m_Slots": [ - { - "m_Id": "86288bd75ebb4cbf811d6e805a7fb8c8" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_Property": { - "m_Id": "7a2c89dda1aa48f68d6388e931074e2c" - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.SubGraphNode", - "m_ObjectId": "438ea06771e34e48aa40c9c1d4d65b2e", - "m_Group": { - "m_Id": "" - }, - "m_Name": "SobelFineTuning", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": 219.99998474121095, - "y": -257.6000061035156, - "width": 207.99996948242188, - "height": 350.3999938964844 - } - }, - "m_Slots": [ - { - "m_Id": "0e4250f71bb948d99351f9a58a1f91b0" - }, - { - "m_Id": "aa87179a24964971a99e404c1638ea94" - }, - { - "m_Id": "48c94523a2bc429493855be5ebe774b8" - }, - { - "m_Id": "e197bf675b4a49819a5a0bf9b9627eb9" - }, - { - "m_Id": "57497935de6a474b84b3c2bd4629203a" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_SerializedSubGraph": "{\n \"subGraph\": {\n \"fileID\": -5475051401550479605,\n \"guid\": \"607ace49fc2404f49a68921462cbedfd\",\n \"type\": 3\n }\n}", - "m_PropertyGuids": [ - "13e4e7e0-b549-4cff-bc6b-9e2a5bb38cd2", - "4be27ded-1fe7-4b1f-a9fa-6c0e4ef07e53", - "617096bc-0b92-450d-bb7e-69e9cf83684d", - "b0b754dd-219d-4ac4-ac96-0c453f47d9ba" - ], - "m_PropertyIds": [ - 950905805, - 939865761, - 65197052, - -1658184029 - ] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.MaximumNode", - "m_ObjectId": "440c1c68ab33471f8c227b2a14865c46", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Maximum", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": 618.4010009765625, - "y": 5.290029525756836, - "width": 0.0, - "height": 0.0 - } - }, - "m_Slots": [ - { - "m_Id": "a826012db24b461688b0bf284fb5e5a6" - }, - { - "m_Id": "7e4f5fc3425849ccac628e241ca5bf95" - }, - { - "m_Id": "6d7ca4f4bfcc41d4884c62f573a30a9f" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "46e9e9f370214ca2971851df57ef5174", - "m_Id": 1, - "m_DisplayName": "Out", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 2, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "487227f433d941a7870567b135e9be12", - "m_Id": 65197052, - "m_DisplayName": "Tightening", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "Vector1_47bde9fb0c87426db81ba7f6159b6f6f", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "48c94523a2bc429493855be5ebe774b8", - "m_Id": 65197052, - "m_DisplayName": "Tightening", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "Vector1_47bde9fb0c87426db81ba7f6159b6f6f", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.SubGraphNode", - "m_ObjectId": "48d819b4ae9d4fb3bed5bdc0419797da", - "m_Group": { - "m_Id": "" - }, - "m_Name": "SobelFineTuning", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": 219.99998474121095, - "y": 139.19996643066407, - "width": 207.99996948242188, - "height": 349.5999450683594 - } - }, - "m_Slots": [ - { - "m_Id": "2978a5e0935640608853a7d40834031f" - }, - { - "m_Id": "7c54e5024e3842c3ac0de5a1af182bcd" - }, - { - "m_Id": "487227f433d941a7870567b135e9be12" - }, - { - "m_Id": "2fb53f30e7f0461887f04eee68502c0a" - }, - { - "m_Id": "5516cd16ee2846608ae8e8f51af7d7ae" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_SerializedSubGraph": "{\n \"subGraph\": {\n \"fileID\": -5475051401550479605,\n \"guid\": \"607ace49fc2404f49a68921462cbedfd\",\n \"type\": 3\n }\n}", - "m_PropertyGuids": [ - "13e4e7e0-b549-4cff-bc6b-9e2a5bb38cd2", - "4be27ded-1fe7-4b1f-a9fa-6c0e4ef07e53", - "617096bc-0b92-450d-bb7e-69e9cf83684d", - "b0b754dd-219d-4ac4-ac96-0c453f47d9ba" - ], - "m_PropertyIds": [ - 950905805, - 939865761, - 65197052, - -1658184029 - ] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "5516cd16ee2846608ae8e8f51af7d7ae", - "m_Id": 1, - "m_DisplayName": "Out", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.SceneDepthNode", - "m_ObjectId": "555b70234a204cb9b19294ea5207a3c0", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Scene Depth", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -283.20001220703127, - "y": -1043.9998779296875, - "width": 144.79998779296876, - "height": 112.0 - } - }, - "m_Slots": [ - { - "m_Id": "9d8286bba2124e7daf9df921a6cf992b" - }, - { - "m_Id": "a1e78ffac43e4cf5a5ad05d5e1452d84" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_DepthSamplingMode": 1 -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "57497935de6a474b84b3c2bd4629203a", - "m_Id": 1, - "m_DisplayName": "Out", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "587b5c9b75d34c8a838e55301f81b6ae", - "m_Id": 0, - "m_DisplayName": "Edge1", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "Edge1", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "595969c63dca41229c4fe1a32e001c0b", - "m_Id": 2, - "m_DisplayName": "Out", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "6805671e29b0418eaa74b4358fa1db22", - "m_Id": 0, - "m_DisplayName": "In", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "In", - "m_StageCapability": 3, - "m_Value": { - "x": 1.0, - "y": 1.0, - "z": 1.0, - "w": 1.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "6d7ca4f4bfcc41d4884c62f573a30a9f", - "m_Id": 2, - "m_DisplayName": "Out", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", - "m_ObjectId": "722a409c877e4485919d8d892cf3babf", - "m_Id": 1, - "m_DisplayName": "B", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "B", - "m_StageCapability": 3, - "m_Value": { - "e00": 2.0, - "e01": 2.0, - "e02": 2.0, - "e03": 2.0, - "e10": 2.0, - "e11": 2.0, - "e12": 2.0, - "e13": 2.0, - "e20": 2.0, - "e21": 2.0, - "e22": 2.0, - "e23": 2.0, - "e30": 2.0, - "e31": 2.0, - "e32": 2.0, - "e33": 2.0 - }, - "m_DefaultValue": { - "e00": 1.0, - "e01": 0.0, - "e02": 0.0, - "e03": 0.0, - "e10": 0.0, - "e11": 1.0, - "e12": 0.0, - "e13": 0.0, - "e20": 0.0, - "e21": 0.0, - "e22": 1.0, - "e23": 0.0, - "e30": 0.0, - "e31": 0.0, - "e32": 0.0, - "e33": 1.0 - } -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode", - "m_ObjectId": "74acfa4fcc3a463b938c1207c94c1681", - "m_Group": { - "m_Id": "" - }, - "m_Name": "NormalsSobel (Custom Function)", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -355.20001220703127, - "y": 115.99998474121094, - "width": 236.0, - "height": 301.5999755859375 - } - }, - "m_Slots": [ - { - "m_Id": "c89cee83c55e4997af9cf89ca4226b22" - }, - { - "m_Id": "3b60d5b9d792454ab68b26857dbf3520" - }, - { - "m_Id": "595969c63dca41229c4fe1a32e001c0b" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_SourceType": 0, - "m_FunctionName": "NormalsSobel", - "m_FunctionSource": "ce2d543bf21ae424d952d2e26b9d3cc2", - "m_FunctionBody": "Enter function body here..." -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "79215cd067d94c1aa94b47bc7ac7519f", - "m_Id": 2, - "m_DisplayName": "T", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "T", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", - "m_ObjectId": "7a2c89dda1aa48f68d6388e931074e2c", - "m_Guid": { - "m_GuidSerialized": "8a7051ed-e889-4694-a8c1-4c96a046aec1" - }, - "m_Name": "FarNormalStartDepth", - "m_DefaultReferenceName": "Vector1_7a2c89dda1aa48f68d6388e931074e2c", - "m_OverrideReferenceName": "", - "m_GeneratePropertyBlock": true, - "m_Precision": 0, - "overrideHLSLDeclaration": false, - "hlslDeclarationOverride": 0, - "m_Hidden": false, - "m_Value": 0.0, - "m_FloatType": 0, - "m_RangeValues": { - "x": 0.0, - "y": 1.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "7c54e5024e3842c3ac0de5a1af182bcd", - "m_Id": 939865761, - "m_DisplayName": "Threshold", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "Vector1_4330d16dc5354b88b7913d08c4e2ce80", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "7d79746e96ca494986d9b2022d1e5294", - "m_Id": 0, - "m_DisplayName": "Edge1", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "Edge1", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "7e4f5fc3425849ccac628e241ca5bf95", - "m_Id": 1, - "m_DisplayName": "B", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "B", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.PropertyNode", - "m_ObjectId": "801cfc59f3c14c55b7f1e308c9efa989", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Property", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -662.4000244140625, - "y": -807.9999389648438, - "width": 195.19998168945313, - "height": 34.4000244140625 - } - }, - "m_Slots": [ - { - "m_Id": "88d9d7febae145e3add2c607579e860b" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_Property": { - "m_Id": "b67578a13d7149b5863665765fd58409" - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "804abd26948d41b99fc1b3d5f56b53dc", - "m_Id": 0, - "m_DisplayName": "A", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "A", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", - "m_ObjectId": "81ea168c550242c9b32e19abf928ddd4", - "m_Guid": { - "m_GuidSerialized": "a86c6940-fdc5-44b7-bd19-ee780673a4b1" - }, - "m_Name": "AcuteStartDot", - "m_DefaultReferenceName": "Vector1_81ea168c550242c9b32e19abf928ddd4", - "m_OverrideReferenceName": "", - "m_GeneratePropertyBlock": true, - "m_Precision": 0, - "overrideHLSLDeclaration": false, - "hlslDeclarationOverride": 0, - "m_Hidden": false, - "m_Value": 0.0, - "m_FloatType": 0, - "m_RangeValues": { - "x": 0.0, - "y": 1.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "84d0590f3a6a47fd9c719cb217fe800c", - "m_Id": 0, - "m_DisplayName": "DepthStrength", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "86288bd75ebb4cbf811d6e805a7fb8c8", - "m_Id": 0, - "m_DisplayName": "FarNormalStartDepth", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.SmoothstepNode", - "m_ObjectId": "8864f139081a41b6a3f948dd2aa72317", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Smoothstep", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -700.7999877929688, - "y": -737.5999145507813, - "width": 207.99998474121095, - "height": 326.3999328613281 - } - }, - "m_Slots": [ - { - "m_Id": "587b5c9b75d34c8a838e55301f81b6ae" - }, - { - "m_Id": "922b0758bd924ea594e17de00c6cd8ea" - }, - { - "m_Id": "3a82d710b0b44cbab121ad4a1d28dbc5" - }, - { - "m_Id": "084c6d5dcf694382825698b11b3303a8" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "88c6f88004e74ebe800f12d941cf7987", - "m_Id": 1, - "m_DisplayName": "B", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "B", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 1.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "88d9d7febae145e3add2c607579e860b", - "m_Id": 0, - "m_DisplayName": "AcuteDepthThreshold", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", - "m_ObjectId": "8b86c0987b0545b68719a28defa97210", - "m_Guid": { - "m_GuidSerialized": "ccf8e957-05bc-46d2-a503-ce32547ab325" - }, - "m_Name": "DepthStrength", - "m_DefaultReferenceName": "Vector1_8b86c0987b0545b68719a28defa97210", - "m_OverrideReferenceName": "", - "m_GeneratePropertyBlock": true, - "m_Precision": 0, - "overrideHLSLDeclaration": false, - "hlslDeclarationOverride": 0, - "m_Hidden": false, - "m_Value": 0.0, - "m_FloatType": 0, - "m_RangeValues": { - "x": 0.0, - "y": 1.0 - } -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", - "m_ObjectId": "8d337c2389544bd0b7c509f9e2d37208", - "m_Guid": { - "m_GuidSerialized": "dd15aee9-e759-4e3e-98f8-dfff19b192d8" - }, - "m_Name": "NormalStrength", - "m_DefaultReferenceName": "Vector1_8d337c2389544bd0b7c509f9e2d37208", - "m_OverrideReferenceName": "", - "m_GeneratePropertyBlock": true, - "m_Precision": 0, - "overrideHLSLDeclaration": false, - "hlslDeclarationOverride": 0, - "m_Hidden": false, - "m_Value": 0.0, - "m_FloatType": 0, - "m_RangeValues": { - "x": 0.0, - "y": 1.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "8f51f3427b1a456ab7fcd8999828ee88", - "m_Id": 0, - "m_DisplayName": "AcuteStartDot", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.PropertyNode", - "m_ObjectId": "90b5ecbad34a42ca9c5e4eb068dd2a02", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Property", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -995.199951171875, - "y": 811.9999389648438, - "width": 130.4000244140625, - "height": 33.5999755859375 - } - }, - "m_Slots": [ - { - "m_Id": "0fe410d914b44328a4c0d7d390dcdea4" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_Property": { - "m_Id": "dd075c9d965548c3a670876d5af2480b" - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "922b0758bd924ea594e17de00c6cd8ea", - "m_Id": 1, - "m_DisplayName": "Edge2", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "Edge2", - "m_StageCapability": 3, - "m_Value": { - "x": 1.0, - "y": 1.0, - "z": 1.0, - "w": 1.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "922bdb137a1948da8709f02a6f4fdcdc", - "m_Id": 0, - "m_DisplayName": "Thickness", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.OneMinusNode", - "m_ObjectId": "9460d9ac555a440f859811e9d2938b52", - "m_Group": { - "m_Id": "" - }, - "m_Name": "One Minus", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -977.5999755859375, - "y": -608.7999267578125, - "width": 207.99998474121095, - "height": 278.3999938964844 - } - }, - "m_Slots": [ - { - "m_Id": "6805671e29b0418eaa74b4358fa1db22" - }, - { - "m_Id": "0b51172a66134dd38aab6ad84b95d350" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - } -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", - "m_ObjectId": "94c014c9ca5c4b28bff730984771b688", - "m_Guid": { - "m_GuidSerialized": "d251f123-03dc-4ba6-b1fc-4a2f5c71b552" - }, - "m_Name": "FarNormalThreshold", - "m_DefaultReferenceName": "Vector1_94c014c9ca5c4b28bff730984771b688", - "m_OverrideReferenceName": "", - "m_GeneratePropertyBlock": true, - "m_Precision": 0, - "overrideHLSLDeclaration": false, - "hlslDeclarationOverride": 0, - "m_Hidden": false, - "m_Value": 0.0, - "m_FloatType": 0, - "m_RangeValues": { - "x": 0.0, - "y": 1.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.PropertyNode", - "m_ObjectId": "98e2f0d770634f679a141e6ebb92b5e4", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Property", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -51.08847427368164, - "y": 335.4943542480469, - "width": 0.0, - "height": 0.0 - } - }, - "m_Slots": [ - { - "m_Id": "0c359410f59b424bad5c60f5899b55d3" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_Property": { - "m_Id": "8d337c2389544bd0b7c509f9e2d37208" - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.SceneDepthNode", - "m_ObjectId": "9aa7231b224c46e49bb1b8dce412ff3c", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Scene Depth", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -763.9999389648438, - "y": 779.2000122070313, - "width": 144.79998779296876, - "height": 111.20000457763672 - } - }, - "m_Slots": [ - { - "m_Id": "d4012adb38714fd8a41674b455f6d101" - }, - { - "m_Id": "46e9e9f370214ca2971851df57ef5174" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_DepthSamplingMode": 2 -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.ScreenPositionMaterialSlot", - "m_ObjectId": "9d8286bba2124e7daf9df921a6cf992b", - "m_Id": 0, - "m_DisplayName": "UV", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "UV", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_Labels": [], - "m_ScreenSpaceType": 0 -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.PropertyNode", - "m_ObjectId": "a0d7f73db0c94c2db4cf12d031fb6151", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Property", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -92.12010955810547, - "y": -45.85888671875, - "width": 0.0, - "height": 0.0 - } - }, - "m_Slots": [ - { - "m_Id": "ffde47080eb74d638914f410d1fa0879" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_Property": { - "m_Id": "bf9b7705136840288fe43899e93f9c33" - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "a1e78ffac43e4cf5a5ad05d5e1452d84", - "m_Id": 1, - "m_DisplayName": "Out", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 2, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode", - "m_ObjectId": "a80b796aedc6422689ce109d75c97800", - "m_Group": { - "m_Id": "" - }, - "m_Name": "CalculateDepthNormal (Custom Function)", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -1665.60009765625, - "y": -846.4000244140625, - "width": 286.4000244140625, - "height": 302.4000244140625 - } - }, - "m_Slots": [ - { - "m_Id": "ec58c8f4f0c34aa987e04367cf377c41" - }, - { - "m_Id": "0ef8ad2f8a004c8ea8c31d8f7465d999" - }, - { - "m_Id": "ea9676c7bcd24e3cbd4c3ba41fb509bd" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_SourceType": 0, - "m_FunctionName": "CalculateDepthNormal", - "m_FunctionSource": "ce2d543bf21ae424d952d2e26b9d3cc2", - "m_FunctionBody": "Enter function body here..." -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "a826012db24b461688b0bf284fb5e5a6", - "m_Id": 0, - "m_DisplayName": "A", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "A", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "a9dc8dc9e0ee428294558d69a72a986d", - "m_Id": 3, - "m_DisplayName": "Thickness", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "Thickness", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "a9df27e5997b43e2acf4c7daa0863063", - "m_Id": 3, - "m_DisplayName": "Out", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "aa87179a24964971a99e404c1638ea94", - "m_Id": 939865761, - "m_DisplayName": "Threshold", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "Vector1_4330d16dc5354b88b7913d08c4e2ce80", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", - "m_ObjectId": "b67578a13d7149b5863665765fd58409", - "m_Guid": { - "m_GuidSerialized": "ce773f62-41ce-4401-b5c3-70d83c863b5e" - }, - "m_Name": "AcuteDepthThreshold", - "m_DefaultReferenceName": "Vector1_b67578a13d7149b5863665765fd58409", - "m_OverrideReferenceName": "", - "m_GeneratePropertyBlock": true, - "m_Precision": 0, - "overrideHLSLDeclaration": false, - "hlslDeclarationOverride": 0, - "m_Hidden": false, - "m_Value": 0.0, - "m_FloatType": 0, - "m_RangeValues": { - "x": 0.0, - "y": 1.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "b97a2a9bbb0b40a8bf2b7019f871a925", - "m_Id": 1, - "m_DisplayName": "B", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "B", - "m_StageCapability": 3, - "m_Value": { - "x": 1.0, - "y": 1.0, - "z": 1.0, - "w": 1.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", - "m_ObjectId": "bab05b1488b64dc0a8ab98f5d5358355", - "m_Guid": { - "m_GuidSerialized": "c7d0a1d9-71ff-4b7b-956b-638aad05caad" - }, - "m_Name": "Thickness", - "m_DefaultReferenceName": "Vector1_bab05b1488b64dc0a8ab98f5d5358355", - "m_OverrideReferenceName": "", - "m_GeneratePropertyBlock": true, - "m_Precision": 0, - "overrideHLSLDeclaration": false, - "hlslDeclarationOverride": 0, - "m_Hidden": false, - "m_Value": 0.0, - "m_FloatType": 0, - "m_RangeValues": { - "x": 0.0, - "y": 1.0 - } -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", - "m_ObjectId": "bdef768322f54f449524ade14a5a9271", - "m_Guid": { - "m_GuidSerialized": "8df8a1d0-e8e2-472d-982c-9b6c376f6bf3" - }, - "m_Name": "NormalTightening", - "m_DefaultReferenceName": "Vector1_bdef768322f54f449524ade14a5a9271", - "m_OverrideReferenceName": "", - "m_GeneratePropertyBlock": true, - "m_Precision": 0, - "overrideHLSLDeclaration": false, - "hlslDeclarationOverride": 0, - "m_Hidden": false, - "m_Value": 0.0, - "m_FloatType": 0, - "m_RangeValues": { - "x": 0.0, - "y": 1.0 - } -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", - "m_ObjectId": "bf9b7705136840288fe43899e93f9c33", - "m_Guid": { - "m_GuidSerialized": "35064660-4f6a-4586-9b38-7edff8239108" - }, - "m_Name": "DepthTightening", - "m_DefaultReferenceName": "Vector1_bf9b7705136840288fe43899e93f9c33", - "m_OverrideReferenceName": "", - "m_GeneratePropertyBlock": true, - "m_Precision": 0, - "overrideHLSLDeclaration": false, - "hlslDeclarationOverride": 0, - "m_Hidden": false, - "m_Value": 0.0, - "m_FloatType": 0, - "m_RangeValues": { - "x": 0.0, - "y": 1.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "c0ccd4117c804808bfb603356d889a8f", - "m_Id": 2, - "m_DisplayName": "Out", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "c0fbbc0b7d954867908b1d6995e5bd99", - "m_Id": 0, - "m_DisplayName": "NormalThreshold", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot", - "m_ObjectId": "c89cee83c55e4997af9cf89ca4226b22", - "m_Id": 0, - "m_DisplayName": "UV", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "UV", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0 - }, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.PropertyNode", - "m_ObjectId": "cd53955adfcd4a7c9d2c3dca4ffb544f", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Property", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -470.4000244140625, - "y": 530.4000244140625, - "width": 170.3999786376953, - "height": 34.39996337890625 - } - }, - "m_Slots": [ - { - "m_Id": "c0fbbc0b7d954867908b1d6995e5bd99" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_Property": { - "m_Id": "f491904b78e8471ebc25c231de91e4ec" - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "d136d50256fb485f85ac9161e1f8941b", - "m_Id": 2, - "m_DisplayName": "T", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "T", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.ScreenPositionMaterialSlot", - "m_ObjectId": "d4012adb38714fd8a41674b455f6d101", - "m_Id": 0, - "m_DisplayName": "UV", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "UV", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_Labels": [], - "m_ScreenSpaceType": 0 -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot", - "m_ObjectId": "d8e6704fe97649ce8706af07836bb603", - "m_Id": 0, - "m_DisplayName": "ScreenUV", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0 - }, - "m_Labels": [] -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.Internal.Vector2ShaderProperty", - "m_ObjectId": "dd075c9d965548c3a670876d5af2480b", - "m_Guid": { - "m_GuidSerialized": "29314704-17f7-40fd-ba09-e16971e55948" - }, - "m_Name": "ScreenUV", - "m_DefaultReferenceName": "Vector2_dd075c9d965548c3a670876d5af2480b", - "m_OverrideReferenceName": "", - "m_GeneratePropertyBlock": true, - "m_Precision": 0, - "overrideHLSLDeclaration": false, - "hlslDeclarationOverride": 0, - "m_Hidden": false, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "dd689ce75df344dca3e879eb47997d03", - "m_Id": 1, - "m_DisplayName": "Opacity", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "Opacity", - "m_StageCapability": 2, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "de7e97151206443c82bd90776975cf3c", - "m_Id": 1, - "m_DisplayName": "Edge2", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "Edge2", - "m_StageCapability": 3, - "m_Value": { - "x": 1.0, - "y": 1.0, - "z": 1.0, - "w": 1.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "df6b2ad0fff24012a0164dde5b1e21b3", - "m_Id": 0, - "m_DisplayName": "FarNormalThreshold", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DotProductNode", - "m_ObjectId": "e06f457c5c8441efb20def92ba51eae1", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Dot Product", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -1230.4000244140625, - "y": -683.2000122070313, - "width": 207.99998474121095, - "height": 302.4000244140625 - } - }, - "m_Slots": [ - { - "m_Id": "2a0e609703714d9a8ac0712e1c97a1b4" - }, - { - "m_Id": "88c6f88004e74ebe800f12d941cf7987" - }, - { - "m_Id": "c0ccd4117c804808bfb603356d889a8f" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "e197bf675b4a49819a5a0bf9b9627eb9", - "m_Id": -1658184029, - "m_DisplayName": "Strength", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "Vector1_760f19c7142c4b4ab7764f828b0a0e1c", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.PropertyNode", - "m_ObjectId": "e19d26517ad14c92900f8534c9d9f6a3", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Property", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -731.2366333007813, - "y": -63.2684211730957, - "width": 0.0, - "height": 0.0 - } - }, - "m_Slots": [ - { - "m_Id": "2402d20e263642eba31b3d878c3a2f19" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_Property": { - "m_Id": "dd075c9d965548c3a670876d5af2480b" - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.PropertyNode", - "m_ObjectId": "e5be1f9dea1f48b6a6e3b9d6198dd836", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Property", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -22.929475784301759, - "y": 289.233154296875, - "width": 0.0, - "height": 0.0 - } - }, - "m_Slots": [ - { - "m_Id": "2ce81fcf0205481c95cc80a0627c7265" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_Property": { - "m_Id": "bdef768322f54f449524ade14a5a9271" - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "e5cde70386274093884864e4b94f0607", - "m_Id": 3, - "m_DisplayName": "Out", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector3MaterialSlot", - "m_ObjectId": "ea9676c7bcd24e3cbd4c3ba41fb509bd", - "m_Id": 2, - "m_DisplayName": "Normal", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Normal", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0 - }, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", - "m_ObjectId": "eadc24b44ede475585b8095e3db3cc2a", - "m_Id": 0, - "m_DisplayName": "A", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "A", - "m_StageCapability": 3, - "m_Value": { - "e00": 0.0, - "e01": 0.0, - "e02": 0.0, - "e03": 0.0, - "e10": 0.0, - "e11": 0.0, - "e12": 0.0, - "e13": 0.0, - "e20": 0.0, - "e21": 0.0, - "e22": 0.0, - "e23": 0.0, - "e30": 0.0, - "e31": 0.0, - "e32": 0.0, - "e33": 0.0 - }, - "m_DefaultValue": { - "e00": 1.0, - "e01": 0.0, - "e02": 0.0, - "e03": 0.0, - "e10": 0.0, - "e11": 1.0, - "e12": 0.0, - "e13": 0.0, - "e20": 0.0, - "e21": 0.0, - "e22": 1.0, - "e23": 0.0, - "e30": 0.0, - "e31": 0.0, - "e32": 0.0, - "e33": 1.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector2MaterialSlot", - "m_ObjectId": "ec58c8f4f0c34aa987e04367cf377c41", - "m_Id": 0, - "m_DisplayName": "UV", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "UV", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0 - }, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "eee05744d9db4f389e6555358b3e005c", - "m_Id": 1, - "m_DisplayName": "B", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "B", - "m_StageCapability": 3, - "m_Value": { - "x": 1.0, - "y": 1.0, - "z": 1.0, - "w": 1.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.CustomFunctionNode", - "m_ObjectId": "f1679376c6f2453c9b99bdbd8bc7c80a", - "m_Group": { - "m_Id": "" - }, - "m_Name": "DepthSobel (Custom Function)", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -355.1999206542969, - "y": -212.00001525878907, - "width": 223.20001220703126, - "height": 302.3999938964844 - } - }, - "m_Slots": [ - { - "m_Id": "005b78870b8345fdb06c0e575b696ec6" - }, - { - "m_Id": "a9dc8dc9e0ee428294558d69a72a986d" - }, - { - "m_Id": "3ccf13432e9a4bbabcaa8c3496d3f836" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_SourceType": 0, - "m_FunctionName": "DepthSobel", - "m_FunctionSource": "ce2d543bf21ae424d952d2e26b9d3cc2", - "m_FunctionBody": "Enter function body here..." -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", - "m_ObjectId": "f491904b78e8471ebc25c231de91e4ec", - "m_Guid": { - "m_GuidSerialized": "2c6222f5-9cd9-4112-8b02-ae4a76edbc45" - }, - "m_Name": "NormalThreshold", - "m_DefaultReferenceName": "Vector1_f491904b78e8471ebc25c231de91e4ec", - "m_OverrideReferenceName": "", - "m_GeneratePropertyBlock": true, - "m_Precision": 0, - "overrideHLSLDeclaration": false, - "hlslDeclarationOverride": 0, - "m_Hidden": false, - "m_Value": 0.0, - "m_FloatType": 0, - "m_RangeValues": { - "x": 0.0, - "y": 1.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "fb689b3e37d14b438b8ade1ba087e706", - "m_Id": 0, - "m_DisplayName": "FarNormalEndDepth", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.PropertyNode", - "m_ObjectId": "fd94a904fb004bce98a77bb136ae0b2e", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Property", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -732.0, - "y": -0.000012842559954151511, - "width": 132.0, - "height": 33.599998474121097 - } - }, - "m_Slots": [ - { - "m_Id": "922bdb137a1948da8709f02a6f4fdcdc" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_Property": { - "m_Id": "bab05b1488b64dc0a8ab98f5d5358355" - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.SubGraphOutputNode", - "m_ObjectId": "ff66c373ffb3439f98adc5ce34931117", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Output", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": 990.4000244140625, - "y": 33.59999465942383, - "width": 95.199951171875, - "height": 76.79999542236328 - } - }, - "m_Slots": [ - { - "m_Id": "dd689ce75df344dca3e879eb47997d03" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "IsFirstSlotValid": true -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "ffde47080eb74d638914f410d1fa0879", - "m_Id": 0, - "m_DisplayName": "DepthTightening", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - diff --git a/UnityClient/Assets/Shaders/SubGraphs/Outlines.shadersubgraph.meta b/UnityClient/Assets/Shaders/SubGraphs/Outlines.shadersubgraph.meta deleted file mode 100644 index e16789b6..00000000 --- a/UnityClient/Assets/Shaders/SubGraphs/Outlines.shadersubgraph.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 34e27bc22dd299f45a9b4487c7926c7a -ScriptedImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 2 - userData: - assetBundleName: - assetBundleVariant: - script: {fileID: 11500000, guid: 60072b568d64c40a485e0fc55012dc9f, type: 3} diff --git a/UnityClient/Assets/Shaders/SubGraphs/SobelFineTuning.shadersubgraph b/UnityClient/Assets/Shaders/SubGraphs/SobelFineTuning.shadersubgraph deleted file mode 100644 index 1b2851a3..00000000 --- a/UnityClient/Assets/Shaders/SubGraphs/SobelFineTuning.shadersubgraph +++ /dev/null @@ -1,945 +0,0 @@ -{ - "m_SGVersion": 2, - "m_Type": "UnityEditor.ShaderGraph.GraphData", - "m_ObjectId": "cc1ce644a317410b9ac11200bb3b30ce", - "m_Properties": [ - { - "m_Id": "e4e960e9c453436ea9c1bfd2944e4bdf" - }, - { - "m_Id": "4330d16dc5354b88b7913d08c4e2ce80" - }, - { - "m_Id": "47bde9fb0c87426db81ba7f6159b6f6f" - }, - { - "m_Id": "760f19c7142c4b4ab7764f828b0a0e1c" - } - ], - "m_Keywords": [], - "m_Nodes": [ - { - "m_Id": "f0fdeb8ae8e54ab18f60026aa42d6116" - }, - { - "m_Id": "58fd0c2b33824de79b88100aa2bd7a05" - }, - { - "m_Id": "2101869b7d634f1e8e297b7fe7c8cd7a" - }, - { - "m_Id": "ddf6391d248a495c8790a209d8e4b647" - }, - { - "m_Id": "5f6ce84a43be4e6fbfbf5e7b496ac1f0" - }, - { - "m_Id": "cbff3e667c3048d181013404639d056d" - }, - { - "m_Id": "31d4967488814b51afabcddfa402c8e7" - }, - { - "m_Id": "bf924d79612e4695a421c0321872ea94" - } - ], - "m_GroupDatas": [], - "m_StickyNoteDatas": [], - "m_Edges": [ - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "2101869b7d634f1e8e297b7fe7c8cd7a" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "58fd0c2b33824de79b88100aa2bd7a05" - }, - "m_SlotId": 1 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "31d4967488814b51afabcddfa402c8e7" - }, - "m_SlotId": 2 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "f0fdeb8ae8e54ab18f60026aa42d6116" - }, - "m_SlotId": 1 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "58fd0c2b33824de79b88100aa2bd7a05" - }, - "m_SlotId": 3 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "5f6ce84a43be4e6fbfbf5e7b496ac1f0" - }, - "m_SlotId": 0 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "5f6ce84a43be4e6fbfbf5e7b496ac1f0" - }, - "m_SlotId": 2 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "31d4967488814b51afabcddfa402c8e7" - }, - "m_SlotId": 0 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "bf924d79612e4695a421c0321872ea94" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "31d4967488814b51afabcddfa402c8e7" - }, - "m_SlotId": 1 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "cbff3e667c3048d181013404639d056d" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "5f6ce84a43be4e6fbfbf5e7b496ac1f0" - }, - "m_SlotId": 1 - } - }, - { - "m_OutputSlot": { - "m_Node": { - "m_Id": "ddf6391d248a495c8790a209d8e4b647" - }, - "m_SlotId": 0 - }, - "m_InputSlot": { - "m_Node": { - "m_Id": "58fd0c2b33824de79b88100aa2bd7a05" - }, - "m_SlotId": 2 - } - } - ], - "m_VertexContext": { - "m_Position": { - "x": 0.0, - "y": 0.0 - }, - "m_Blocks": [] - }, - "m_FragmentContext": { - "m_Position": { - "x": 0.0, - "y": 0.0 - }, - "m_Blocks": [] - }, - "m_PreviewData": { - "serializedMesh": { - "m_SerializedMesh": "{\"mesh\":{\"instanceID\":0}}", - "m_Guid": "" - } - }, - "m_Path": "Sub Graphs", - "m_ConcretePrecision": 0, - "m_PreviewMode": 2, - "m_OutputNode": { - "m_Id": "f0fdeb8ae8e54ab18f60026aa42d6116" - }, - "m_ActiveTargets": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.PropertyNode", - "m_ObjectId": "2101869b7d634f1e8e297b7fe7c8cd7a", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Property", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -705.9863891601563, - "y": 43.04301834106445, - "width": 0.0, - "height": 0.0 - } - }, - "m_Slots": [ - { - "m_Id": "ded0b0312aef49c1972408e029753f3c" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_Property": { - "m_Id": "4330d16dc5354b88b7913d08c4e2ce80" - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "285fdede8c6b43cb9b136c525509ffd3", - "m_Id": 2, - "m_DisplayName": "Out", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "2bf46d6027254ece88250f2ec34543e2", - "m_Id": 0, - "m_DisplayName": "Edge1", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "Edge1", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "2e19a46b6a7e4f3787388a18a2dd9bfa", - "m_Id": 1, - "m_DisplayName": "Edge2", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "Edge2", - "m_StageCapability": 3, - "m_Value": { - "x": 1.0, - "y": 1.0, - "z": 1.0, - "w": 1.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "2f817286a5ff422c917a9623794a2ccf", - "m_Id": 0, - "m_DisplayName": "A", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "A", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "2ffa14f994a04a6c859b3c6c790ce906", - "m_Id": 1, - "m_DisplayName": "Out", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.MultiplyNode", - "m_ObjectId": "31d4967488814b51afabcddfa402c8e7", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Multiply", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": 169.5999755859375, - "y": 44.00000762939453, - "width": 207.99998474121095, - "height": 301.5999755859375 - } - }, - "m_Slots": [ - { - "m_Id": "6148df0f076a4cba934e73425d4907af" - }, - { - "m_Id": "81f6a0a685324e3fb6dc954e9ac2106f" - }, - { - "m_Id": "fa1cd4e36f9a49ae8491fcb5c85ed538" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "33ec5176193e4f6db2e8c9a5fce98a9f", - "m_Id": 0, - "m_DisplayName": "Strength", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", - "m_ObjectId": "4330d16dc5354b88b7913d08c4e2ce80", - "m_Guid": { - "m_GuidSerialized": "4be27ded-1fe7-4b1f-a9fa-6c0e4ef07e53" - }, - "m_Name": "Threshold", - "m_DefaultReferenceName": "Vector1_4330d16dc5354b88b7913d08c4e2ce80", - "m_OverrideReferenceName": "", - "m_GeneratePropertyBlock": true, - "m_Precision": 0, - "overrideHLSLDeclaration": false, - "hlslDeclarationOverride": 0, - "m_Hidden": false, - "m_Value": 0.0, - "m_FloatType": 0, - "m_RangeValues": { - "x": 0.0, - "y": 1.0 - } -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", - "m_ObjectId": "47bde9fb0c87426db81ba7f6159b6f6f", - "m_Guid": { - "m_GuidSerialized": "617096bc-0b92-450d-bb7e-69e9cf83684d" - }, - "m_Name": "Tightening", - "m_DefaultReferenceName": "Vector1_47bde9fb0c87426db81ba7f6159b6f6f", - "m_OverrideReferenceName": "", - "m_GeneratePropertyBlock": true, - "m_Precision": 0, - "overrideHLSLDeclaration": false, - "hlslDeclarationOverride": 0, - "m_Hidden": false, - "m_Value": 0.0, - "m_FloatType": 0, - "m_RangeValues": { - "x": 0.0, - "y": 1.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.SmoothstepNode", - "m_ObjectId": "58fd0c2b33824de79b88100aa2bd7a05", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Smoothstep", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -442.4000244140625, - "y": -39.99998092651367, - "width": 207.99998474121095, - "height": 325.6000061035156 - } - }, - "m_Slots": [ - { - "m_Id": "2bf46d6027254ece88250f2ec34543e2" - }, - { - "m_Id": "2e19a46b6a7e4f3787388a18a2dd9bfa" - }, - { - "m_Id": "688aede1b32d43a0a20faaedb755b033" - }, - { - "m_Id": "9efda3d5907342f991fd612d3065ba3f" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.PowerNode", - "m_ObjectId": "5f6ce84a43be4e6fbfbf5e7b496ac1f0", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Power", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -128.80001831054688, - "y": 10.399968147277832, - "width": 207.99998474121095, - "height": 301.5999755859375 - } - }, - "m_Slots": [ - { - "m_Id": "2f817286a5ff422c917a9623794a2ccf" - }, - { - "m_Id": "a5171768bdae4d75963b9cca9fe57217" - }, - { - "m_Id": "285fdede8c6b43cb9b136c525509ffd3" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", - "m_ObjectId": "6148df0f076a4cba934e73425d4907af", - "m_Id": 0, - "m_DisplayName": "A", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "A", - "m_StageCapability": 3, - "m_Value": { - "e00": 0.0, - "e01": 0.0, - "e02": 0.0, - "e03": 0.0, - "e10": 0.0, - "e11": 0.0, - "e12": 0.0, - "e13": 0.0, - "e20": 0.0, - "e21": 0.0, - "e22": 0.0, - "e23": 0.0, - "e30": 0.0, - "e31": 0.0, - "e32": 0.0, - "e33": 0.0 - }, - "m_DefaultValue": { - "e00": 1.0, - "e01": 0.0, - "e02": 0.0, - "e03": 0.0, - "e10": 0.0, - "e11": 1.0, - "e12": 0.0, - "e13": 0.0, - "e20": 0.0, - "e21": 0.0, - "e22": 1.0, - "e23": 0.0, - "e30": 0.0, - "e31": 0.0, - "e32": 0.0, - "e33": 1.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "688aede1b32d43a0a20faaedb755b033", - "m_Id": 2, - "m_DisplayName": "In", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "In", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", - "m_ObjectId": "760f19c7142c4b4ab7764f828b0a0e1c", - "m_Guid": { - "m_GuidSerialized": "b0b754dd-219d-4ac4-ac96-0c453f47d9ba" - }, - "m_Name": "Strength", - "m_DefaultReferenceName": "Vector1_760f19c7142c4b4ab7764f828b0a0e1c", - "m_OverrideReferenceName": "", - "m_GeneratePropertyBlock": true, - "m_Precision": 0, - "overrideHLSLDeclaration": false, - "hlslDeclarationOverride": 0, - "m_Hidden": false, - "m_Value": 0.0, - "m_FloatType": 0, - "m_RangeValues": { - "x": 0.0, - "y": 1.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", - "m_ObjectId": "81f6a0a685324e3fb6dc954e9ac2106f", - "m_Id": 1, - "m_DisplayName": "B", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "B", - "m_StageCapability": 3, - "m_Value": { - "e00": 2.0, - "e01": 2.0, - "e02": 2.0, - "e03": 2.0, - "e10": 2.0, - "e11": 2.0, - "e12": 2.0, - "e13": 2.0, - "e20": 2.0, - "e21": 2.0, - "e22": 2.0, - "e23": 2.0, - "e30": 2.0, - "e31": 2.0, - "e32": 2.0, - "e33": 2.0 - }, - "m_DefaultValue": { - "e00": 1.0, - "e01": 0.0, - "e02": 0.0, - "e03": 0.0, - "e10": 0.0, - "e11": 1.0, - "e12": 0.0, - "e13": 0.0, - "e20": 0.0, - "e21": 0.0, - "e22": 1.0, - "e23": 0.0, - "e30": 0.0, - "e31": 0.0, - "e32": 0.0, - "e33": 1.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "9efda3d5907342f991fd612d3065ba3f", - "m_Id": 3, - "m_DisplayName": "Out", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicVectorMaterialSlot", - "m_ObjectId": "a5171768bdae4d75963b9cca9fe57217", - "m_Id": 1, - "m_DisplayName": "B", - "m_SlotType": 0, - "m_Hidden": false, - "m_ShaderOutputName": "B", - "m_StageCapability": 3, - "m_Value": { - "x": 2.0, - "y": 2.0, - "z": 2.0, - "w": 2.0 - }, - "m_DefaultValue": { - "x": 0.0, - "y": 0.0, - "z": 0.0, - "w": 0.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.PropertyNode", - "m_ObjectId": "bf924d79612e4695a421c0321872ea94", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Property", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": 18.399995803833009, - "y": 345.5999755859375, - "width": 121.5999984741211, - "height": 33.60000228881836 - } - }, - "m_Slots": [ - { - "m_Id": "33ec5176193e4f6db2e8c9a5fce98a9f" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_Property": { - "m_Id": "760f19c7142c4b4ab7764f828b0a0e1c" - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "c70b101f44164528b974ece9b675c467", - "m_Id": 0, - "m_DisplayName": "Tightening", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.PropertyNode", - "m_ObjectId": "cbff3e667c3048d181013404639d056d", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Property", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -328.79998779296877, - "y": 311.9999694824219, - "width": 133.59999084472657, - "height": 33.60000228881836 - } - }, - "m_Slots": [ - { - "m_Id": "c70b101f44164528b974ece9b675c467" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_Property": { - "m_Id": "47bde9fb0c87426db81ba7f6159b6f6f" - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.PropertyNode", - "m_ObjectId": "ddf6391d248a495c8790a209d8e4b647", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Property", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": -681.5999755859375, - "y": 95.20000457763672, - "width": 107.20000457763672, - "height": 33.60000228881836 - } - }, - "m_Slots": [ - { - "m_Id": "fe45f87a47e948b5b869d89b133b9a76" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "m_Property": { - "m_Id": "e4e960e9c453436ea9c1bfd2944e4bdf" - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "ded0b0312aef49c1972408e029753f3c", - "m_Id": 0, - "m_DisplayName": "Threshold", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - -{ - "m_SGVersion": 1, - "m_Type": "UnityEditor.ShaderGraph.Internal.Vector1ShaderProperty", - "m_ObjectId": "e4e960e9c453436ea9c1bfd2944e4bdf", - "m_Guid": { - "m_GuidSerialized": "13e4e7e0-b549-4cff-bc6b-9e2a5bb38cd2" - }, - "m_Name": "Sobel", - "m_DefaultReferenceName": "Vector1_e4e960e9c453436ea9c1bfd2944e4bdf", - "m_OverrideReferenceName": "", - "m_GeneratePropertyBlock": true, - "m_Precision": 0, - "overrideHLSLDeclaration": false, - "hlslDeclarationOverride": 0, - "m_Hidden": false, - "m_Value": 0.0, - "m_FloatType": 0, - "m_RangeValues": { - "x": 0.0, - "y": 1.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.SubGraphOutputNode", - "m_ObjectId": "f0fdeb8ae8e54ab18f60026aa42d6116", - "m_Group": { - "m_Id": "" - }, - "m_Name": "Output", - "m_DrawState": { - "m_Expanded": true, - "m_Position": { - "serializedVersion": "2", - "x": 640.0, - "y": 76.79998779296875, - "width": 121.60002899169922, - "height": 76.79999542236328 - } - }, - "m_Slots": [ - { - "m_Id": "2ffa14f994a04a6c859b3c6c790ce906" - } - ], - "synonyms": [], - "m_Precision": 0, - "m_PreviewExpanded": true, - "m_PreviewMode": 0, - "m_CustomColors": { - "m_SerializableColors": [] - }, - "IsFirstSlotValid": true -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.DynamicValueMaterialSlot", - "m_ObjectId": "fa1cd4e36f9a49ae8491fcb5c85ed538", - "m_Id": 2, - "m_DisplayName": "Out", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": { - "e00": 0.0, - "e01": 0.0, - "e02": 0.0, - "e03": 0.0, - "e10": 0.0, - "e11": 0.0, - "e12": 0.0, - "e13": 0.0, - "e20": 0.0, - "e21": 0.0, - "e22": 0.0, - "e23": 0.0, - "e30": 0.0, - "e31": 0.0, - "e32": 0.0, - "e33": 0.0 - }, - "m_DefaultValue": { - "e00": 1.0, - "e01": 0.0, - "e02": 0.0, - "e03": 0.0, - "e10": 0.0, - "e11": 1.0, - "e12": 0.0, - "e13": 0.0, - "e20": 0.0, - "e21": 0.0, - "e22": 1.0, - "e23": 0.0, - "e30": 0.0, - "e31": 0.0, - "e32": 0.0, - "e33": 1.0 - } -} - -{ - "m_SGVersion": 0, - "m_Type": "UnityEditor.ShaderGraph.Vector1MaterialSlot", - "m_ObjectId": "fe45f87a47e948b5b869d89b133b9a76", - "m_Id": 0, - "m_DisplayName": "Sobel", - "m_SlotType": 1, - "m_Hidden": false, - "m_ShaderOutputName": "Out", - "m_StageCapability": 3, - "m_Value": 0.0, - "m_DefaultValue": 0.0, - "m_Labels": [] -} - diff --git a/UnityClient/Assets/Shaders/SubGraphs/SobelFineTuning.shadersubgraph.meta b/UnityClient/Assets/Shaders/SubGraphs/SobelFineTuning.shadersubgraph.meta deleted file mode 100644 index af55845b..00000000 --- a/UnityClient/Assets/Shaders/SubGraphs/SobelFineTuning.shadersubgraph.meta +++ /dev/null @@ -1,10 +0,0 @@ -fileFormatVersion: 2 -guid: 607ace49fc2404f49a68921462cbedfd -ScriptedImporter: - internalIDToNameTable: [] - externalObjects: {} - serializedVersion: 2 - userData: - assetBundleName: - assetBundleVariant: - script: {fileID: 11500000, guid: 60072b568d64c40a485e0fc55012dc9f, type: 3} diff --git a/UnityClient/Assets/UniversalRenderPipelineAsset.asset b/UnityClient/Assets/UniversalRenderPipelineAsset.asset index a7df0a8d..9dccd66a 100644 --- a/UnityClient/Assets/UniversalRenderPipelineAsset.asset +++ b/UnityClient/Assets/UniversalRenderPipelineAsset.asset @@ -82,29 +82,29 @@ MonoBehaviour: m_Textures: blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} - m_PrefilteringModeMainLightShadows: 1 - m_PrefilteringModeAdditionalLight: 4 - m_PrefilteringModeAdditionalLightShadows: 1 - m_PrefilterXRKeywords: 0 - m_PrefilteringModeForwardPlus: 1 - m_PrefilteringModeDeferredRendering: 1 - m_PrefilteringModeScreenSpaceOcclusion: 1 - m_PrefilterDebugKeywords: 0 - m_PrefilterWriteRenderingLayers: 0 - m_PrefilterHDROutput: 0 - m_PrefilterSSAODepthNormals: 0 - m_PrefilterSSAOSourceDepthLow: 0 - m_PrefilterSSAOSourceDepthMedium: 0 - m_PrefilterSSAOSourceDepthHigh: 0 - m_PrefilterSSAOInterleaved: 0 - m_PrefilterSSAOBlueNoise: 0 - m_PrefilterSSAOSampleCountLow: 0 - m_PrefilterSSAOSampleCountMedium: 0 - m_PrefilterSSAOSampleCountHigh: 0 - m_PrefilterDBufferMRT1: 0 - m_PrefilterDBufferMRT2: 0 - m_PrefilterDBufferMRT3: 0 - m_PrefilterScreenCoord: 0 - m_PrefilterNativeRenderPass: 0 + m_PrefilteringModeMainLightShadows: 3 + m_PrefilteringModeAdditionalLight: 0 + m_PrefilteringModeAdditionalLightShadows: 0 + m_PrefilterXRKeywords: 1 + m_PrefilteringModeForwardPlus: 2 + m_PrefilteringModeDeferredRendering: 0 + m_PrefilteringModeScreenSpaceOcclusion: 0 + m_PrefilterDebugKeywords: 1 + m_PrefilterWriteRenderingLayers: 1 + m_PrefilterHDROutput: 1 + m_PrefilterSSAODepthNormals: 1 + m_PrefilterSSAOSourceDepthLow: 1 + m_PrefilterSSAOSourceDepthMedium: 1 + m_PrefilterSSAOSourceDepthHigh: 1 + m_PrefilterSSAOInterleaved: 1 + m_PrefilterSSAOBlueNoise: 1 + m_PrefilterSSAOSampleCountLow: 1 + m_PrefilterSSAOSampleCountMedium: 1 + m_PrefilterSSAOSampleCountHigh: 1 + m_PrefilterDBufferMRT1: 1 + m_PrefilterDBufferMRT2: 1 + m_PrefilterDBufferMRT3: 1 + m_PrefilterScreenCoord: 1 + m_PrefilterNativeRenderPass: 1 m_ShaderVariantLogLevel: 0 m_ShadowCascades: 0 diff --git a/UnityClient/Assets/WebGLTemplates/Better2020/TemplateData/favicon.ico b/UnityClient/Assets/WebGLTemplates/Better2020/TemplateData/favicon.ico index dd6bf7e9..5ec53112 100644 Binary files a/UnityClient/Assets/WebGLTemplates/Better2020/TemplateData/favicon.ico and b/UnityClient/Assets/WebGLTemplates/Better2020/TemplateData/favicon.ico differ diff --git a/UnityClient/Packages/manifest.json b/UnityClient/Packages/manifest.json index 1e83561a..3b347630 100644 --- a/UnityClient/Packages/manifest.json +++ b/UnityClient/Packages/manifest.json @@ -1,18 +1,18 @@ { "dependencies": { "com.github-glitchenzo.nugetforunity": "https://github.com/GlitchEnzo/NuGetForUnity.git?path=/src/NuGetForUnity", - "com.unity.addressables": "1.21.17", + "com.unity.addressables": "1.21.18", "com.unity.animation.rigging": "1.2.1", "com.unity.cinemachine": "2.9.5", "com.unity.entities": "1.0.16", "com.unity.entities.graphics": "1.0.16", - "com.unity.ide.rider": "3.0.24", - "com.unity.ide.visualstudio": "2.0.18", + "com.unity.ide.rider": "3.0.25", + "com.unity.ide.visualstudio": "2.0.21", "com.unity.ide.vscode": "1.2.5", - "com.unity.render-pipelines.universal": "14.0.8", + "com.unity.render-pipelines.universal": "14.0.9", "com.unity.test-framework": "1.1.33", "com.unity.textmeshpro": "3.0.6", - "com.unity.timeline": "1.7.5", + "com.unity.timeline": "1.7.6", "com.unity.toolchain.win-x86_64-linux-x86_64": "2.0.4", "com.unity.ugui": "1.0.0", "vbl.brainatlas": "https://github.com/VirtualBrainLab/BrainAtlas.git?path=/Packages/vbl.brainatlas", diff --git a/UnityClient/Packages/packages-lock.json b/UnityClient/Packages/packages-lock.json index 4c35d1c0..93a41533 100644 --- a/UnityClient/Packages/packages-lock.json +++ b/UnityClient/Packages/packages-lock.json @@ -8,11 +8,11 @@ "hash": "ad5eac259a335fdfef1668f11ce59cdef40945f3" }, "com.unity.addressables": { - "version": "1.21.17", + "version": "1.21.18", "depth": 0, "source": "registry", "dependencies": { - "com.unity.scriptablebuildpipeline": "1.21.9", + "com.unity.scriptablebuildpipeline": "1.21.20", "com.unity.modules.assetbundle": "1.0.0", "com.unity.modules.imageconversion": "1.0.0", "com.unity.modules.jsonserialize": "1.0.0", @@ -32,7 +32,7 @@ "url": "https://packages.unity.com" }, "com.unity.burst": { - "version": "1.8.8", + "version": "1.8.9", "depth": 1, "source": "registry", "dependencies": { @@ -98,7 +98,7 @@ "url": "https://packages.unity.com" }, "com.unity.ide.rider": { - "version": "3.0.24", + "version": "3.0.25", "depth": 0, "source": "registry", "dependencies": { @@ -107,7 +107,7 @@ "url": "https://packages.unity.com" }, "com.unity.ide.visualstudio": { - "version": "2.0.18", + "version": "2.0.21", "depth": 0, "source": "registry", "dependencies": { @@ -144,7 +144,7 @@ "url": "https://packages.unity.com" }, "com.unity.render-pipelines.core": { - "version": "14.0.8", + "version": "14.0.9", "depth": 1, "source": "builtin", "dependencies": { @@ -155,18 +155,18 @@ } }, "com.unity.render-pipelines.universal": { - "version": "14.0.8", + "version": "14.0.9", "depth": 0, "source": "builtin", "dependencies": { "com.unity.mathematics": "1.2.1", - "com.unity.burst": "1.8.4", - "com.unity.render-pipelines.core": "14.0.8", - "com.unity.shadergraph": "14.0.8" + "com.unity.burst": "1.8.9", + "com.unity.render-pipelines.core": "14.0.9", + "com.unity.shadergraph": "14.0.9" } }, "com.unity.scriptablebuildpipeline": { - "version": "1.21.9", + "version": "1.21.20", "depth": 1, "source": "registry", "dependencies": {}, @@ -190,11 +190,11 @@ "url": "https://packages.unity.com" }, "com.unity.shadergraph": { - "version": "14.0.8", + "version": "14.0.9", "depth": 1, "source": "builtin", "dependencies": { - "com.unity.render-pipelines.core": "14.0.8", + "com.unity.render-pipelines.core": "14.0.9", "com.unity.searcher": "4.9.2" } }, @@ -245,7 +245,7 @@ "url": "https://packages.unity.com" }, "com.unity.timeline": { - "version": "1.7.5", + "version": "1.7.6", "depth": 0, "source": "registry", "dependencies": { @@ -280,7 +280,7 @@ "depth": 0, "source": "git", "dependencies": {}, - "hash": "cf792b06b79f2371a19e49879855eeafe10b81da" + "hash": "fc064767fda32b093549649d6b38c12e5008d6dd" }, "vbl.urchin": { "version": "file:vbl.urchin", diff --git a/UnityClient/Packages/vbl.urchin/Assets/Materials/VolumeMaterials/CoronalSliceMaterial.mat b/UnityClient/Packages/vbl.urchin/Assets/Materials/VolumeMaterials/CoronalSliceMaterial.mat index ab6e3715..f1dc6338 100644 --- a/UnityClient/Packages/vbl.urchin/Assets/Materials/VolumeMaterials/CoronalSliceMaterial.mat +++ b/UnityClient/Packages/vbl.urchin/Assets/Materials/VolumeMaterials/CoronalSliceMaterial.mat @@ -133,12 +133,12 @@ Material: - _Color: {r: 1, g: 1, b: 1, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _ForwardDirection: {r: 1, g: 0, b: 0, a: 0} - - _LeftAxis: {r: 0, g: 0, b: -1, a: 0} + - _LeftAxis: {r: 0, g: 1, b: 0, a: 0} - _SliceAxis: {r: 1, g: 0, b: 0, a: 0} - _SlicePosition: {r: 27.98, g: 177.8, b: 17.89, a: 0} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} - _TipPosition: {r: 0, g: 0, b: 0, a: 0} - - _UpAxis: {r: 0, g: -1, b: 0, a: 0} + - _UpAxis: {r: 0, g: 0, b: -1, a: 0} - _UpDirection: {r: 0, g: 1, b: 0, a: 0} - _VolumeSize: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] diff --git a/UnityClient/Packages/vbl.urchin/Assets/Materials/VolumeMaterials/SagittalSliceMaterial.mat b/UnityClient/Packages/vbl.urchin/Assets/Materials/VolumeMaterials/SagittalSliceMaterial.mat index e5e97b3e..d0c613ab 100644 --- a/UnityClient/Packages/vbl.urchin/Assets/Materials/VolumeMaterials/SagittalSliceMaterial.mat +++ b/UnityClient/Packages/vbl.urchin/Assets/Materials/VolumeMaterials/SagittalSliceMaterial.mat @@ -133,12 +133,12 @@ Material: - _Color: {r: 1, g: 1, b: 1, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _ForwardDirection: {r: 1, g: 0, b: 0, a: 0} - - _LeftAxis: {r: 1, g: 0, b: 0, a: 0} - - _SliceAxis: {r: 0, g: 0, b: 1, a: 0} + - _LeftAxis: {r: -1, g: 0, b: 0, a: 0} + - _SliceAxis: {r: 0, g: 1, b: 0, a: 0} - _SlicePosition: {r: 0, g: 0, b: 0, a: 0} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} - _TipPosition: {r: 0, g: 0, b: 0, a: 0} - - _UpAxis: {r: 0, g: -1, b: 0, a: 0} + - _UpAxis: {r: 0, g: 0, b: -1, a: 0} - _UpDirection: {r: 0, g: 1, b: 0, a: 0} - _VolumeSize: {r: 0, g: 0, b: 0, a: 0} m_BuildTextureStacks: [] diff --git a/UnityClient/Packages/vbl.urchin/Assets/Prefabs/Cameras/BrainControls.prefab b/UnityClient/Packages/vbl.urchin/Assets/Prefabs/Cameras/BrainControls.prefab index 34eda23d..b57ffb6e 100644 --- a/UnityClient/Packages/vbl.urchin/Assets/Prefabs/Cameras/BrainControls.prefab +++ b/UnityClient/Packages/vbl.urchin/Assets/Prefabs/Cameras/BrainControls.prefab @@ -25,14 +25,15 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1961916998269465997} serializedVersion: 2 - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1961916998455722552} + - {fileID: 4882189122998301958} + - {fileID: 7539420012798258991} m_Father: {fileID: 1961917000311605967} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} --- !u!114 &1961916998269465987 MonoBehaviour: m_ObjectHideFlags: 0 @@ -72,7 +73,7 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1961916998455722553} serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 @@ -83,8 +84,8 @@ Transform: - {fileID: 1961916999436259260} - {fileID: 1961916998806602265} - {fileID: 1961916998979379205} - m_Father: {fileID: 1961916998269465996} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Father: {fileID: 1961917000311605967} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} --- !u!33 &1961916998455722557 MeshFilter: m_ObjectHideFlags: 0 @@ -277,7 +278,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: cameraController: {fileID: 0} - eulerAngles: {x: -90, y: 90, z: 0} + eulerAngles: {x: 0, y: 90, z: -90} --- !u!1 &1961916998806602266 GameObject: m_ObjectHideFlags: 0 @@ -399,7 +400,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: cameraController: {fileID: 0} - eulerAngles: {x: 90, y: 90, z: 0} + eulerAngles: {x: 0, y: -90, z: 90} --- !u!1 &1961916998979379206 GameObject: m_ObjectHideFlags: 0 @@ -501,7 +502,7 @@ CapsuleCollider: m_LayerOverridePriority: 0 m_IsTrigger: 0 m_ProvidesContacts: 0 - m_Enabled: 0 + m_Enabled: 1 serializedVersion: 2 m_Radius: 0.5000001 m_Height: 2 @@ -608,7 +609,7 @@ CapsuleCollider: m_LayerOverridePriority: 0 m_IsTrigger: 0 m_ProvidesContacts: 0 - m_Enabled: 0 + m_Enabled: 1 serializedVersion: 2 m_Radius: 0.5000001 m_Height: 2 @@ -628,7 +629,7 @@ GameObject: - component: {fileID: 1961917000157152739} - component: {fileID: 1961917000157152736} m_Layer: 14 - m_Name: DV + m_Name: Axial m_TagString: BrainRotatorMiniControls m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -857,7 +858,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: cameraController: {fileID: 0} - eulerAngles: {x: 0, y: 90, z: 0} + eulerAngles: {x: -90, y: 0, z: 0} --- !u!1 &1961917000311605960 GameObject: m_ObjectHideFlags: 0 @@ -888,8 +889,7 @@ Transform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1961916998269465996} - - {fileID: 4882189122998301958} - - {fileID: 7539420012798258991} + - {fileID: 1961916998455722552} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &4278882032191029948 @@ -918,13 +918,13 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 4278882032191029948} serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalRotation: {x: -0.35355344, y: 0.1464466, z: -0.35355335, w: 0.85355335} + m_LocalPosition: {x: -2, y: -2, z: -2} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1961917000311605967} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Father: {fileID: 1961916998269465996} + m_LocalEulerAnglesHint: {x: 45, y: 45, z: 0} --- !u!108 &2498237085475250022 Light: m_ObjectHideFlags: 0 @@ -934,10 +934,10 @@ Light: m_GameObject: {fileID: 4278882032191029948} m_Enabled: 1 serializedVersion: 10 - m_Type: 0 + m_Type: 1 m_Shape: 0 m_Color: {r: 1, g: 1, b: 1, a: 1} - m_Intensity: 3 + m_Intensity: 1 m_Range: 1000 m_SpotAngle: 30 m_InnerSpotAngle: 21.80208 @@ -1020,7 +1020,6 @@ GameObject: m_Component: - component: {fileID: 4882189122998301958} - component: {fileID: 2396504726548320862} - - component: {fileID: 5428780862859445703} - component: {fileID: 4583640294701092575} m_Layer: 14 m_Name: ControlsCamera @@ -1042,7 +1041,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1961917000311605967} + m_Father: {fileID: 1961916998269465996} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!20 &2396504726548320862 Camera: @@ -1095,14 +1094,6 @@ Camera: m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 ---- !u!81 &5428780862859445703 -AudioListener: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5917770569156638772} - m_Enabled: 1 --- !u!114 &4583640294701092575 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/UnityClient/Packages/vbl.urchin/Assets/Prefabs/Cameras/MainCamera.prefab b/UnityClient/Packages/vbl.urchin/Assets/Prefabs/Cameras/MainCamera.prefab index b97e3427..5d190f10 100644 --- a/UnityClient/Packages/vbl.urchin/Assets/Prefabs/Cameras/MainCamera.prefab +++ b/UnityClient/Packages/vbl.urchin/Assets/Prefabs/Cameras/MainCamera.prefab @@ -27,7 +27,7 @@ Transform: m_GameObject: {fileID: 5697262124586181149} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 0, y: 0, z: -16} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -64,7 +64,7 @@ Camera: y: 0 width: 1 height: 1 - near clip plane: -50 + near clip plane: 0.01 far clip plane: 50 field of view: 60 orthographic: 1 @@ -72,7 +72,7 @@ Camera: m_Depth: 0 m_CullingMask: serializedVersion: 2 - m_Bits: 16383 + m_Bits: 49151 m_RenderingPath: -1 m_TargetTexture: {fileID: 0} m_TargetDisplay: 0 @@ -154,8 +154,8 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5697262125096797366} serializedVersion: 2 - m_LocalRotation: {x: 0, y: -0.7071068, z: 0.7071068, w: 0} - m_LocalPosition: {x: 0, y: 16, z: 0} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -177,7 +177,7 @@ MonoBehaviour: m_EditorClassIdentifier: _mainCamera: {fileID: 5697262124586181144} _mainCameraRotator: {fileID: 5697262125096797366} - _mainCameraTargetT: {fileID: 0} + _mainCameraTargetT: {fileID: 5697262125096797367} minFoV: 0.5 maxFoV: 120 fovDelta: 15 @@ -236,7 +236,7 @@ Transform: m_GameObject: {fileID: 5697262126407426468} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 0, y: 0, z: -16} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -281,7 +281,7 @@ Camera: m_Depth: 0 m_CullingMask: serializedVersion: 2 - m_Bits: 16383 + m_Bits: 49151 m_RenderingPath: -1 m_TargetTexture: {fileID: 0} m_TargetDisplay: 0 diff --git a/UnityClient/Assets/Prefabs/Objects/LineRenderer.prefab b/UnityClient/Packages/vbl.urchin/Assets/Prefabs/Objects/LineRenderer.prefab similarity index 100% rename from UnityClient/Assets/Prefabs/Objects/LineRenderer.prefab rename to UnityClient/Packages/vbl.urchin/Assets/Prefabs/Objects/LineRenderer.prefab diff --git a/UnityClient/Assets/Prefabs/Objects/LineRenderer.prefab.meta b/UnityClient/Packages/vbl.urchin/Assets/Prefabs/Objects/LineRenderer.prefab.meta similarity index 100% rename from UnityClient/Assets/Prefabs/Objects/LineRenderer.prefab.meta rename to UnityClient/Packages/vbl.urchin/Assets/Prefabs/Objects/LineRenderer.prefab.meta diff --git a/UnityClient/Assets/Prefabs/Objects/Probes.meta b/UnityClient/Packages/vbl.urchin/Assets/Prefabs/Probes.meta similarity index 100% rename from UnityClient/Assets/Prefabs/Objects/Probes.meta rename to UnityClient/Packages/vbl.urchin/Assets/Prefabs/Probes.meta diff --git a/UnityClient/Assets/Prefabs/Objects/Probes/probePos.prefab b/UnityClient/Packages/vbl.urchin/Assets/Prefabs/Probes/LineProbe.prefab similarity index 63% rename from UnityClient/Assets/Prefabs/Objects/Probes/probePos.prefab rename to UnityClient/Packages/vbl.urchin/Assets/Prefabs/Probes/LineProbe.prefab index e32bc217..fc94ff4b 100644 --- a/UnityClient/Assets/Prefabs/Objects/Probes/probePos.prefab +++ b/UnityClient/Packages/vbl.urchin/Assets/Prefabs/Probes/LineProbe.prefab @@ -1,5 +1,37 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1 &1066270778300123511 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8315379393604377524} + m_Layer: 10 + m_Name: tip + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8315379393604377524 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1066270778300123511} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7845664613423551903} + m_Father: {fileID: 2507564506256405103} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2507564506256405100 GameObject: m_ObjectHideFlags: 0 @@ -9,8 +41,9 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 2507564506256405103} + - component: {fileID: 3475055082374194434} m_Layer: 10 - m_Name: probePos + m_Name: LineProbe m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -23,14 +56,29 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2507564506256405100} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 7845664613423551903} + - {fileID: 8315379393604377524} m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3475055082374194434 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2507564506256405100} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 928cb0d96ba8d0f4fad7d2a9b71000cc, type: 3} + m_Name: + m_EditorClassIdentifier: + _probeModelGO: {fileID: 5050654796192855964} + _sizeSettable: 1 --- !u!1 &5050654796192855964 GameObject: m_ObjectHideFlags: 0 @@ -57,13 +105,14 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5050654796192855964} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 1.92, z: 0} - m_LocalScale: {x: 0.07, y: 3.84, z: 0.02} + serializedVersion: 2 + m_LocalRotation: {x: 0.7071068, y: -0, z: -0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 0, z: -1.92} + m_LocalScale: {x: 0.07, y: 3.84, z: 0.019999998} + m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 2507564506256405103} - m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_Father: {fileID: 8315379393604377524} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} --- !u!33 &3433178161665070438 MeshFilter: m_ObjectHideFlags: 0 @@ -83,6 +132,7 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 @@ -91,7 +141,7 @@ MeshRenderer: m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: - - {fileID: 2100000, guid: c438e8caa829e6545bcd70d9f3a81440, type: 2} + - {fileID: 2100000, guid: ebc1facc3e73f274c8c4d918e266a49d, type: 2} m_StaticBatchInfo: firstSubMesh: 0 subMeshCount: 0 @@ -121,8 +171,16 @@ BoxCollider: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5050654796192855964} m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 m_IsTrigger: 0 + m_ProvidesContacts: 0 m_Enabled: 1 - serializedVersion: 2 + serializedVersion: 3 m_Size: {x: 1, y: 1, z: 1} m_Center: {x: 0, y: 0, z: 0} diff --git a/UnityClient/Assets/Prefabs/Objects/Probes/probePos.prefab.meta b/UnityClient/Packages/vbl.urchin/Assets/Prefabs/Probes/LineProbe.prefab.meta similarity index 100% rename from UnityClient/Assets/Prefabs/Objects/Probes/probePos.prefab.meta rename to UnityClient/Packages/vbl.urchin/Assets/Prefabs/Probes/LineProbe.prefab.meta diff --git a/UnityClient/Packages/vbl.urchin/Assets/Prefabs/UI/ControlPanel.prefab b/UnityClient/Packages/vbl.urchin/Assets/Prefabs/UI/ControlPanel.prefab index a5dac237..149f468b 100644 --- a/UnityClient/Packages/vbl.urchin/Assets/Prefabs/UI/ControlPanel.prefab +++ b/UnityClient/Packages/vbl.urchin/Assets/Prefabs/UI/ControlPanel.prefab @@ -11,6 +11,7 @@ GameObject: - component: {fileID: 2132295245476896702} - component: {fileID: 1494670421550532711} - component: {fileID: 165103817719186320} + - component: {fileID: 6177646269513568233} m_Layer: 5 m_Name: ControlPanel m_TagString: Untagged @@ -72,3 +73,15 @@ MonoBehaviour: y: 0 width: 1 height: 1 +--- !u!114 &6177646269513568233 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7398734895119177350} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9ddabafefcfa6e94596214fc26e30cc4, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/UnityClient/Packages/vbl.urchin/Assets/Prefabs/UI/Text.prefab b/UnityClient/Packages/vbl.urchin/Assets/Prefabs/UI/Text.prefab index 58bd1ffc..7d3c68b9 100644 --- a/UnityClient/Packages/vbl.urchin/Assets/Prefabs/UI/Text.prefab +++ b/UnityClient/Packages/vbl.urchin/Assets/Prefabs/UI/Text.prefab @@ -11,7 +11,7 @@ GameObject: - component: {fileID: 6770107022373063409} - component: {fileID: 6770107022373063423} - component: {fileID: 6770107022373063408} - m_Layer: 5 + m_Layer: 15 m_Name: Text m_TagString: Untagged m_Icon: {fileID: 0} @@ -31,7 +31,6 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} diff --git a/UnityClient/Packages/vbl.urchin/Assets/Prefabs/Urchin.prefab b/UnityClient/Packages/vbl.urchin/Assets/Prefabs/Urchin.prefab index 7ba8a365..89d5fbda 100644 --- a/UnityClient/Packages/vbl.urchin/Assets/Prefabs/Urchin.prefab +++ b/UnityClient/Packages/vbl.urchin/Assets/Prefabs/Urchin.prefab @@ -4905,13 +4905,15 @@ ParticleSystemRenderer: m_RenderAlignment: 0 m_Pivot: {x: 0, y: 0, z: 0} m_Flip: {x: 0, y: 0, z: 0} - m_UseCustomVertexStreams: 0 m_EnableGPUInstancing: 1 m_ApplyActiveColorSpace: 1 m_AllowRoll: 1 m_FreeformStretching: 0 m_RotateWithStretchDirection: 1 + m_UseCustomVertexStreams: 0 m_VertexStreams: 00010304 + m_UseCustomTrailVertexStreams: 0 + m_TrailVertexStreams: 00010304 m_Mesh: {fileID: 0} m_Mesh1: {fileID: 0} m_Mesh2: {fileID: 0} @@ -4921,6 +4923,53 @@ ParticleSystemRenderer: m_MeshWeighting2: 1 m_MeshWeighting3: 1 m_MaskInteraction: 0 +--- !u!1 &1354364206413206436 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6315221786318199943} + - component: {fileID: 2058539603744147609} + m_Layer: 0 + m_Name: Utils + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6315221786318199943 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1354364206413206436} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 5428924515040814815} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2058539603744147609 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1354364206413206436} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c8479056271361b4aa5ed167afdd2807, type: 3} + m_Name: + m_EditorClassIdentifier: + MainColormapChangedEvent: + m_PersistentCalls: + m_Calls: [] --- !u!1 &1366211727439126396 GameObject: m_ObjectHideFlags: 0 @@ -4947,7 +4996,7 @@ Transform: m_GameObject: {fileID: 1366211727439126396} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 11.82156, y: 11.3389635, z: 8.300563} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -5061,7 +5110,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 4ff5920b3c3ec3a47ab6d0b7db7e5ca5, type: 3} m_Name: m_EditorClassIdentifier: - volRenderer: {fileID: 0} + volRenderer: {fileID: 4373804438314061606} --- !u!1 &4390413428189988366 GameObject: m_ObjectHideFlags: 0 @@ -5106,8 +5155,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1f4e4f2895fdcbe4c89196808b4e9cb9, type: 3} m_Name: m_EditorClassIdentifier: - _lineRendererPrefabGO: {fileID: 0} - _lineRendererParentT: {fileID: 0} + _lineRendererPrefabGO: {fileID: 4722965623523888344, guid: c63cb033a009f0e429193c9b63cc8ade, type: 3} + _lineRendererParentT: {fileID: 4390413428189988367} --- !u!1 &4417393973230421729 GameObject: m_ObjectHideFlags: 0 @@ -5139,10 +5188,10 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 6080471889833257604} - {fileID: 2757818260648243688} - {fileID: 1585022055348087818} - - {fileID: 1235637129095643129} + - {fileID: 2408366950687850817} + - {fileID: 6315221786318199943} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &5499955737624851356 @@ -5169,16 +5218,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 5ff1da35009d08a478794287dd9363a2, type: 3} m_Name: m_EditorClassIdentifier: + IDChangedEvent: + m_PersistentCalls: + m_Calls: [] localhost: 0 - _lineRendererManager: {fileID: 4390413428189988364} - _primitiveMeshManager: {fileID: 1366211727439126397} - _probeManager: {fileID: 7747742223502542136} - _areaManager: {fileID: 7683298792840207488} - _textManager: {fileID: 5167816034593033511} - _volumeManager: {fileID: 2555904598708727173} - _cameraManager: {fileID: 756099984625368948} - _fovManager: {fileID: 6733289912173270488} - _particleManager: {fileID: 6074828215876335387} --- !u!1 &5012633055188078402 GameObject: m_ObjectHideFlags: 0 @@ -5223,11 +5266,10 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 54cf7c9e3abd4c54e876992ba07441ef, type: 3} m_Name: m_EditorClassIdentifier: - _brainAtlasManager: {fileID: 0} NodeVisibleEvent: m_PersistentCalls: m_Calls: [] ---- !u!1 &5349182182980964132 +--- !u!1 &5013054077014008018 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -5235,21 +5277,22 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1235637129095643129} + - component: {fileID: 2408366950687850817} + - component: {fileID: 4373804438314061606} m_Layer: 0 - m_Name: Utils + m_Name: Volumes m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!4 &1235637129095643129 +--- !u!4 &2408366950687850817 Transform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 5349182182980964132} + m_GameObject: {fileID: 5013054077014008018} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} @@ -5258,6 +5301,20 @@ Transform: m_Children: [] m_Father: {fileID: 5428924515040814815} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4373804438314061606 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5013054077014008018} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0192bf06e49195744bb027cd12d05376, type: 3} + m_Name: + m_EditorClassIdentifier: + volumeLoadingUIGO: {fileID: 0} + volumeLoadingUIText: {fileID: 0} --- !u!1 &5566263359961949564 GameObject: m_ObjectHideFlags: 0 @@ -5317,8 +5374,8 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8416199858696686067} serializedVersion: 2 - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 15.62621, y: 6.260559, z: 7.401828} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -5342,7 +5399,7 @@ MonoBehaviour: _renderTexture3: {fileID: 8400000, guid: 6beab1dc65faa2f429cbf24390bc7062, type: 2} _renderTexture4: {fileID: 8400000, guid: 70d722c7394d2f746a700129510c613e, type: 2} mainCamera: {fileID: 3393775226113162772} - _lightBehavior: {fileID: 0} + _lightBehavior: {fileID: 6701840750721492199} _areaManager: {fileID: 7683298792840207488} _uiCanvas: {fileID: 0} _cameraUIGOs: [] @@ -5390,10 +5447,12 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 01d7c98f724b46f4db70fef03b2c6fba, type: 3} m_Name: m_EditorClassIdentifier: - _probePrefabOptions: [] - _probePrefabNames: [] - _defaultProbeStyle: - _probeParentT: {fileID: 0} + _probePrefabOptions: + - {fileID: 2507564506256405100, guid: bbfd294d9a4375144b5214e4196f5d20, type: 3} + _probePrefabNames: + - line + _defaultProbeStyle: line + _probeParentT: {fileID: 8776701558739034145} --- !u!1 &9067917052004693332 GameObject: m_ObjectHideFlags: 0 @@ -5448,13 +5507,29 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1585022055348087818} m_Modifications: + - target: {fileID: 1961916998667086571, guid: f41a56f4fda00a7459bf39bd6b7d4155, type: 3} + propertyPath: cameraController + value: + objectReference: {fileID: 3393775226113162775} + - target: {fileID: 1961916998806602264, guid: f41a56f4fda00a7459bf39bd6b7d4155, type: 3} + propertyPath: cameraController + value: + objectReference: {fileID: 3393775226113162775} + - target: {fileID: 1961917000157152736, guid: f41a56f4fda00a7459bf39bd6b7d4155, type: 3} + propertyPath: cameraController + value: + objectReference: {fileID: 3393775226113162775} + - target: {fileID: 1961917000196635951, guid: f41a56f4fda00a7459bf39bd6b7d4155, type: 3} + propertyPath: cameraController + value: + objectReference: {fileID: 3393775226113162775} - target: {fileID: 1961917000311605960, guid: f41a56f4fda00a7459bf39bd6b7d4155, type: 3} propertyPath: m_Name value: BrainControls objectReference: {fileID: 0} - target: {fileID: 1961917000311605967, guid: f41a56f4fda00a7459bf39bd6b7d4155, type: 3} propertyPath: m_LocalPosition.x - value: 0 + value: 200 objectReference: {fileID: 0} - target: {fileID: 1961917000311605967, guid: f41a56f4fda00a7459bf39bd6b7d4155, type: 3} propertyPath: m_LocalPosition.y @@ -5497,6 +5572,17 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: f41a56f4fda00a7459bf39bd6b7d4155, type: 3} +--- !u!114 &1424787918614360421 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 1961916998269465987, guid: f41a56f4fda00a7459bf39bd6b7d4155, type: 3} + m_PrefabInstance: {fileID: 648514006979445990} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0a12b47cde633a84bb951f673e9843f2, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!4 &1424787919326907945 stripped Transform: m_CorrespondingSourceObject: {fileID: 1961917000311605967, guid: f41a56f4fda00a7459bf39bd6b7d4155, type: 3} @@ -5510,41 +5596,37 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 1585022055348087818} m_Modifications: - - target: {fileID: 5697262124586181144, guid: df654a8b58b5be543a801b0bcda6f0de, type: 3} - propertyPath: near clip plane - value: -50 - objectReference: {fileID: 0} - - target: {fileID: 5697262125096797366, guid: df654a8b58b5be543a801b0bcda6f0de, type: 3} - propertyPath: m_Name - value: MainCamera - objectReference: {fileID: 0} - - target: {fileID: 5697262125096797367, guid: df654a8b58b5be543a801b0bcda6f0de, type: 3} - propertyPath: m_LocalPosition.x - value: 0 + - target: {fileID: 5697262125096797361, guid: df654a8b58b5be543a801b0bcda6f0de, type: 3} + propertyPath: RotationChangedEvent.m_PersistentCalls.m_Calls.Array.size + value: 1 objectReference: {fileID: 0} - - target: {fileID: 5697262125096797367, guid: df654a8b58b5be543a801b0bcda6f0de, type: 3} - propertyPath: m_LocalPosition.y - value: 16 + - target: {fileID: 5697262125096797361, guid: df654a8b58b5be543a801b0bcda6f0de, type: 3} + propertyPath: RotationChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_Target + value: + objectReference: {fileID: 1424787918614360421} + - target: {fileID: 5697262125096797361, guid: df654a8b58b5be543a801b0bcda6f0de, type: 3} + propertyPath: RotationChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_CallState + value: 2 objectReference: {fileID: 0} - - target: {fileID: 5697262125096797367, guid: df654a8b58b5be543a801b0bcda6f0de, type: 3} - propertyPath: m_LocalPosition.z - value: 0 + - target: {fileID: 5697262125096797361, guid: df654a8b58b5be543a801b0bcda6f0de, type: 3} + propertyPath: RotationChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName + value: UpdateRotation objectReference: {fileID: 0} - - target: {fileID: 5697262125096797367, guid: df654a8b58b5be543a801b0bcda6f0de, type: 3} - propertyPath: m_LocalRotation.w - value: 0 + - target: {fileID: 5697262125096797361, guid: df654a8b58b5be543a801b0bcda6f0de, type: 3} + propertyPath: RotationChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName + value: Urchin.Cameras.CameraMiniController, urchin.cameras objectReference: {fileID: 0} - - target: {fileID: 5697262125096797367, guid: df654a8b58b5be543a801b0bcda6f0de, type: 3} - propertyPath: m_LocalRotation.x - value: 0 + - target: {fileID: 5697262125096797361, guid: df654a8b58b5be543a801b0bcda6f0de, type: 3} + propertyPath: RotationChangedEvent.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName + value: UnityEngine.Object, UnityEngine objectReference: {fileID: 0} - - target: {fileID: 5697262125096797367, guid: df654a8b58b5be543a801b0bcda6f0de, type: 3} - propertyPath: m_LocalRotation.y - value: -0.7071068 + - target: {fileID: 5697262125096797362, guid: df654a8b58b5be543a801b0bcda6f0de, type: 3} + propertyPath: Name + value: main objectReference: {fileID: 0} - - target: {fileID: 5697262125096797367, guid: df654a8b58b5be543a801b0bcda6f0de, type: 3} - propertyPath: m_LocalRotation.z - value: 0.7071068 + - target: {fileID: 5697262125096797366, guid: df654a8b58b5be543a801b0bcda6f0de, type: 3} + propertyPath: m_Name + value: MainCamera objectReference: {fileID: 0} - target: {fileID: 5697262125096797367, guid: df654a8b58b5be543a801b0bcda6f0de, type: 3} propertyPath: m_LocalEulerAnglesHint.x @@ -5583,6 +5665,17 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 29696c16e4ad4234f81dfdbd428c8ad3, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!114 &3393775226113162775 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 5697262125096797361, guid: df654a8b58b5be543a801b0bcda6f0de, type: 3} + m_PrefabInstance: {fileID: 6920239469451836070} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9d43419cf1d43bf4995059dad0606dfc, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1001 &7863671746043544761 PrefabInstance: m_ObjectHideFlags: 0 @@ -5649,65 +5742,14 @@ Transform: m_CorrespondingSourceObject: {fileID: 5601972690578679291, guid: eaccb0477aba4574eb95d4ee5e7889c1, type: 3} m_PrefabInstance: {fileID: 7863671746043544761} m_PrefabAsset: {fileID: 0} ---- !u!1001 &9157121737869696633 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 5428924515040814815} - m_Modifications: - - target: {fileID: 1061156970922571914, guid: ee09154d7a7870a419882ff36080d765, type: 3} - propertyPath: m_Name - value: BrainAtlas - objectReference: {fileID: 0} - - target: {fileID: 3131845913727300861, guid: ee09154d7a7870a419882ff36080d765, type: 3} - propertyPath: m_LocalPosition.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3131845913727300861, guid: ee09154d7a7870a419882ff36080d765, type: 3} - propertyPath: m_LocalPosition.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3131845913727300861, guid: ee09154d7a7870a419882ff36080d765, type: 3} - propertyPath: m_LocalPosition.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3131845913727300861, guid: ee09154d7a7870a419882ff36080d765, type: 3} - propertyPath: m_LocalRotation.w - value: 1 - objectReference: {fileID: 0} - - target: {fileID: 3131845913727300861, guid: ee09154d7a7870a419882ff36080d765, type: 3} - propertyPath: m_LocalRotation.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3131845913727300861, guid: ee09154d7a7870a419882ff36080d765, type: 3} - propertyPath: m_LocalRotation.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3131845913727300861, guid: ee09154d7a7870a419882ff36080d765, type: 3} - propertyPath: m_LocalRotation.z - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3131845913727300861, guid: ee09154d7a7870a419882ff36080d765, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3131845913727300861, guid: ee09154d7a7870a419882ff36080d765, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 3131845913727300861, guid: ee09154d7a7870a419882ff36080d765, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: ee09154d7a7870a419882ff36080d765, type: 3} ---- !u!4 &6080471889833257604 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 3131845913727300861, guid: ee09154d7a7870a419882ff36080d765, type: 3} - m_PrefabInstance: {fileID: 9157121737869696633} +--- !u!114 &6701840750721492199 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 3468026171546820702, guid: eaccb0477aba4574eb95d4ee5e7889c1, type: 3} + m_PrefabInstance: {fileID: 7863671746043544761} m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b8eb74672a89844458a35e5b533041e5, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/UnityClient/Assets/RenderTextures/CameraOutput1.renderTexture b/UnityClient/Packages/vbl.urchin/Assets/RenderTextures/CameraOutput1.renderTexture similarity index 100% rename from UnityClient/Assets/RenderTextures/CameraOutput1.renderTexture rename to UnityClient/Packages/vbl.urchin/Assets/RenderTextures/CameraOutput1.renderTexture diff --git a/UnityClient/Assets/RenderTextures/CameraOutput1.renderTexture.meta b/UnityClient/Packages/vbl.urchin/Assets/RenderTextures/CameraOutput1.renderTexture.meta similarity index 100% rename from UnityClient/Assets/RenderTextures/CameraOutput1.renderTexture.meta rename to UnityClient/Packages/vbl.urchin/Assets/RenderTextures/CameraOutput1.renderTexture.meta diff --git a/UnityClient/Assets/RenderTextures/CameraOutput2.renderTexture b/UnityClient/Packages/vbl.urchin/Assets/RenderTextures/CameraOutput2.renderTexture similarity index 100% rename from UnityClient/Assets/RenderTextures/CameraOutput2.renderTexture rename to UnityClient/Packages/vbl.urchin/Assets/RenderTextures/CameraOutput2.renderTexture diff --git a/UnityClient/Assets/RenderTextures/CameraOutput2.renderTexture.meta b/UnityClient/Packages/vbl.urchin/Assets/RenderTextures/CameraOutput2.renderTexture.meta similarity index 100% rename from UnityClient/Assets/RenderTextures/CameraOutput2.renderTexture.meta rename to UnityClient/Packages/vbl.urchin/Assets/RenderTextures/CameraOutput2.renderTexture.meta diff --git a/UnityClient/Assets/RenderTextures/CameraOutput3.renderTexture b/UnityClient/Packages/vbl.urchin/Assets/RenderTextures/CameraOutput3.renderTexture similarity index 100% rename from UnityClient/Assets/RenderTextures/CameraOutput3.renderTexture rename to UnityClient/Packages/vbl.urchin/Assets/RenderTextures/CameraOutput3.renderTexture diff --git a/UnityClient/Assets/RenderTextures/CameraOutput3.renderTexture.meta b/UnityClient/Packages/vbl.urchin/Assets/RenderTextures/CameraOutput3.renderTexture.meta similarity index 100% rename from UnityClient/Assets/RenderTextures/CameraOutput3.renderTexture.meta rename to UnityClient/Packages/vbl.urchin/Assets/RenderTextures/CameraOutput3.renderTexture.meta diff --git a/UnityClient/Assets/RenderTextures/CameraOutput4.renderTexture b/UnityClient/Packages/vbl.urchin/Assets/RenderTextures/CameraOutput4.renderTexture similarity index 100% rename from UnityClient/Assets/RenderTextures/CameraOutput4.renderTexture rename to UnityClient/Packages/vbl.urchin/Assets/RenderTextures/CameraOutput4.renderTexture diff --git a/UnityClient/Assets/RenderTextures/CameraOutput4.renderTexture.meta b/UnityClient/Packages/vbl.urchin/Assets/RenderTextures/CameraOutput4.renderTexture.meta similarity index 100% rename from UnityClient/Assets/RenderTextures/CameraOutput4.renderTexture.meta rename to UnityClient/Packages/vbl.urchin/Assets/RenderTextures/CameraOutput4.renderTexture.meta diff --git a/UnityClient/Packages/vbl.urchin/Scripts/API/Client_SocketIO.cs b/UnityClient/Packages/vbl.urchin/Scripts/API/Client_SocketIO.cs index f71a38b9..a104f242 100644 --- a/UnityClient/Packages/vbl.urchin/Scripts/API/Client_SocketIO.cs +++ b/UnityClient/Packages/vbl.urchin/Scripts/API/Client_SocketIO.cs @@ -2,7 +2,8 @@ using UnityEngine; using BestHTTP.SocketIO3; using System; -using Urchin.Managers; +using UnityEngine.Events; +using System.Collections.Specialized; namespace Urchin.API {/// @@ -11,40 +12,34 @@ namespace Urchin.API /// public class Client_SocketIO : MonoBehaviour { - private const string ID_SAVE_KEY = "id"; - [SerializeField] private bool localhost; + #region Static + public static readonly int SOCKET_IO_MAX_CHUNK_BYTES = 10000000; // maximum SocketIO message size seems to be 256KB + #endregion - #region Managers - [SerializeField] private LineRendererManager _lineRendererManager; - [SerializeField] private PrimitiveMeshManager _primitiveMeshManager; - [SerializeField] private ProbeManager _probeManager; - [SerializeField] private AtlasManager _areaManager; - [SerializeField] private TextManager _textManager; - [SerializeField] private VolumeManager _volumeManager; - [SerializeField] private CameraManager _cameraManager; - [SerializeField] private FOVManager _fovManager;//TODO - [SerializeField] private ParticleManager _particleManager; + #region Events + public UnityEvent IDChangedEvent; #endregion - // NODES + #region variables + private const string ID_SAVE_KEY = "id"; + private string _ID; + public string ID + { + get { return _ID; } + set + { + _ID = value; + PlayerPrefs.SetString(ID_SAVE_KEY, ID); + manager.Socket.Emit("ID", new List() { ID, "receive" }); + IDChangedEvent.Invoke(ID); + } + } - private string ID; + [SerializeField] private bool localhost; private static SocketManager manager; + #endregion - /// - /// Unity internal startup function, initializes internal variables and allocates memory - /// - private void Awake() - { - if (_lineRendererManager == null || _primitiveMeshManager == null || _probeManager == null || _areaManager == null || - _textManager == null || _volumeManager == null || _cameraManager == null) - throw new Exception("All managers must be linked in the editor!"); - } - - /// - /// Unity internal startup function, runs before the first frame Update() - /// void Start() { // Only allow localhost when running in the editor @@ -62,156 +57,250 @@ void Start() manager.Socket.On("reconnect", () => { Debug.Log("(Client) client reconnected -- could be sign of a timeout issue"); }); #endif - // CCF Areas - manager.Socket.On("LoadAtlas", _areaManager.LoadAtlas); - manager.Socket.On>("SetAreaVisibility", _areaManager.SetAreaVisibility); - manager.Socket.On>("SetAreaColors", _areaManager.SetAreaColor); - manager.Socket.On>("SetAreaIntensity", _areaManager.SetAreaColorIntensity); - manager.Socket.On("SetAreaColormap", _areaManager.SetAreaColormap); - manager.Socket.On>("SetAreaMaterial", _areaManager.SetAreaMaterial); - manager.Socket.On>("SetAreaAlpha", _areaManager.SetAreaAlpha); - manager.Socket.On>>("SetAreaData", _areaManager.SetAreaData); - manager.Socket.On("SetAreaIndex", _areaManager.SetAreaDataIndex); - manager.Socket.On("LoadDefaultAreas", _areaManager.LoadDefaultAreas); - - // 3D Volumes - manager.Socket.On>("SetVolumeVisibility", _volumeManager.SetVisibility); - manager.Socket.On>("SetVolumeDataMeta", _volumeManager.SetMetadata); - manager.Socket.On("SetVolumeData", _volumeManager.SetData); - manager.Socket.On("CreateVolume", _volumeManager.Create); - manager.Socket.On("DeleteVolume", _volumeManager.Delete); - manager.Socket.On>("SetVolumeColormap", _volumeManager.SetVolumeColormap); - - // Neurons - manager.Socket.On>("CreateNeurons", _particleManager.CreateParticles); - //manager.Socket.On>("DeleteNeurons", DeleteNeurons); - manager.Socket.On>("SetNeuronPos", _particleManager.SetPosition); - manager.Socket.On>("SetNeuronSize", _particleManager.SetSize); - //manager.Socket.On>("SetNeuronShape", UpdateNeuronShape); - manager.Socket.On>("SetNeuronColor", _particleManager.SetColor); - //manager.Socket.On>("SetNeuronMaterial", UpdateNeuronMaterial); - - // Probes - manager.Socket.On>("CreateProbes", _probeManager.CreateProbes); - manager.Socket.On>("DeleteProbes", _probeManager.DeleteProbes); - manager.Socket.On>("SetProbeColors", _probeManager.SetProbeColor); - manager.Socket.On>>("SetProbePos", _probeManager.SetProbePosition); - manager.Socket.On>>("SetProbeAngles", _probeManager.SetProbeAngle); - manager.Socket.On>("SetProbeStyle", _probeManager.SetProbeStyle); - manager.Socket.On>>("SetProbeSize", _probeManager.SetProbeScale); - - // Camera - manager.Socket.On>>("SetCameraTarget", _cameraManager.SetCameraTarget); - manager.Socket.On>>("SetCameraPosition", _cameraManager.SetCameraPosition); - manager.Socket.On>>("SetCameraRotation", _cameraManager.SetCameraRotation); - manager.Socket.On>("SetCameraTargetArea", _cameraManager.SetCameraTargetArea); - manager.Socket.On>("SetCameraZoom", _cameraManager.SetCameraZoom); - manager.Socket.On>>("SetCameraPan", _cameraManager.SetCameraPan); - manager.Socket.On>("SetCameraMode", _cameraManager.SetCameraMode); - manager.Socket.On("SetCameraControl", _cameraManager.SetCameraControl); - manager.Socket.On("RequestCameraImg", _cameraManager.Screenshot); - manager.Socket.On>("SetCameraYAngle", _cameraManager.SetCameraYAngle); - manager.Socket.On>("CreateCamera", _cameraManager.CreateCamera); - manager.Socket.On>("DeleteCamera", _cameraManager.DeleteCamera); - - // Lights - manager.Socket.On("ResetLightLink", _cameraManager.SetLightCameraLink); - manager.Socket.On("SetLightLink", _cameraManager.SetLightCameraLink); - manager.Socket.On>("SetLightRotation", _cameraManager.SetLightRotation); - - // Text - manager.Socket.On>("CreateText", _textManager.Create); - manager.Socket.On>("DeleteText", _textManager.Delete); - manager.Socket.On>("SetTextText", _textManager.SetText); - manager.Socket.On>("SetTextColors", _textManager.SetColor); - manager.Socket.On>("SetTextSizes", _textManager.SetSize); - manager.Socket.On>>("SetTextPositions", _textManager.SetPosition); - - // Line Renderer - manager.Socket.On>("CreateLine", _lineRendererManager.CreateLine); - manager.Socket.On>>>("SetLinePosition", _lineRendererManager.SetLinePosition); - manager.Socket.On>("DeleteLine", _lineRendererManager.DeleteLine); - manager.Socket.On>("SetLineColor", _lineRendererManager.SetLineColor); - - //Primitive Mesh Renderer - manager.Socket.On>("CreateMesh", _primitiveMeshManager.CreateMesh); - manager.Socket.On>("DeleteMesh", _primitiveMeshManager.DeleteMesh); - manager.Socket.On>>("SetPosition", _primitiveMeshManager.SetPosition); - manager.Socket.On>>("SetScale", _primitiveMeshManager.SetScale); - manager.Socket.On>("SetColor", _primitiveMeshManager.SetColor); - manager.Socket.On>("SetMaterial", _primitiveMeshManager.SetMaterial); - - // Calcium FOV Renderer - manager.Socket.On>("CreateFOV", _fovManager.Create); - manager.Socket.On>("DeleteFOV", _fovManager.Delete); - manager.Socket.On>>>("SetFOVPos", _fovManager.SetPosition); - //manager.Socket.On>("SetFOVOffset", _fovManager.SetOffset); - //manager.Socket.On>("SetFOVTextureDataMetaInit", _fovManager.SetTextureDataMetaInit); - //manager.Socket.On>("SetFOVTextureDataMeta", _fovManager.SetTextureDataMeta); - //manager.Socket.On("SetFOVTextureData", _fovManager.SetTextureData); - manager.Socket.On>("SetFOVVisibility", _fovManager.SetVisibility); - + // Call the startup functions, these bind all the Socket.on events and setup the static Actions, which + // other scripts can then listen to + Start_Atlas(); + Start_Volume(); + Start_Particles(); + Start_Probes(); + Start_Camera(); + Start_Light(); + Start_Text(); + Start_LineRenderer(); + Start_PrimitiveMeshRenderer(); + Start_FOV(); // Misc manager.Socket.On("Clear", Clear); + } - // If we are building to WebGL or to Standalone, switch how you acquire the user's ID + #region Socket setup by action group + public static Action LoadAtlas; + public static Action SetAreaVisibility; + public static Action> SetAreaColors; + public static Action> SetAreaIntensity; + public static Action SetAreaColormap; + public static Action> SetAreaMaterial; + public static Action> SetAreaAlpha; + public static Action>> SetAreaData; + public static Action SetAreaIndex; + public static Action LoadDefaultAreas; + + private void Start_Atlas() + { + // CCF Areas + manager.Socket.On("LoadAtlas", x => LoadAtlas.Invoke(x)); + manager.Socket.On("SetAreaVisibility", x => SetAreaVisibility.Invoke(JsonUtility.FromJson(x))); + manager.Socket.On>("SetAreaColors", x => SetAreaColors.Invoke(x)); + manager.Socket.On>("SetAreaIntensity", x => SetAreaIntensity.Invoke(x)); + manager.Socket.On("SetAreaColormap", x => SetAreaColormap.Invoke(x)); + manager.Socket.On>("SetAreaMaterial", x => SetAreaMaterial.Invoke(x)); + manager.Socket.On>("SetAreaAlpha", x => SetAreaAlpha.Invoke(x)); + manager.Socket.On>>("SetAreaData", x => SetAreaData.Invoke(x)); + manager.Socket.On("SetAreaIndex", x => SetAreaIndex.Invoke(x)); + manager.Socket.On("LoadDefaultAreas", x => LoadDefaultAreas.Invoke()); + } -#if UNITY_WEBGL && !UNITY_EDITOR - // get the url - string appURL = Application.absoluteURL; - // parse for query strings - int queryIdx = appURL.IndexOf("?"); - if (queryIdx > 0) + public static Action> SetVolumeVisibility; + public static Action> SetVolumeDataMeta; + public static Action SetVolumeData; + public static Action CreateVolume; + public static Action DeleteVolume; + public static Action> SetVolumeColormap; + + private void Start_Volume() { - Debug.Log("Found query string"); - string queryString = appURL.Substring(queryIdx); - Debug.Log(queryString); - NameValueCollection qscoll = System.Web.HttpUtility.ParseQueryString(queryString); - foreach (string query in qscoll) - { - Debug.Log(query); - Debug.Log(qscoll[query]); - if (query.Equals("ID")) - { - ID = qscoll[query]; - Debug.Log("Found ID in URL querystring, setting to: " + ID); - } - } + manager.Socket.On>("SetVolumeVisibility", x => SetVolumeVisibility.Invoke(x)); + manager.Socket.On>("SetVolumeDataMeta", x => SetVolumeDataMeta.Invoke(x)); + manager.Socket.On("SetVolumeData", x => SetVolumeData.Invoke(x)); + manager.Socket.On("CreateVolume", x => CreateVolume.Invoke(x)); + manager.Socket.On("DeleteVolume", x => DeleteVolume.Invoke(x)); + manager.Socket.On>("SetVolumeColormap", x => SetVolumeColormap.Invoke(x)); } -#endif + + public static Action> CreateParticles; + public static Action> SetParticlePosition; + public static Action> SetParticleSize; + //public static Action> SetParticleShape; + public static Action> SetParticleColor; + //public static Action> SetParticleMaterial; + + private void Start_Particles() + { + manager.Socket.On>("CreateParticles", x => CreateParticles.Invoke(x)); + manager.Socket.On>("SetParticlePos", x => SetParticlePosition.Invoke(x)); + manager.Socket.On>("SetParticleSize", x => SetParticleSize.Invoke(x)); + //manager.Socket.On>("SetNeuronShape", x => SetParticleShape.Invoke(x)); + manager.Socket.On>("SetParticleColor", x => SetParticleColor.Invoke(x)); + //manager.Socket.On>("SetNeuronMaterial", x => SetParticleMaterial.Invoke(x)); + } + + public static Action> CreateProbes; + public static Action> DeleteProbes; + public static Action> SetProbeColors; + public static Action>> SetProbePos; + public static Action>> SetProbeAngles; + public static Action> SetProbeStyle; + public static Action>> SetProbeSize; + + private void Start_Probes() + { + manager.Socket.On>("CreateProbes", x => CreateProbes.Invoke(x)); + manager.Socket.On>("DeleteProbes", x => DeleteProbes.Invoke(x)); + manager.Socket.On>("SetProbeColors", x => SetProbeColors.Invoke(x)); + manager.Socket.On>>("SetProbePos", x => SetProbePos.Invoke(x)); + manager.Socket.On>>("SetProbeAngles", x => SetProbeAngles.Invoke(x)); + manager.Socket.On>("SetProbeStyle", x => SetProbeStyle.Invoke(x)); + manager.Socket.On>>("SetProbeSize", x => SetProbeSize.Invoke(x)); + } + + public static Action>> SetCameraTarget; + public static Action>> SetCameraRotation; + public static Action> SetCameraTargetArea; + public static Action> SetCameraZoom; + public static Action>> SetCameraPan; + public static Action> SetCameraMode; + public static Action> SetCameraColor; + public static Action SetCameraControl; + public static Action RequestScreenshot; + public static Action> SetCameraYAngle; + public static Action> CreateCamera; + public static Action> DeleteCamera; + + private void Start_Camera() + { + manager.Socket.On>>("SetCameraTarget", x => SetCameraTarget.Invoke(x)); + manager.Socket.On>>("SetCameraRotation", x => SetCameraRotation.Invoke(x)); + manager.Socket.On>("SetCameraTargetArea", x => SetCameraTargetArea.Invoke(x)); + manager.Socket.On>("SetCameraZoom", x => SetCameraZoom.Invoke(x)); + manager.Socket.On>>("SetCameraPan", x => SetCameraPan.Invoke(x)); + manager.Socket.On>("SetCameraMode", x => SetCameraMode.Invoke(x)); + manager.Socket.On>("SetCameraColor", x => SetCameraColor.Invoke(x)); + manager.Socket.On("SetCameraControl", x => SetCameraControl.Invoke(x)); + manager.Socket.On("RequestCameraImg", x => RequestScreenshot.Invoke(x)); + manager.Socket.On>("SetCameraYAngle", x => SetCameraYAngle.Invoke(x)); + manager.Socket.On>("CreateCamera", x => CreateCamera.Invoke(x)); + manager.Socket.On>("DeleteCamera", x => DeleteCamera.Invoke(x)); + } + + public static Action ResetLightLink; + public static Action SetLightLink; + public static Action> SetLightRotation; + + private void Start_Light() + { + manager.Socket.On("ResetLightLink", () => ResetLightLink.Invoke()); + manager.Socket.On("SetLightLink", x => SetLightLink.Invoke(x)); + manager.Socket.On>("SetLightRotation", x => SetLightRotation.Invoke(x)); + } + + public static Action> CreateText; + public static Action> DeleteText; + public static Action> SetTextText; + public static Action> SetTextColors; + public static Action> SetTextSizes; + public static Action>> SetTextPositions; + + private void Start_Text() + { + manager.Socket.On>("CreateText", x => CreateText.Invoke(x)); + manager.Socket.On>("DeleteText", x => DeleteText.Invoke(x)); + manager.Socket.On>("SetTextText", x => SetTextText.Invoke(x)); + manager.Socket.On>("SetTextColors", x => SetTextColors.Invoke(x)); + manager.Socket.On>("SetTextSizes", x => SetTextSizes.Invoke(x)); + manager.Socket.On>>("SetTextPositions", x => SetTextPositions.Invoke(x)); + } + + public static Action> CreateLine; + public static Action>>> SetLinePosition; + public static Action> DeleteLine; + public static Action> SetLineColor; + + private void Start_LineRenderer() + { + manager.Socket.On>("CreateLine", x => CreateLine.Invoke(x)); + manager.Socket.On>>>("SetLinePosition", x => SetLinePosition.Invoke(x)); + manager.Socket.On>("DeleteLine", x => DeleteLine.Invoke(x)); + manager.Socket.On>("SetLineColor", x => SetLineColor.Invoke(x)); + } + + public static Action> CreateMesh; + public static Action> DeleteMesh; + public static Action>> SetPosition; + public static Action>> SetScale; + public static Action> SetColor; + public static Action> SetMaterial; + + private void Start_PrimitiveMeshRenderer() + { + manager.Socket.On>("CreateMesh", x => CreateMesh.Invoke(x)); + manager.Socket.On>("DeleteMesh", x => DeleteMesh.Invoke(x)); + manager.Socket.On>>("SetPosition", x => SetPosition.Invoke(x)); + manager.Socket.On>>("SetScale", x => SetScale.Invoke(x)); + manager.Socket.On>("SetColor", x => SetColor.Invoke(x)); + manager.Socket.On>("SetMaterial", x => SetMaterial.Invoke(x)); + } + + public static Action> CreateFOV; + public static Action> DeleteFOV; + public static Action>>> SetFOVPos; + public static Action> SetFOVOffset; + public static Action> SetFOVTextureDataMetaInit; + public static Action> SetFOVTextureDataMeta; + public static Action SetFOVTextureData; + public static Action> SetFOVVisibility; + + private void Start_FOV() + { + manager.Socket.On>("CreateFOV", x => CreateFOV.Invoke(x)); + manager.Socket.On>("DeleteFOV", x => DeleteFOV.Invoke(x)); + manager.Socket.On>>>("SetFOVPos", x => SetFOVPos.Invoke(x)); + manager.Socket.On>("SetFOVOffset", x => SetFOVOffset.Invoke(x)); + manager.Socket.On>("SetFOVTextureDataMetaInit", x => SetFOVTextureDataMetaInit.Invoke(x)); + manager.Socket.On>("SetFOVTextureDataMeta", x => SetFOVTextureDataMeta.Invoke(x)); + manager.Socket.On("SetFOVTextureData", x => SetFOVTextureData.Invoke(x)); + manager.Socket.On>("SetFOVVisibility", x => SetFOVVisibility.Invoke(x)); } + + #endregion + #region Clear + public static Action ClearProbes; + public static Action ClearAreas; + public static Action ClearVolumes; + public static Action ClearText; + public static Action ClearParticles; + public static Action ClearMeshes; + public static List ClearAll = new List { ClearProbes, ClearAreas, ClearVolumes, + ClearText, ClearParticles, ClearMeshes }; + private void Clear(string val) { switch (val) { case "all": - _probeManager.ClearProbes(); - _areaManager.ClearAreas(); - _volumeManager.Clear(); - _textManager.Clear(); - _particleManager.Clear(); + foreach (var action in ClearAll) + action.Invoke(); break; - case "probes": - _probeManager.ClearProbes(); + case "probe": + ClearProbes.Invoke(); break; - case "areas": - _areaManager.ClearAreas(); + case "area": + ClearAreas.Invoke(); break; - case "volumes": - _volumeManager.Clear(); + case "volume": + ClearVolumes.Invoke(); break; - case "texts": - _textManager.Clear(); + case "text": + ClearText.Invoke(); break; - case "primitives": - _primitiveMeshManager.Clear(); + case "particle": + ClearParticles.Invoke(); break; - case "particles": - _particleManager.Clear(); + case "mesh": + ClearMeshes.Invoke(); break; } } @@ -221,7 +310,7 @@ private void Clear(string val) //// SOCKET FUNCTIONS //// - public static void Emit(string header, object data) + public static void Emit(string header, string data) { manager.Socket.Emit(header, data); } @@ -229,8 +318,6 @@ public static void Emit(string header, object data) public void UpdateID(string newID) { ID = newID; - PlayerPrefs.SetString(ID_SAVE_KEY, ID); - manager.Socket.Emit("ID", new List() { ID, "receive" }); Debug.Log($"ID updated to {ID}"); } @@ -242,9 +329,20 @@ private void OnDestroy() private void Connected() { - if (PlayerPrefs.HasKey(ID_SAVE_KEY)) - ID = PlayerPrefs.GetString(ID_SAVE_KEY); - UpdateID(ID); + // If we are building to WebGL or to Standalone, switch how you acquire the user's ID + string queryID; + bool webGLID = Utils.Utils.ParseQueryForID(out queryID); + + if (webGLID) + { + UpdateID(queryID); + Debug.Log("Found ID in Query string, setting to: " + ID); + } + else if (PlayerPrefs.HasKey(ID_SAVE_KEY)) + { + UpdateID(PlayerPrefs.GetString(ID_SAVE_KEY)); + Debug.Log("Found ID in PlayerPrefs, setting to: " + ID); + } } public static void Log(string msg) diff --git a/UnityClient/Packages/vbl.urchin/Scripts/API/urchin.api.asmdef b/UnityClient/Packages/vbl.urchin/Scripts/API/urchin.api.asmdef index c737d6d0..d1ea9725 100644 --- a/UnityClient/Packages/vbl.urchin/Scripts/API/urchin.api.asmdef +++ b/UnityClient/Packages/vbl.urchin/Scripts/API/urchin.api.asmdef @@ -3,7 +3,8 @@ "rootNamespace": "", "references": [ "GUID:9069ac25d95ca17448a247f3bb1c769f", - "GUID:91360e4fc352e484eb74c8004f903d9c" + "GUID:5dedf88781c06a443aeac3e770ba73f9", + "GUID:2a17cf7e212916c498a6b6adfced9bcf" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Behaviors/CameraBehavior.cs b/UnityClient/Packages/vbl.urchin/Scripts/Behaviors/CameraBehavior.cs index f030f6c0..8e333e85 100644 --- a/UnityClient/Packages/vbl.urchin/Scripts/Behaviors/CameraBehavior.cs +++ b/UnityClient/Packages/vbl.urchin/Scripts/Behaviors/CameraBehavior.cs @@ -1,13 +1,13 @@ using System; using System.Collections; using System.Collections.Generic; -using UnityEditor.PackageManager; using UnityEngine; -using Urchin.Cameras; using BrainAtlas; +using Urchin.API; namespace Urchin.Behaviors { + public class CameraBehavior : MonoBehaviour { #region Serialized @@ -53,9 +53,6 @@ public Camera ActiveCamera } } } - #region private var - private const int SOCKET_IO_MAX_CHUNK_BYTES = 1000000; - #endregion private void Update() { @@ -69,9 +66,9 @@ public void SetCameraControl(bool controllable) _cameraControl.UserControllable = controllable; } - public void SetCameraRotation(List obj) + public void SetCameraRotation(Vector3 yawPitchRoll) { - _cameraControl.SetBrainAxisAngles(new Vector3(obj[1], obj[0], obj[2])); + _cameraControl.SetBrainAxisAngles(yawPitchRoll); } public void SetCameraZoom(float obj) @@ -101,6 +98,21 @@ public void SetCameraMode(bool orthographic) } } + public void SetBackgroundWhite(bool backgroundWhite) + { + SetBackgroundColor(backgroundWhite ? Color.white : Color.black); + } + + public void SetBackgroundColor(string hexColor) + { + SetBackgroundColor(Utils.Utils.Hex2Color(hexColor)); + } + + public void SetBackgroundColor(Color newColor) + { + ActiveCamera.backgroundColor = newColor; + } + /// /// Take a screenshot and send it back via the ReceiveCameraImgMeta and ReceiveCameraImg messages /// @@ -116,8 +128,6 @@ public void Screenshot(int[] size) /// private IEnumerator ScreenshotHelper(int[] size) { - Debug.Log($"{size[0]},{size[1]}"); - RenderTexture originalTexture = ActiveCamera.targetTexture; RenderTexture captureTexture = new RenderTexture(size[0], size[1], 24); @@ -143,21 +153,19 @@ private IEnumerator ScreenshotHelper(int[] size) ScreenshotReturnMeta meta = new(); meta.name = Name; meta.totalBytes = bytes.Length; - throw new NotImplementedException(); - //Client_SocketIO.Emit("ReceiveCameraImgMeta", JsonUtility.ToJson(meta)); + Client_SocketIO.Emit("CameraImgMeta", JsonUtility.ToJson(meta)); - int nChunks = Mathf.CeilToInt((float)bytes.Length / (float)SOCKET_IO_MAX_CHUNK_BYTES); + int nChunks = Mathf.CeilToInt((float)bytes.Length / (float)Client_SocketIO.SOCKET_IO_MAX_CHUNK_BYTES); for (int i = 0; i < nChunks; i++) { ScreenshotChunk chunk = new(); chunk.name = Name; - int cChunkSize = Mathf.Min(SOCKET_IO_MAX_CHUNK_BYTES, bytes.Length - i * SOCKET_IO_MAX_CHUNK_BYTES); + int cChunkSize = Mathf.Min(Client_SocketIO.SOCKET_IO_MAX_CHUNK_BYTES, bytes.Length - i * Client_SocketIO.SOCKET_IO_MAX_CHUNK_BYTES); chunk.data = new byte[cChunkSize]; - Buffer.BlockCopy(bytes, i * SOCKET_IO_MAX_CHUNK_BYTES, chunk.data, 0, cChunkSize); - throw new NotImplementedException(); - //Client.Emit("ReceiveCameraImg", JsonUtility.ToJson(chunk)); + Buffer.BlockCopy(bytes, i * Client_SocketIO.SOCKET_IO_MAX_CHUNK_BYTES, chunk.data, 0, cChunkSize); + Client_SocketIO.Emit("CameraImg", JsonUtility.ToJson(chunk)); } } @@ -168,60 +176,33 @@ private struct ScreenshotReturnMeta public int totalBytes; } - [Serializable] - private struct ScreenshotChunk + [Serializable, PreferBinarySerialization] + private class ScreenshotChunk { public string name; public byte[] data; } - public void SetCameraPosition(List obj) - { - // position in ml/ap/dv relative to ccf 0,0,0 - throw new NotImplementedException(); - //Client.LogError("Setting camera position not implemented yet. Use set_camera_target and set_camera_rotation instead."); - //Vector3 ccfPosition25 = new Vector3(obj[0]/25, obj[1]/25, obj[2]/25); - //cameraControl.SetOffsetPosition(Utils.apdvlr2World(ccfPosition25)); - } - - public void SetCameraYAngle(float obj) + public void SetCameraYAngle(float yaw) { - throw new NotImplementedException(); - //_cameraControl.SetSpin(obj); + Vector3 angles = _cameraControl.PitchYawRoll; + angles.y += yaw; + _cameraControl.SetBrainAxisAngles(angles); } - public void SetCameraTargetArea(string obj) - { - throw new NotImplementedException(); - //(int ID, bool full, bool leftSide, bool rightSide) = AreaManager.GetID(obj); - //CCFTreeNode node = ModelControl.tree.findNode(ID); - //if (node != null) - //{ - // Vector3 center; - // if (full) - // center = node.GetMeshCenterFull(); - // else - // center = node.GetMeshCenterSided(leftSide); - // _cameraControl.SetCameraTarget(center); - //} - //else - // Debug.Log("Failed to find node to set camera target: " + obj); - } - - public void SetCameraTarget(List apmldv) + public void SetCameraTarget(Vector3 coordAtlas) { // data comes in in um units in ml/ap/dv // note that (0,0,0) in world is the center of the brain // so offset by (-6.6 ap, -4 dv, -5.7 lr) to get to the corner // in world space, x = ML, y = DV, z = AP - Vector3 coordAtlas = new Vector3(apmldv[0], apmldv[1], apmldv[2]); _cameraControl.SetCameraTarget(BrainAtlasManager.ActiveReferenceAtlas.Atlas2World(coordAtlas)); } public void SetCameraPan(List panXY) { throw new NotImplementedException(); - //_cameraControl.SetCameraPan(new Vector2(panXY[0], panXY[1])); + //_cameraControl.SetP(new Vector2(panXY[0], panXY[1])); } #endregion } diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Behaviors/ProbeBehavior.cs b/UnityClient/Packages/vbl.urchin/Scripts/Behaviors/ProbeBehavior.cs new file mode 100644 index 00000000..26acfcfe --- /dev/null +++ b/UnityClient/Packages/vbl.urchin/Scripts/Behaviors/ProbeBehavior.cs @@ -0,0 +1,52 @@ +using UnityEngine; + +public class ProbeBehavior : MonoBehaviour +{ + [SerializeField] private GameObject _probeModelGO; + [SerializeField] private bool _sizeSettable; + + public void SetPosition(Vector3 tipWorldU) + { + transform.localPosition = tipWorldU; + } + + public void SetAngles(Vector3 angles) + { + transform.rotation = Quaternion.identity; + // rotate around azimuth first + transform.RotateAround(transform.position, Vector3.up, angles.x); + // then elevation + transform.RotateAround(transform.position, transform.right, angles.y); + // then spin + transform.RotateAround(transform.position, transform.forward, angles.z); + } + + public void SetStyle(string style) + { + //todo + } + + public void SetColor(Color color) + { + _probeModelGO.GetComponent().material.color = color; + } + + public void SetScale(Vector3 scale) + { + _probeModelGO.transform.localScale = scale; + } + + public bool SetSize(Vector3 size) + { + if (_sizeSettable) + { + _probeModelGO.transform.localScale = size; + + _probeModelGO.transform.localPosition = new Vector3(0f, 0f, -size.y / 2); + + return true; + } + else + return false; + } +} diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Behaviors/ProbeBehavior.cs.meta b/UnityClient/Packages/vbl.urchin/Scripts/Behaviors/ProbeBehavior.cs.meta new file mode 100644 index 00000000..2eb5008f --- /dev/null +++ b/UnityClient/Packages/vbl.urchin/Scripts/Behaviors/ProbeBehavior.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 928cb0d96ba8d0f4fad7d2a9b71000cc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Behaviors/VolumeRenderer.cs b/UnityClient/Packages/vbl.urchin/Scripts/Behaviors/VolumeRenderer.cs index d12e2d55..1c2abde5 100644 --- a/UnityClient/Packages/vbl.urchin/Scripts/Behaviors/VolumeRenderer.cs +++ b/UnityClient/Packages/vbl.urchin/Scripts/Behaviors/VolumeRenderer.cs @@ -4,6 +4,7 @@ using System.Threading.Tasks; using TMPro; using UnityEngine; +using Urchin.Utils; public class VolumeRenderer : MonoBehaviour { @@ -99,7 +100,7 @@ public void SetVolumeVisibility(string name, bool visible) GetComponent().enabled = false; } - public async void DisplayAllenVolume(bool visible) + public async void DisplayAnnotationVolume(bool visible) { if (visible) { @@ -122,13 +123,19 @@ public async void DisplayAllenVolume(bool visible) Debug.Log("(UM_VolRend) Volume: allen is now visible: " + visible); } + public async void DisplayReferenceVolume(bool visible) + { + throw new NotImplementedException(); + } + private string nextVol; private int nextSlice; private bool nextApply; public void AddVolumeMeta(string name, int slice, bool immediateApply) { - volumeLoadingUIGO.SetActive(true); + if (volumeLoadingUIGO != null) + volumeLoadingUIGO.SetActive(true); nextVol = name; nextSlice = slice; nextApply = immediateApply; @@ -142,13 +149,15 @@ public void AddVolumeData(byte[] newData) volumeData[nextVol][i + slicePos] = colormaps[nextVol][newData[i]]; // slices count down, so invert that - volumeLoadingUIText.text = (456-nextSlice+1) + "/456"; + if (volumeLoadingUIGO != null) + volumeLoadingUIText.text = (456-nextSlice+1) + "/456"; if (nextApply) { volumeTexture.SetPixels32(volumeData[nextVol]); volumeTexture.Apply(); - volumeLoadingUIGO.SetActive(false); + if (volumeLoadingUIGO != null) + volumeLoadingUIGO.SetActive(false); } } diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Behaviors/urchin.behaviors.asmdef b/UnityClient/Packages/vbl.urchin/Scripts/Behaviors/urchin.behaviors.asmdef index fc094c7e..446c0ec4 100644 --- a/UnityClient/Packages/vbl.urchin/Scripts/Behaviors/urchin.behaviors.asmdef +++ b/UnityClient/Packages/vbl.urchin/Scripts/Behaviors/urchin.behaviors.asmdef @@ -6,7 +6,8 @@ "GUID:6055be8ebefd69e48b49212b09b47b2f", "GUID:5dedf88781c06a443aeac3e770ba73f9", "GUID:baba835d3f6de1948879ba12c4c45295", - "GUID:0e68f56b71507ea46a7a7e86308f8eef" + "GUID:0e68f56b71507ea46a7a7e86308f8eef", + "GUID:ef948df2bf4bfe448ad38f3511278da4" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Cameras/BrainCameraController.cs b/UnityClient/Packages/vbl.urchin/Scripts/Cameras/BrainCameraController.cs index 9c0ddd5c..196f9308 100644 --- a/UnityClient/Packages/vbl.urchin/Scripts/Cameras/BrainCameraController.cs +++ b/UnityClient/Packages/vbl.urchin/Scripts/Cameras/BrainCameraController.cs @@ -34,6 +34,7 @@ public class BrainCameraController : MonoBehaviour private float lastLeftClick; private float lastRightClick; + // auto-rotation private bool autoRotate; private float autoRotateSpeed = 10.0f; @@ -46,6 +47,7 @@ public class BrainCameraController : MonoBehaviour // Speed and rotation controls #region Rotation + private Quaternion _initialRotation; public float rotSpeed = 200.0f; private Vector3 _pitchYawRoll; @@ -65,6 +67,7 @@ private void Awake() Application.targetFrameRate = 144; #endif + _initialRotation = transform.rotation; autoRotate = false; lastLeftClick = Time.realtimeSinceStartup; @@ -77,18 +80,6 @@ void Update() if (!UserControllable) return; - // Check the scroll wheel and deal with the field of view - if (!EventSystem.current.IsPointerOverGameObject()) - { - float fov = GetZoom(); - - float scroll = -Input.GetAxis("Mouse ScrollWheel"); - fov += (_mainCamera.orthographic ? orthoDelta : fovDelta) * scroll; - fov = Mathf.Clamp(fov, minFoV, maxFoV); - - SetZoom(fov); - } - // Now check if the mouse wheel is being held down if (Input.GetMouseButton(1) && !BlockBrainControl && !EventSystem.current.IsPointerOverGameObject()) { @@ -107,6 +98,18 @@ void Update() thisFrameDown = true; } + // Check the scroll wheel and deal with the field of view + if (!EventSystem.current.IsPointerOverGameObject() && !thisFrameDown) + { + float fov = GetZoom(); + + float scroll = -Input.GetAxis("Mouse ScrollWheel"); + fov += (_mainCamera.orthographic ? orthoDelta : fovDelta) * scroll; + fov = Mathf.Clamp(fov, minFoV, maxFoV); + + SetZoom(fov); + } + if (autoRotate) { _pitchYawRoll += Vector3.up * autoRotateSpeed * Time.deltaTime; @@ -167,7 +170,7 @@ void BrainCameraControl_noTarget() // If the mouse is down, even if we are far way now we should drag the brain if (mouseButtonDown == 0) { - float roll = -Input.GetAxis("Mouse X") * rotSpeed * Time.deltaTime; + float roll = Input.GetAxis("Mouse X") * rotSpeed * Time.deltaTime; float pitch = Input.GetAxis("Mouse Y") * rotSpeed * Time.deltaTime; if (roll != 0 || pitch != 0) @@ -179,12 +182,12 @@ void BrainCameraControl_noTarget() // if space is down, we can apply yaw instead of roll if (Input.GetKey(KeyCode.Space)) { - _pitchYawRoll.y = Mathf.Clamp(_pitchYawRoll.y + roll, minXRotation, maxXRotation); + _pitchYawRoll.z = Mathf.Clamp(_pitchYawRoll.z + roll, minXRotation, maxXRotation); } else { _pitchYawRoll.x = Mathf.Clamp(_pitchYawRoll.x - pitch, minXRotation, maxXRotation); - _pitchYawRoll.z = Mathf.Clamp(_pitchYawRoll.z - roll, minZRotation, maxZRotation); + _pitchYawRoll.y = Mathf.Clamp(_pitchYawRoll.y + roll, minZRotation, maxZRotation); } ApplyBrainCameraPositionAndRotation(); } @@ -194,7 +197,7 @@ void BrainCameraControl_noTarget() void ApplyBrainCameraPositionAndRotation() { - _mainCameraRotator.transform.rotation = Quaternion.Euler(_pitchYawRoll); + _mainCameraRotator.transform.localRotation = _initialRotation * Quaternion.Euler(_pitchYawRoll); RotationChangedEvent.Invoke(_pitchYawRoll); } diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Cameras/CameraMiniController.cs b/UnityClient/Packages/vbl.urchin/Scripts/Cameras/CameraMiniController.cs index bab72a93..282f254f 100644 --- a/UnityClient/Packages/vbl.urchin/Scripts/Cameras/CameraMiniController.cs +++ b/UnityClient/Packages/vbl.urchin/Scripts/Cameras/CameraMiniController.cs @@ -6,9 +6,16 @@ namespace Urchin.Cameras { public class CameraMiniController : MonoBehaviour { + Quaternion _initialRotation; + + private void Awake() + { + _initialRotation = transform.localRotation; + } + public void UpdateRotation(Vector3 pitchYawRoll) { - transform.localRotation = Quaternion.Euler(new Vector3(-pitchYawRoll.x, -pitchYawRoll.z, pitchYawRoll.y)); + transform.localRotation = _initialRotation * Quaternion.Euler(pitchYawRoll); } } } \ No newline at end of file diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Cameras/CameraMiniControllerHandle.cs b/UnityClient/Packages/vbl.urchin/Scripts/Cameras/CameraMiniControllerHandle.cs index dfb22c4a..1b8bd98c 100644 --- a/UnityClient/Packages/vbl.urchin/Scripts/Cameras/CameraMiniControllerHandle.cs +++ b/UnityClient/Packages/vbl.urchin/Scripts/Cameras/CameraMiniControllerHandle.cs @@ -10,15 +10,12 @@ public class CameraMiniControllerHandle : MonoBehaviour [SerializeField] Vector3 eulerAngles; private float lastClick = 0f; - private void OnMouseOver() + public void Click() { - if (Input.GetMouseButtonDown(0)) - { - if ((Time.realtimeSinceStartup - lastClick) < BrainCameraController.doubleClickTime) - cameraController.SetBrainAxisAngles(eulerAngles); - else - lastClick = Time.realtimeSinceStartup; - } + if ((Time.realtimeSinceStartup - lastClick) < BrainCameraController.doubleClickTime) + cameraController.SetBrainAxisAngles(eulerAngles); + else + lastClick = Time.realtimeSinceStartup; } } } \ No newline at end of file diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Cameras/UIControlClickDetector.cs b/UnityClient/Packages/vbl.urchin/Scripts/Cameras/UIControlClickDetector.cs new file mode 100644 index 00000000..dbab0126 --- /dev/null +++ b/UnityClient/Packages/vbl.urchin/Scripts/Cameras/UIControlClickDetector.cs @@ -0,0 +1,39 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using Urchin.Cameras; + +namespace BrainAtlas.Cameras +{ + public class UIControlClickDetector : MonoBehaviour + { + public Camera renderTextureCamera; + public LayerMask layerMask; + private RectTransform rawImageRectTransform; + + void Start() + { + rawImageRectTransform = GetComponent(); + } + + void Update() + { + if (Input.GetMouseButtonDown(0)) + { + Vector2 localMousePosition; + if (RectTransformUtility.ScreenPointToLocalPointInRectangle(rawImageRectTransform, Input.mousePosition, Camera.main, out localMousePosition)) + { + Vector2 normalizedPosition = Rect.PointToNormalized(rawImageRectTransform.rect, localMousePosition); + Ray ray = renderTextureCamera.ViewportPointToRay(new Vector3(normalizedPosition.x, normalizedPosition.y, 0)); + RaycastHit hit; + if (Physics.Raycast(ray, out hit, Mathf.Infinity, layerMask)) + { + CameraMiniControllerHandle handle; + if (hit.collider.gameObject.TryGetComponent(out handle)) + handle.Click(); + } + } + } + } + } +} \ No newline at end of file diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Cameras/UIControlClickDetector.cs.meta b/UnityClient/Packages/vbl.urchin/Scripts/Cameras/UIControlClickDetector.cs.meta new file mode 100644 index 00000000..cc9c5be8 --- /dev/null +++ b/UnityClient/Packages/vbl.urchin/Scripts/Cameras/UIControlClickDetector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9ddabafefcfa6e94596214fc26e30cc4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityClient/Packages/vbl.urchin/Scripts/JSON/AreaData.cs b/UnityClient/Packages/vbl.urchin/Scripts/JSON/AreaData.cs new file mode 100644 index 00000000..79ee7224 --- /dev/null +++ b/UnityClient/Packages/vbl.urchin/Scripts/JSON/AreaData.cs @@ -0,0 +1,9 @@ +using System; + +[Serializable] +public struct AreaData +{ + public string[] acronym; + public bool[] visible; + public int[] side; +} diff --git a/UnityClient/Packages/vbl.urchin/Scripts/JSON/AreaData.cs.meta b/UnityClient/Packages/vbl.urchin/Scripts/JSON/AreaData.cs.meta new file mode 100644 index 00000000..cee5767d --- /dev/null +++ b/UnityClient/Packages/vbl.urchin/Scripts/JSON/AreaData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 09aa6c9867a483343a4d92ffe2a2e942 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityClient/Packages/vbl.urchin/Scripts/JSON/ParticleGroup.cs b/UnityClient/Packages/vbl.urchin/Scripts/JSON/ParticleGroup.cs new file mode 100644 index 00000000..1c6a77a4 --- /dev/null +++ b/UnityClient/Packages/vbl.urchin/Scripts/JSON/ParticleGroup.cs @@ -0,0 +1,19 @@ + +namespace Urchin.JSON +{ + public struct ParticleGroup + { + // position + public float[] x; + public float[] y; + public float[] z; + + // color + public float[] r; + public float[] g; + public float[] b; + + public float size; + } + +} \ No newline at end of file diff --git a/UnityClient/Packages/vbl.urchin/Scripts/JSON/ParticleGroup.cs.meta b/UnityClient/Packages/vbl.urchin/Scripts/JSON/ParticleGroup.cs.meta new file mode 100644 index 00000000..8f89832c --- /dev/null +++ b/UnityClient/Packages/vbl.urchin/Scripts/JSON/ParticleGroup.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cbbfa89245f296f40bc48258303668fa +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Managers/AtlasManager.cs b/UnityClient/Packages/vbl.urchin/Scripts/Managers/AtlasManager.cs index ca957d94..4cbf43d6 100644 --- a/UnityClient/Packages/vbl.urchin/Scripts/Managers/AtlasManager.cs +++ b/UnityClient/Packages/vbl.urchin/Scripts/Managers/AtlasManager.cs @@ -5,14 +5,12 @@ using UnityEngine.Events; using Urchin.Utils; using System.Threading.Tasks; +using Urchin.API; namespace Urchin.Managers { public class AtlasManager : MonoBehaviour { - #region Serialized fields - [SerializeField] BrainAtlasManager _brainAtlasManager; - #endregion #region static public static HashSet VisibleNodes { get; private set; } @@ -52,6 +50,19 @@ private void Awake() private void Start() { _localColormap = Colormaps.MainColormap; + + Client_SocketIO.ClearAreas += ClearAreas; + + Client_SocketIO.LoadAtlas += LoadAtlas; + Client_SocketIO.SetAreaVisibility += SetAreaVisibility; + Client_SocketIO.SetAreaColors += SetAreaColors; + Client_SocketIO.SetAreaIntensity += SetAreaIntensity; + Client_SocketIO.SetAreaColormap += SetAreaColormap; + Client_SocketIO.SetAreaMaterial += SetAreaMaterial; + Client_SocketIO.SetAreaAlpha += SetAreaAlpha; + Client_SocketIO.SetAreaData += SetAreaData; + Client_SocketIO.SetAreaIndex += SetAreaIndex; + Client_SocketIO.LoadDefaultAreas += LoadDefaultAreasVoid; } #endregion @@ -62,35 +73,43 @@ public void LoadAtlas(string atlasName) switch (atlasName) { case "ccf25": - BrainAtlasManager.LoadAtlas(BrainAtlasManager.AtlasNames[0]); + BrainAtlasManager.LoadAtlas("allen_mouse_25um"); break; +#if !UNITY_WEBGL case "waxholm39": - BrainAtlasManager.LoadAtlas(BrainAtlasManager.AtlasNames[1]); + BrainAtlasManager.LoadAtlas("whs_sd_rat_39um"); + break; +#endif + case "waxholm78": + BrainAtlasManager.LoadAtlas("whs_sd_rat_78um"); + break; + default: + Client_SocketIO.LogError($"Atlas {atlasName} does not exist, or is not available on this platform."); break; } } - public void SetAreaVisibility(Dictionary areaVisibility) + public void SetAreaVisibility(AreaData data) { - foreach (KeyValuePair kvp in areaVisibility) + for (int i = 0; i < data.acronym.Length; i++) { - (int ID, bool full, bool leftSide, bool rightSide) = GetID(kvp.Key); - OntologyNode node = BrainAtlasManager.ActiveReferenceAtlas.Ontology.ID2Node(ID); + int areaID = BrainAtlasManager.ActiveReferenceAtlas.Ontology.Acronym2ID(data.acronym[i]); + + OntologyNode node = BrainAtlasManager.ActiveReferenceAtlas.Ontology.ID2Node(areaID); + OntologyNode.OntologyNodeSide side = (OntologyNode.OntologyNodeSide)data.side[i]; if (node == null) return; - //if (_missing.Contains(node.ID)) - //{ - // Client.LogWarning("The mesh file for area " + node.ID + " does not exist, we can't load it"); - // continue; - //} - bool set = false; + bool full = side == OntologyNode.OntologyNodeSide.Full; + bool leftSide = side == OntologyNode.OntologyNodeSide.Left; + bool rightSide = side == OntologyNode.OntologyNodeSide.Right; + if (full && node.FullLoaded.IsCompleted) { - node.SetVisibility(kvp.Value, OntologyNode.OntologyNodeSide.Full); + node.SetVisibility(data.visible[i], OntologyNode.OntologyNodeSide.Full); VisibleNodes.Add(node); set = true; #if UNITY_EDITOR @@ -99,7 +118,7 @@ public void SetAreaVisibility(Dictionary areaVisibility) } if (leftSide && node.SideLoaded.IsCompleted) { - node.SetVisibility(kvp.Value, OntologyNode.OntologyNodeSide.Left); + node.SetVisibility(data.visible[i], OntologyNode.OntologyNodeSide.Left); VisibleNodes.Add(node); set = true; #if UNITY_EDITOR @@ -108,7 +127,7 @@ public void SetAreaVisibility(Dictionary areaVisibility) } if (rightSide && node.SideLoaded.IsCompleted) { - node.SetVisibility(kvp.Value, OntologyNode.OntologyNodeSide.Right); + node.SetVisibility(data.visible[i], OntologyNode.OntologyNodeSide.Right); VisibleNodes.Add(node); set = true; #if UNITY_EDITOR @@ -119,11 +138,11 @@ public void SetAreaVisibility(Dictionary areaVisibility) if (set) NodeVisibleEvent.Invoke(node); else - LoadIndividualArea(node, full, leftSide, rightSide, kvp.Value); + LoadIndividualArea(node, full, leftSide, rightSide, data.visible[i]); } } - public async void SetAreaColor(Dictionary areaColor) + public async void SetAreaColors(Dictionary areaColor) { foreach (KeyValuePair kvp in areaColor) { @@ -228,17 +247,18 @@ public void SetAreaData(Dictionary> areaData) } } - public void SetAreaDataIndex(int areaDataIdx) + public void SetAreaIndex(int areaDataIdx) { _areaDataIndex = areaDataIdx; UpdateAreaDataIntensity(); } // Area intensity colormaps - public async void SetAreaColorIntensity(Dictionary areaIntensity) + public void SetAreaIntensity(Dictionary areaIntensity) { foreach (KeyValuePair kvp in areaIntensity) { + Debug.Log((kvp.Key, kvp.Value)); (int ID, bool full, bool leftSide, bool rightSide) = GetID(kvp.Key); OntologyNode node = BrainAtlasManager.ActiveReferenceAtlas.Ontology.ID2Node(ID); @@ -261,6 +281,7 @@ public async void SetAreaColorIntensity(Dictionary areaIntensity) else Debug.Log("Failed to set " + kvp.Key + " to " + kvp.Value); } + UpdateAreaColorFromColormap(); } public void UpdateAreaColorFromColormap() @@ -272,20 +293,43 @@ public void UpdateAreaColorFromColormap() if (node.FullLoaded.IsCompleted && kvp.Value.full >= 0) node.SetColor(_localColormap.Value(kvp.Value.full), OntologyNode.OntologyNodeSide.Full); if (node.SideLoaded.IsCompleted && kvp.Value.left >= 0) - node.SetColor(_localColormap.Value(kvp.Value.full), OntologyNode.OntologyNodeSide.Left); + node.SetColor(_localColormap.Value(kvp.Value.left), OntologyNode.OntologyNodeSide.Left); if (node.SideLoaded.IsCompleted && kvp.Value.right >= 0) - node.SetColor(_localColormap.Value(kvp.Value.full), OntologyNode.OntologyNodeSide.Right); + node.SetColor(_localColormap.Value(kvp.Value.right), OntologyNode.OntologyNodeSide.Right); } } // Auto-loaders - public async void LoadDefaultAreas(string defaultName) + public async void LoadDefaultAreasVoid() + { + int[] defaultAreaIDs = BrainAtlasManager.ActiveReferenceAtlas.DefaultAreas; + + foreach (int areaID in defaultAreaIDs) + { + OntologyNode node = BrainAtlasManager.ActiveReferenceAtlas.Ontology.ID2Node(areaID); + + // Load all models + _ = node.LoadMesh(OntologyNode.OntologyNodeSide.All); + + await Task.WhenAll(new Task[] { node.FullLoaded, node.SideLoaded }); + + node.SetVisibility(false, OntologyNode.OntologyNodeSide.Full); + node.SetVisibility(true, OntologyNode.OntologyNodeSide.Left); + node.SetVisibility(true, OntologyNode.OntologyNodeSide.Right); + + VisibleNodes.Add(node); + } + } + + public async Task> LoadDefaultAreas(string defaultName) { + List nodes = new(); int[] defaultAreaIDs = BrainAtlasManager.ActiveReferenceAtlas.DefaultAreas; foreach (int areaID in defaultAreaIDs) { OntologyNode node = BrainAtlasManager.ActiveReferenceAtlas.Ontology.ID2Node(areaID); + nodes.Add(node); // Load all models _ = node.LoadMesh(OntologyNode.OntologyNodeSide.All); @@ -295,7 +339,11 @@ public async void LoadDefaultAreas(string defaultName) node.SetVisibility(false, OntologyNode.OntologyNodeSide.Full); node.SetVisibility(true, OntologyNode.OntologyNodeSide.Left); node.SetVisibility(true, OntologyNode.OntologyNodeSide.Right); + + VisibleNodes.Add(node); } + + return nodes; } #endregion @@ -314,7 +362,7 @@ public void ClearAreas() /// /// An ID number (e.g. 0) or an acronym (e.g. "root") /// (int Allen CCF ID, bool left side model, bool right side model) - public (int ID, bool full, bool leftSide, bool rightSide) GetID(string idOrAcronym) + public static (int ID, bool full, bool leftSide, bool rightSide) GetID(string idOrAcronym) { // Check whether a suffix was included int leftIndex = idOrAcronym.IndexOf("-lh"); @@ -336,8 +384,6 @@ public void ClearAreas() if (lower.Equals("void")) return (-1, full, leftSide, rightSide); - // Figure out what the acronym was by asking CCFModelControl - Debug.Log(idOrAcronym); try { int ID = BrainAtlasManager.ActiveReferenceAtlas.Ontology.Acronym2ID(idOrAcronym); @@ -368,14 +414,13 @@ private async void LoadIndividualArea(OntologyNode node, bool full, bool leftSid await node.LoadMesh(OntologyNode.OntologyNodeSide.All); - if (full) - node.SetVisibility(visibility, OntologyNode.OntologyNodeSide.Full); + node.SetVisibility(full && visibility, OntologyNode.OntologyNodeSide.Full); await node.SideLoaded; - if (leftSide) - node.SetVisibility(visibility, OntologyNode.OntologyNodeSide.Left); - if (rightSide) - node.SetVisibility(visibility, OntologyNode.OntologyNodeSide.Right); + node.SetVisibility(leftSide && visibility, OntologyNode.OntologyNodeSide.Left); + node.SetVisibility(rightSide && visibility, OntologyNode.OntologyNodeSide.Right); + + node.ResetColor(); NodeVisibleEvent.Invoke(node); } diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Managers/CameraManager.cs b/UnityClient/Packages/vbl.urchin/Scripts/Managers/CameraManager.cs index 27f86c79..6320a42d 100644 --- a/UnityClient/Packages/vbl.urchin/Scripts/Managers/CameraManager.cs +++ b/UnityClient/Packages/vbl.urchin/Scripts/Managers/CameraManager.cs @@ -1,9 +1,8 @@ +using BrainAtlas; using System; -using System.Collections; using System.Collections.Generic; -using System.Linq; -using UnityEditor.PackageManager; using UnityEngine; +using Urchin.API; using Urchin.Behaviors; using Urchin.Cameras; @@ -43,6 +42,23 @@ private void Awake() mainCamera.Name = "CameraMain"; } + private void Start() + { + + Client_SocketIO.SetCameraTarget += SetCameraTarget; + Client_SocketIO.SetCameraRotation += SetCameraRotation; + Client_SocketIO.SetCameraTargetArea += SetCameraTargetArea; + Client_SocketIO.SetCameraZoom += SetCameraZoom; + Client_SocketIO.SetCameraPan += SetCameraPan; + Client_SocketIO.SetCameraMode += SetCameraMode; + Client_SocketIO.SetCameraColor += SetCameraColor; + Client_SocketIO.SetCameraControl += SetCameraControl; + Client_SocketIO.RequestScreenshot += RequestScreenshot; + Client_SocketIO.SetCameraYAngle += SetCameraYAngle; + Client_SocketIO.CreateCamera += CreateCamera; + Client_SocketIO.DeleteCamera += DeleteCamera; + } + #endregion @@ -50,12 +66,13 @@ private void Awake() public void CreateCamera(List cameraNames) { + //instantiating game object w camera component foreach (string cameraName in cameraNames) { - if (_cameras.Keys.Contains(cameraName)) + if (_cameras.ContainsKey(cameraName)) { - //Client.LogWarning($"Camera {cameraName} was created twice. The camera will not be re-created"); + Debug.LogWarning($"Camera {cameraName} was created twice. The camera will not be re-created"); continue; } @@ -66,13 +83,8 @@ public void CreateCamera(List cameraNames) tempObject.name = $"camera_{cameraName}"; CameraBehavior cameraBehavior = tempObject.GetComponent(); cameraBehavior.RenderTexture = textures.Pop(); - //cameraBehavior.AreaManager = _areaManager; - throw new NotImplementedException(); - //cameraBehavior.ModelControl = _modelControl; cameraBehavior.Name = cameraName; - // Get all Camera components attached to children of the script's GameObject (since there are multiple) _cameras.Add(cameraName, cameraBehavior); - } UpdateVisibleUI(); @@ -102,7 +114,8 @@ public void SetCameraRotation(Dictionary> cameraRotation) { if (_cameras.ContainsKey(kvp.Key)) { - _cameras[kvp.Key].SetCameraRotation(kvp.Value); + Vector3 yawPitchRoll = new Vector3(kvp.Value[0], kvp.Value[1], kvp.Value[2]); + _cameras[kvp.Key].SetCameraRotation(yawPitchRoll); } } } @@ -134,24 +147,24 @@ public void SetCameraMode(Dictionary cameraMode) } } - public void Screenshot(string data) - { - ScreenshotData screenshotData = JsonUtility.FromJson(data); - - _cameras[screenshotData.name].Screenshot(screenshotData.size); - } - - public void SetCameraPosition(Dictionary> cameraPosition) + public void SetCameraColor(Dictionary cameraColor) { - foreach (var kvp in cameraPosition) + foreach (var kvp in cameraColor) { if (_cameras.ContainsKey(kvp.Key)) - { - _cameras[kvp.Key].SetCameraPosition(kvp.Value); - } + _cameras[kvp.Key].SetBackgroundColor(kvp.Value); + else + Client_SocketIO.LogError($"(CameraManager) Camera {kvp.Key} does not exist, cannot set background color to {kvp.Value}"); } } + public void RequestScreenshot(string data) + { + ScreenshotData screenshotData = JsonUtility.FromJson(data); + + _cameras[screenshotData.name].Screenshot(screenshotData.size); + } + public void SetCameraYAngle(Dictionary cameraYAngle) { foreach (var kvp in cameraYAngle) @@ -169,7 +182,27 @@ public void SetCameraTargetArea(Dictionary cameraTargetArea) { if (_cameras.ContainsKey(kvp.Key)) { - _cameras[kvp.Key].SetCameraTargetArea(kvp.Value); + // target area needs to be parsed by AtlasManager + var areaData = AtlasManager.GetID(kvp.Value); + + Vector3 coordAtlas = Vector3.zero; + if (areaData.leftSide) + coordAtlas = BrainAtlasManager.ActiveReferenceAtlas.MeshCenters[areaData.ID].left; + else if (areaData.full) + coordAtlas = BrainAtlasManager.ActiveReferenceAtlas.MeshCenters[areaData.ID].full; + else if (areaData.rightSide) + { + coordAtlas = BrainAtlasManager.ActiveReferenceAtlas.MeshCenters[areaData.ID].left; + // invert the ML axis + coordAtlas.y = BrainAtlasManager.ActiveReferenceAtlas.Dimensions.y - coordAtlas.y; + } + + coordAtlas /= 1000f; + + Vector3 coordWorld = BrainAtlasManager.ActiveReferenceAtlas.Atlas2World(coordAtlas); + + Debug.LogWarning("Mesh center needs to target full/left/right correctly!!"); + _cameras[kvp.Key].SetCameraTarget(coordWorld); } } } @@ -180,7 +213,8 @@ public void SetCameraTarget(Dictionary> cameraTargetmlapdv) { if (_cameras.ContainsKey(kvp.Key)) { - _cameras[kvp.Key].SetCameraTarget(kvp.Value); + Vector3 coordAtlas = new Vector3(kvp.Value[0], kvp.Value[1], kvp.Value[2]); + _cameras[kvp.Key].SetCameraTarget(coordAtlas); } } } @@ -200,18 +234,7 @@ public void SetCameraControl(string cameraName) { //set everything to false except for given camera foreach (var kvp in _cameras) - { - if (kvp.Key == cameraName) - { - kvp.Value.SetCameraControl(true); - } - else - { - kvp.Value.SetCameraControl(false); - } - - //kvp.Value.SetCameraControl(kvp.Key == cameraName); - } + kvp.Value.SetCameraControl(kvp.Key == cameraName); } #endregion diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Managers/CustomMeshManager.cs b/UnityClient/Packages/vbl.urchin/Scripts/Managers/CustomMeshManager.cs new file mode 100644 index 00000000..e437d21b --- /dev/null +++ b/UnityClient/Packages/vbl.urchin/Scripts/Managers/CustomMeshManager.cs @@ -0,0 +1,22 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Urchin.Managers +{ + public class CustomMeshManager : MonoBehaviour + { + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } + } + +} \ No newline at end of file diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Managers/CustomMeshManager.cs.meta b/UnityClient/Packages/vbl.urchin/Scripts/Managers/CustomMeshManager.cs.meta new file mode 100644 index 00000000..d2cb2cb0 --- /dev/null +++ b/UnityClient/Packages/vbl.urchin/Scripts/Managers/CustomMeshManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2b9c8ad1b27cf8e45b376eec1d16982c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Managers/FOVManager.cs b/UnityClient/Packages/vbl.urchin/Scripts/Managers/FOVManager.cs index 2b2261a3..d22792b9 100644 --- a/UnityClient/Packages/vbl.urchin/Scripts/Managers/FOVManager.cs +++ b/UnityClient/Packages/vbl.urchin/Scripts/Managers/FOVManager.cs @@ -1,6 +1,7 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; +using Urchin.API; using Urchin.Behaviors; namespace Urchin.Managers @@ -27,6 +28,20 @@ void Awake() { _fovs = new(); } + + private void Start() + { + + Client_SocketIO.CreateFOV += Create; + Client_SocketIO.DeleteFOV += Delete; + Client_SocketIO.SetFOVPos += SetPosition; + // TODO + //Client_SocketIO.SetFOVOffset += SetOffset; + //Client_SocketIO.SetFOVTextureDataMetaInit += SetFOVTextureDataMetaInit; + //Client_SocketIO.SetFOVTextureDataMeta += SetFOVTextureDataMeta; + //Client_SocketIO.SetFOVTextureData += SetFOVTextureData; + //Client_SocketIO.SetFOVVisibility += SetFOVVisibility; + } #endregion #region Public @@ -118,11 +133,5 @@ public void SetPosition(Dictionary>> data) //} #endregion - - #region Public helpers - #endregion - - #region Private helpers - #endregion } } \ No newline at end of file diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Managers/LightManager.cs b/UnityClient/Packages/vbl.urchin/Scripts/Managers/LightManager.cs new file mode 100644 index 00000000..6b02dc65 --- /dev/null +++ b/UnityClient/Packages/vbl.urchin/Scripts/Managers/LightManager.cs @@ -0,0 +1,15 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class LightManager : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + //Client_SocketIO.ResetLightLink += ResetLightLink; + //Client_SocketIO.SetLightLink += SetLightLink; + //Client_SocketIO.SetLightRotation += SetLightRotation; + + } +} diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Managers/LightManager.cs.meta b/UnityClient/Packages/vbl.urchin/Scripts/Managers/LightManager.cs.meta new file mode 100644 index 00000000..f1f4893b --- /dev/null +++ b/UnityClient/Packages/vbl.urchin/Scripts/Managers/LightManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0090832d5edac3e45a8a6f574598c8b6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Managers/LineRendererManager.cs b/UnityClient/Packages/vbl.urchin/Scripts/Managers/LineRendererManager.cs index 3fad8922..c01ae0dd 100644 --- a/UnityClient/Packages/vbl.urchin/Scripts/Managers/LineRendererManager.cs +++ b/UnityClient/Packages/vbl.urchin/Scripts/Managers/LineRendererManager.cs @@ -3,6 +3,7 @@ using UnityEngine; using UnityEngine.Rendering; using UnityEngine.UIElements; +using Urchin.API; namespace Urchin.Managers { @@ -24,24 +25,17 @@ private void Awake() _lineRenderers = new(); } + + private void Start() { - //CreateLine(new List { "l1", "l2" }); - //DeleteLine(new List { "l2" }); - - //Dictionary>> temp = new(); - //List> tempPositions = new(); - //tempPositions.Add(new List() { 0, 0, 0 }); - //tempPositions.Add(new List() { 13200, 11400, 8000 }); - //temp.Add("l1", tempPositions); - - //SetLinePosition(temp); - - - //SetLineColor("l1", Color.blue); + Client_SocketIO.CreateLine += Create; + Client_SocketIO.SetLinePosition += SetPosition; + Client_SocketIO.DeleteLine += Delete; + Client_SocketIO.SetLineColor += SetColors; } - public void CreateLine(List lines) + public void Create(List lines) { //instantiating game object w line renderer component foreach (string line in lines) @@ -56,7 +50,7 @@ public void CreateLine(List lines) } - public void DeleteLine(List lines) + public void Delete(List lines) { //calls destroy (the one specific line) @@ -67,7 +61,7 @@ public void DeleteLine(List lines) } } - public void SetLinePosition(Dictionary>> linePositions) + public void SetPosition(Dictionary>> linePositions) { //set line renderer position Debug.Log("function got called!"); @@ -87,7 +81,7 @@ public void SetLinePosition(Dictionary>> linePositions) tempLine.SetPositions(posvectors); } } - public void SetLineColor(Dictionary lineColors) + public void SetColors(Dictionary lineColors) { foreach (string lineName in lineColors.Keys) { diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Managers/ParticleManager.cs b/UnityClient/Packages/vbl.urchin/Scripts/Managers/ParticleManager.cs index 8dee4441..a10c7539 100644 --- a/UnityClient/Packages/vbl.urchin/Scripts/Managers/ParticleManager.cs +++ b/UnityClient/Packages/vbl.urchin/Scripts/Managers/ParticleManager.cs @@ -1,8 +1,8 @@ //using System; using BrainAtlas; -using System.Collections; using System.Collections.Generic; using UnityEngine; +using Urchin.API; public class ParticleManager : MonoBehaviour { @@ -14,6 +14,17 @@ private void Awake() { _particleMapping = new(); } + + private void Start() + { + Client_SocketIO.CreateParticles += CreateParticles; + Client_SocketIO.ClearParticles += Clear; + Client_SocketIO.SetParticlePosition += SetPosition; + Client_SocketIO.SetParticleSize += SetSize; + //Client_SocketIO.SetParticleShape += SetShape; + Client_SocketIO.SetParticleColor += SetColor; + //Client_SocketIO.SetParticleMaterial += SetMaterial; + } #endregion public void CreateParticles(List particleNames) //instantiates cube as default @@ -21,7 +32,7 @@ private void Awake() foreach (string particleName in particleNames) { if (_particleMapping.ContainsKey(particleName)) - Debug.Log($"MParticleesh id {particleName} already exists."); + Debug.Log($"Particle id {particleName} already exists."); #if UNITY_EDITOR Debug.Log($"Creating particle {particleName}"); @@ -29,7 +40,7 @@ private void Awake() ParticleSystem.EmitParams emitParams = new ParticleSystem.EmitParams(); emitParams.position = Vector3.zero; emitParams.startColor = Color.red; - emitParams.startSize = 0.02f; + emitParams.startSize = 0.1f; _particleSystem.Emit(emitParams, 1); _particleMapping.Add(particleName, _particleSystem.particleCount - 1); @@ -42,25 +53,6 @@ public void Clear() _particleMapping.Clear(); } - public void DeleteParticles(List particleNames) - { - // Deleting particles is a little complicated, since the particle system is data-oriented - // and only holds references to particle by index - // This means that each time we delete a particle we need to update the indexes of all the other particles - // which makes this a very expensive operation to run. Users should be warned not to send individual delete - // messages! - - // TODO - //throw new NotImplementedException(); - //ParticleSystem.Particle[] particles = new ParticleSystem.Particle[_particleSystem.particleCount]; - //int nParticles = _particleSystem.GetParticles(particles); - - //for (int i = 0; i < nParticles; i++) - //{ - // // For each particle, - //} - } - public void SetPosition(Dictionary particlePositions) { ParticleSystem.Particle[] particles = new ParticleSystem.Particle[_particleSystem.particleCount]; @@ -69,7 +61,7 @@ public void SetPosition(Dictionary particlePositions) foreach (var kvp in particlePositions) { Vector3 coordU = new Vector3(kvp.Value[0], kvp.Value[1], kvp.Value[2]); - particles[_particleMapping[kvp.Key]].position = BrainAtlasManager.ActiveReferenceAtlas.Atlas2World(coordU); + particles[_particleMapping[kvp.Key]].position = BrainAtlasManager.ActiveReferenceAtlas.Atlas2World(coordU, false); } _particleSystem.SetParticles(particles); diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Managers/PrimitiveMeshManager.cs b/UnityClient/Packages/vbl.urchin/Scripts/Managers/PrimitiveMeshManager.cs index c4fe0694..f87f735d 100644 --- a/UnityClient/Packages/vbl.urchin/Scripts/Managers/PrimitiveMeshManager.cs +++ b/UnityClient/Packages/vbl.urchin/Scripts/Managers/PrimitiveMeshManager.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using UnityEngine; +using Urchin.API; namespace Urchin.Managers { @@ -29,6 +30,17 @@ private void Awake() } + private void Start() + { + + Client_SocketIO.CreateMesh += CreateMesh; + Client_SocketIO.DeleteMesh += DeleteMesh; + Client_SocketIO.SetPosition += SetPosition; + Client_SocketIO.SetScale += SetScale; + Client_SocketIO.SetColor += SetColor; + Client_SocketIO.SetMaterial += SetMaterial; + } + public void CreateMesh(List meshes) //instantiates cube as default { foreach (string mesh in meshes) diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Managers/ProbeManager.cs b/UnityClient/Packages/vbl.urchin/Scripts/Managers/ProbeManager.cs index fa716dc7..3d814e51 100644 --- a/UnityClient/Packages/vbl.urchin/Scripts/Managers/ProbeManager.cs +++ b/UnityClient/Packages/vbl.urchin/Scripts/Managers/ProbeManager.cs @@ -1,7 +1,7 @@ -using System.Collections; +using BrainAtlas; using System.Collections.Generic; -using UnityEditor.PackageManager; using UnityEngine; +using Urchin.API; namespace Urchin.Managers { @@ -18,8 +18,7 @@ public class ProbeManager : MonoBehaviour private GameObject _defaultPrefab; // Actual objects - private Dictionary _probes; - private Dictionary _probeCoordinates; + private Dictionary _probes; #endregion #region Unity @@ -28,8 +27,7 @@ private void Awake() { // Initialize variables _probeOpts = new Dictionary(); - _probes = new Dictionary(); - _probeCoordinates = new Dictionary(); + _probes = new(); _defaultPrefab = _probePrefabOptions[_probePrefabNames.IndexOf(_defaultProbeStyle)]; @@ -43,6 +41,17 @@ private void Awake() throw new System.Exception("Number of prefab options and names must match"); } + private void Start() + { + Client_SocketIO.CreateProbes += CreateProbes; + Client_SocketIO.DeleteProbes += DeleteProbes; + Client_SocketIO.SetProbeColors += SetColors; + Client_SocketIO.SetProbePos += SetPositions; + Client_SocketIO.SetProbeAngles += SetAngles; + //Client_SocketIO.SetProbeStyle += SetStyles; + Client_SocketIO.SetProbeSize += SetSizes; + } + #endregion #region Public object functions @@ -55,13 +64,16 @@ public void CreateProbes(List probeNames) { GameObject newProbe = Instantiate(_defaultPrefab, _probeParentT); newProbe.name = $"probe_{probeName}"; - _probes.Add(probeName, newProbe); - _probeCoordinates.Add(probeName, new Vector3[2]); - SetProbePositionAndAngles(probeName); + ProbeBehavior probeBehavior = newProbe.GetComponent(); + + probeBehavior.SetPosition(BrainAtlasManager.ActiveReferenceAtlas.Atlas2World(Vector3.zero)); + probeBehavior.SetAngles(Vector3.zero); + + _probes.Add(probeName, probeBehavior); } else { - //Client_SocketIO.LogError(string.Format("Probe {0} already exists in the scene", probeName)); + Client_SocketIO.LogError(string.Format("Probe {0} already exists in the scene", probeName)); } } } @@ -75,7 +87,7 @@ public void DeleteProbes(List probeNames) } } - public void SetProbeColor(Dictionary probeColors) + public void SetColors(Dictionary probeColors) { foreach (KeyValuePair kvp in probeColors) { @@ -83,70 +95,67 @@ public void SetProbeColor(Dictionary probeColors) { Color newColor; if (ColorUtility.TryParseHtmlString(kvp.Value, out newColor)) - { - Debug.Log("Setting " + kvp.Key + " to " + kvp.Value); - _probes[kvp.Key].GetComponentInChildren().material.color = newColor; - } + _probes[kvp.Key].SetColor(newColor); } - //else - //Debug.Log("Probe " + kvp.Key + " not found"); + else + Client_SocketIO.LogError($"Probe {kvp.Key} not found"); } } - public void SetProbePosition(Dictionary> probePositions) + /// + /// Set position, positions should be in mm + /// + /// + public void SetPositions(Dictionary> probePositions) { foreach (KeyValuePair> kvp in probePositions) { if (_probes.ContainsKey(kvp.Key)) { - // store coordinates in mlapdv - _probeCoordinates[kvp.Key][0] = new Vector3(kvp.Value[0], kvp.Value[1], kvp.Value[2]); - SetProbePositionAndAngles(kvp.Key); + Vector3 coordU = new Vector3(kvp.Value[0], kvp.Value[1], kvp.Value[2]); + Vector3 worldU = BrainAtlasManager.ActiveReferenceAtlas.Atlas2World(coordU); + _probes[kvp.Key].SetPosition(worldU); } - //else - //Debug.Log("Probe " + kvp.Key + " not found"); + else + Client_SocketIO.LogError($"Probe {kvp.Key} not found"); } } - public void SetProbeAngle(Dictionary> probeAngles) + public void SetAngles(Dictionary> probeAngles) { foreach (KeyValuePair> kvp in probeAngles) { if (_probes.ContainsKey(kvp.Key)) { - // store coordinates in mlapdv - _probeCoordinates[kvp.Key][1] = new Vector3(kvp.Value[0], kvp.Value[1], kvp.Value[2]); - SetProbePositionAndAngles(kvp.Key); - } - //else - // Debug.Log("Probe " + kvp.Key + " not found"); - } - } - - public void SetProbeStyle(Dictionary probeStyles) - { - foreach (KeyValuePair kvp in probeStyles) - { - if (_probes.ContainsKey(kvp.Key)) - { - Destroy(_probes[kvp.Key]); - _probes[kvp.Key] = Instantiate(_probePrefabOptions[_probePrefabNames.IndexOf(kvp.Value)], _probeParentT); - _probes[kvp.Key].name = $"probe_{kvp.Key}"; - - SetProbePositionAndAngles(kvp.Key); + _probes[kvp.Key].SetAngles(new Vector3(kvp.Value[0], kvp.Value[1], kvp.Value[2])); } + else + Client_SocketIO.LogError($"Probe {kvp.Key} not found"); } } - public void SetProbeScale(Dictionary> probeScales) + //public void SetStyles(Dictionary probeStyles) + //{ + // foreach (KeyValuePair kvp in probeStyles) + // { + // if (_probes.ContainsKey(kvp.Key)) + // { + // Destroy(_probes[kvp.Key]); + // _probes[kvp.Key] = Instantiate(_probePrefabOptions[_probePrefabNames.IndexOf(kvp.Value)], _probeParentT); + // _probes[kvp.Key].name = $"probe_{kvp.Key}"; + + // SetProbePositionAndAngles(kvp.Key); + // } + // } + //} + + public void SetSizes(Dictionary> probeScales) { foreach (KeyValuePair> kvp in probeScales) { if (_probes.ContainsKey(kvp.Key)) { - // store coordinates in mlapdv - _probes[kvp.Key].transform.GetChild(0).localScale = new Vector3(kvp.Value[0], kvp.Value[1], kvp.Value[2]); - _probes[kvp.Key].transform.GetChild(0).localPosition = new Vector3(0f, kvp.Value[1] / 2, 0f); + _probes[kvp.Key].SetSize(new Vector3(kvp.Value[0], kvp.Value[1], kvp.Value[2])); } //else // Debug.Log("Probe " + kvp.Key + " not found"); @@ -156,36 +165,11 @@ public void SetProbeScale(Dictionary> probeScales) public void ClearProbes() { Debug.Log("(Client) Clearing probes"); - foreach (GameObject probe in _probes.Values) - Destroy(probe); - _probes = new Dictionary(); - _probeCoordinates = new Dictionary(); + foreach (var probe in _probes.Values) + Destroy(probe.gameObject); + _probes.Clear(); } #endregion - - #region Private helpers - - private void SetProbePositionAndAngles(string probeName) - { - Vector3 pos = _probeCoordinates[probeName][0]; - Vector3 angles = _probeCoordinates[probeName][1]; - Transform probeT = _probes[probeName].transform; - - // reset position and angles - probeT.transform.localPosition = Vector3.zero; - probeT.localRotation = Quaternion.identity; - - // then translate - probeT.Translate(new Vector3(-pos.x / 1000f, -pos.z / 1000f, pos.y / 1000f)); - // rotate around azimuth first - probeT.RotateAround(probeT.position, Vector3.up, -angles.x - 90f); - // then elevation - probeT.RotateAround(probeT.position, probeT.right, angles.y); - // then spin - probeT.RotateAround(probeT.position, probeT.up, angles.z); - - } - #endregion } } \ No newline at end of file diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Managers/TextManager.cs b/UnityClient/Packages/vbl.urchin/Scripts/Managers/TextManager.cs index 676209d8..6323c72a 100644 --- a/UnityClient/Packages/vbl.urchin/Scripts/Managers/TextManager.cs +++ b/UnityClient/Packages/vbl.urchin/Scripts/Managers/TextManager.cs @@ -1,8 +1,8 @@ using System.Collections; using System.Collections.Generic; using TMPro; -using UnityEditor.PackageManager; using UnityEngine; +using Urchin.API; namespace Urchin.Managers { @@ -23,6 +23,16 @@ private void Awake() { _textGOs = new Dictionary(); } + + private void Start() + { + Client_SocketIO.CreateText += Create; + Client_SocketIO.DeleteText += Delete; + Client_SocketIO.SetTextText += SetText; + Client_SocketIO.SetTextColors += SetColor; + Client_SocketIO.SetTextSizes += SetSize; + Client_SocketIO.SetTextPositions += SetPosition; + } #endregion #region Public functions diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Managers/VolumeManager.cs b/UnityClient/Packages/vbl.urchin/Scripts/Managers/VolumeManager.cs index 94289652..e4da9600 100644 --- a/UnityClient/Packages/vbl.urchin/Scripts/Managers/VolumeManager.cs +++ b/UnityClient/Packages/vbl.urchin/Scripts/Managers/VolumeManager.cs @@ -2,6 +2,7 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; +using Urchin.API; namespace Urchin.Managers { @@ -11,16 +12,27 @@ public class VolumeManager : MonoBehaviour [SerializeField] private VolumeRenderer volRenderer; #endregion + private void Start() + { + + Client_SocketIO.SetVolumeVisibility += SetVisibility; + Client_SocketIO.SetVolumeDataMeta += SetMetadata; + Client_SocketIO.SetVolumeData += SetData; + Client_SocketIO.CreateVolume += Create; + Client_SocketIO.DeleteVolume += Delete; + Client_SocketIO.SetVolumeColormap += SetColormap; + } + #region Public functions public void SetVisibility(List data) { if (((string)data[0]).Equals("allen")) - volRenderer.DisplayAllenVolume((bool)data[1]); + volRenderer.DisplayAnnotationVolume((bool)data[1]); else volRenderer.SetVolumeVisibility((string)data[0], (bool)data[1]); } - public void SetVolumeColormap(List obj) + public void SetColormap(List obj) { string name = obj[0]; obj.RemoveAt(0); diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Managers/urchin.managers.asmdef b/UnityClient/Packages/vbl.urchin/Scripts/Managers/urchin.managers.asmdef index a3ade73d..bc7cf8d8 100644 --- a/UnityClient/Packages/vbl.urchin/Scripts/Managers/urchin.managers.asmdef +++ b/UnityClient/Packages/vbl.urchin/Scripts/Managers/urchin.managers.asmdef @@ -11,7 +11,9 @@ "GUID:734d92eba21c94caba915361bd5ac177", "GUID:e0cd26848372d4e5c891c569017e11f1", "GUID:d8b63aba1907145bea998dd612889d6b", - "GUID:5dedf88781c06a443aeac3e770ba73f9" + "GUID:5dedf88781c06a443aeac3e770ba73f9", + "GUID:ef948df2bf4bfe448ad38f3511278da4", + "GUID:2a17cf7e212916c498a6b6adfced9bcf" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/UnityClient/Packages/vbl.urchin/Scripts/Utils/Utils.cs b/UnityClient/Packages/vbl.urchin/Scripts/Utils/Utils.cs index 6391c9e9..9c062184 100644 --- a/UnityClient/Packages/vbl.urchin/Scripts/Utils/Utils.cs +++ b/UnityClient/Packages/vbl.urchin/Scripts/Utils/Utils.cs @@ -1,317 +1,389 @@ using System; +using System.Collections.Generic; using System.IO; using System.Linq; using Unity.Mathematics; using UnityEngine; -public class Utils : MonoBehaviour +namespace Urchin.Utils { - public static Vector3 IBL_BREGMA = new Vector3(5.4f, 5.7f, 0.332f); - - /// - /// Rotate phi and theta to match IBL coordinates - /// - /// - /// - public static Vector3 World2IBL(Vector3 phiThetaSpin) + public class Utils : MonoBehaviour { - float iblPhi = -phiThetaSpin.x - 90f; - float iblTheta = -phiThetaSpin.y; - return new Vector3(iblPhi, iblTheta, phiThetaSpin.z); - } + public static Vector3 CCF_BREGMA = new Vector3(5.2f, 5.7f, 0.332f); + public static Vector3 CCF_LAMBDA = new Vector3(9.35f, 5.7f, 0.332f); - /// - /// Rotate IBL coordinates to return to pinpoint space - /// - /// - /// - public static Vector3 IBL2World(Vector3 iblAngles) - { - float worldPhi = -iblAngles.x - 90f; - float worldTheta = -iblAngles.y; - return new Vector3(worldPhi, worldTheta, iblAngles.z); - } + public static Vector3 WXH_BREGMA = new Vector3(14.469f, 10.374f, 2.808f); + public static Vector3 WXH_LAMBDA = new Vector3(23.469f, 10.374f, 2.808f); + public static Dictionary BregmaDefaults = new Dictionary + { + {"allen_mouse_25um", CCF_BREGMA}, + {"whs_sd_rat_39um", WXH_BREGMA}, + }; - public static float CircDeg(float deg, float minDeg, float maxDeg) - { - float diff = Mathf.Abs(maxDeg - minDeg); + public static Dictionary LambdaDefaults = new Dictionary + { + {"allen_mouse_25um", CCF_LAMBDA}, + {"whs_sd_rat_39um", WXH_LAMBDA}, + }; - if (deg < minDeg) deg += diff; - if (deg > maxDeg) deg -= diff; - return deg; - } + /// + /// Rotate phi and theta to match IBL coordinates + /// + /// + /// + public static Vector3 World2IBL(Vector3 phiThetaSpin) + { + float iblPhi = -phiThetaSpin.x - 90f; + float iblTheta = -phiThetaSpin.y; + return new Vector3(iblPhi, iblTheta, phiThetaSpin.z); + } - public float Hypot(Vector2 values) - { - return Mathf.Sqrt(values.x * values.x + values.y * values.y); - } + /// + /// Rotate IBL coordinates to return to pinpoint space + /// + /// + /// + public static Vector3 IBL2World(Vector3 iblAngles) + { + float worldPhi = -iblAngles.x - 90f; + float worldTheta = -iblAngles.y; + return new Vector3(worldPhi, worldTheta, iblAngles.z); + } - public static Color ParseHexColor(string hexString) - { - Color color = new Color(); - ColorUtility.TryParseHtmlString(hexString, out color); - return color; - } + public static Color Hex2Color(string hexString) + { + Color color; + ColorUtility.TryParseHtmlString(hexString, out color); + return color; + } - // From Math3d: http://wiki.unity3d.com/index.php/3d_Math_functions - //Two non-parallel lines which may or may not touch each other have a point on each line which are closest - //to each other. This function finds those two points. If the lines are not parallel, the function - //outputs true, otherwise false. - public static bool ClosestPointsOnTwoLines(out Vector3 closestPointLine1, out Vector3 closestPointLine2, Vector3 linePoint1, Vector3 lineVec1, Vector3 linePoint2, Vector3 lineVec2) - { + public static string Color2Hex(Color color) + { + return $"{Mathf.RoundToInt(color.r * 255):X2}{Mathf.RoundToInt(color.g * 255):X2}{Mathf.RoundToInt(color.b * 255):X2}"; + } - closestPointLine1 = Vector3.zero; - closestPointLine2 = Vector3.zero; + public static bool ParseQueryForID(out string ID) + { + bool webGLID = false; + ID = string.Empty; + + var queryParamDict = ParseQueryString(); - float a = Vector3.Dot(lineVec1, lineVec1); - float b = Vector3.Dot(lineVec1, lineVec2); - float e = Vector3.Dot(lineVec2, lineVec2); + foreach (var kvp in queryParamDict) + { + if (kvp.Key.Equals("ID")) + { + ID = kvp.Value; + webGLID = true; + } + } - float d = a * e - b * b; + return webGLID; + } - //lines are not parallel - if (d != 0.0f) + public static Dictionary ParseQueryString() { + Dictionary parsedQueryParams = new Dictionary(); - Vector3 r = linePoint1 - linePoint2; - float c = Vector3.Dot(lineVec1, r); - float f = Vector3.Dot(lineVec2, r); - - float s = (b * f - c * e) / d; - float t = (a * f - c * b) / d; +#if !UNITY_WEBGL || UNITY_EDITOR + return parsedQueryParams; +#endif + Uri uri = new Uri(Application.absoluteURL); + string queryString = uri.Query.TrimStart('?'); + string[] queryParams = queryString.Split('&'); - closestPointLine1 = linePoint1 + lineVec1 * s; - closestPointLine2 = linePoint2 + lineVec2 * t; + foreach (string queryParam in queryParams) + { + string[] keyValue = queryParam.Split('='); + parsedQueryParams.Add(keyValue[0], keyValue[1]); + } - return true; + return parsedQueryParams; } - else + public static float CircDeg(float deg, float minDeg, float maxDeg) { - return false; - } - } + float diff = Mathf.Abs(maxDeg - minDeg); - public float4 Color2float4(Color color) - { - return new float4(color.r, color.g, color.b, color.a); - } + if (deg < minDeg) deg += diff; + if (deg > maxDeg) deg -= diff; - // Note that this might be possible to replace by: - // Buffer.BlockCopy() - // see https://stackoverflow.com/questions/6952923/conversion-double-array-to-byte-array - public float[] LoadBinaryFloatHelper(string datasetName) - { - TextAsset textAsset = Resources.Load("Datasets/" + datasetName) as TextAsset; - byte[] tempData = textAsset.bytes; - Debug.Log("Loading " + datasetName + " with " + tempData.Length + " bytes"); - float[] data = new float[tempData.Length / 4]; + return deg; + } - Buffer.BlockCopy(tempData, 0, data, 0, tempData.Length); - Debug.LogFormat("Found {0} floats", data.Length); + public float Hypot(Vector2 values) + { + return Mathf.Sqrt(values.x * values.x + values.y * values.y); + } - return data; - } - public uint[] LoadBinaryUInt32Helper(string datasetName) - { - TextAsset textAsset = Resources.Load("Datasets/" + datasetName) as TextAsset; - byte[] tempData = textAsset.bytes; - Debug.Log("Loading " + datasetName + " with " + tempData.Length + " bytes"); - uint[] data = new uint[tempData.Length / 4]; + public static Color ParseHexColor(string hexString) + { + Color color = new Color(); + ColorUtility.TryParseHtmlString(hexString, out color); + return color; + } - Buffer.BlockCopy(tempData, 0, data, 0, tempData.Length); - Debug.LogFormat("Found {0} UInt32", data.Length); + // From Math3d: http://wiki.unity3d.com/index.php/3d_Math_functions + //Two non-parallel lines which may or may not touch each other have a point on each line which are closest + //to each other. This function finds those two points. If the lines are not parallel, the function + //outputs true, otherwise false. + public static bool ClosestPointsOnTwoLines(out Vector3 closestPointLine1, out Vector3 closestPointLine2, Vector3 linePoint1, Vector3 lineVec1, Vector3 linePoint2, Vector3 lineVec2) + { - return data; - } - public ushort[] LoadBinaryUShortHelper(string datasetName) - { - TextAsset textAsset = Resources.Load("Datasets/" + datasetName) as TextAsset; - byte[] tempData = textAsset.bytes; - Debug.Log("Loading " + datasetName + " with " + tempData.Length + " bytes"); - ushort[] data = new ushort [tempData.Length / 2]; + closestPointLine1 = Vector3.zero; + closestPointLine2 = Vector3.zero; - Buffer.BlockCopy(tempData, 0, data, 0, tempData.Length); - Debug.LogFormat("Found {0} UShort", data.Length); + float a = Vector3.Dot(lineVec1, lineVec1); + float b = Vector3.Dot(lineVec1, lineVec2); + float e = Vector3.Dot(lineVec2, lineVec2); - return data; - } - public byte[] LoadBinaryByteHelper(string datasetName) - { - TextAsset textAsset = Resources.Load("Datasets/" + datasetName) as TextAsset; - byte[] tempData = textAsset.bytes; - Debug.Log("Loading " + datasetName + " with " + tempData.Length + " bytes"); - Debug.LogFormat("Found {0} bytes", tempData.Length); + float d = a * e - b * b; - return tempData; - } - public double[] LoadBinaryDoubleHelper(string datasetName) - { - TextAsset textAsset = Resources.Load("Datasets/" + datasetName) as TextAsset; - byte[] tempData = textAsset.bytes; - Debug.Log("Loading " + datasetName + " with " + tempData.Length + " bytes"); - double[] data = new double[tempData.Length / 8]; + //lines are not parallel + if (d != 0.0f) + { - Buffer.BlockCopy(tempData, 0, data, 0, tempData.Length); - Debug.LogFormat("Found {0} Doubles", data.Length); + Vector3 r = linePoint1 - linePoint2; + float c = Vector3.Dot(lineVec1, r); + float f = Vector3.Dot(lineVec2, r); - return data; - } + float s = (b * f - c * e) / d; + float t = (a * f - c * b) / d; - private static Array LoadNPY(Stream stream) - { - Debug.Log("Parsing NPY stream received from URL"); - using (var reader = new BinaryReader(stream, System.Text.Encoding.ASCII - #if !NET35 && !NET40 - , leaveOpen: true - #endif - )) - { - int bytes; - Type type; - int[] shape; - if (!parseReader(reader, out bytes, out type, out shape)) - throw new FormatException(); + closestPointLine1 = linePoint1 + lineVec1 * s; + closestPointLine2 = linePoint2 + lineVec2 * t; - Debug.Log(type); - Debug.Log("Shape length: " + shape.Length); - - if (shape.Length==1) - { - Array array = Array.CreateInstance(type, shape[0]); - array = readValueMatrix(reader, array, bytes, type, shape); - - // TODO: Double arrays are useless in Unity we should just convert them to float and save memory - return array; + return true; } + else { - Debug.LogError("Warning: cannot handle this data shape"); + return false; } } - return null; - } + public float4 Color2float4(Color color) + { + return new float4(color.r, color.g, color.b, color.a); + } - private static Array readValueMatrix(BinaryReader reader, Array matrix, int bytes, Type type, int[] shape) - { - int total = 1; - for (int i = 0; i < shape.Length; i++) - total *= shape[i]; - var buffer = new byte[bytes * total]; + // Note that this might be possible to replace by: + // Buffer.BlockCopy() + // see https://stackoverflow.com/questions/6952923/conversion-double-array-to-byte-array + public float[] LoadBinaryFloatHelper(string datasetName) + { + TextAsset textAsset = Resources.Load("Datasets/" + datasetName) as TextAsset; + byte[] tempData = textAsset.bytes; + Debug.Log("Loading " + datasetName + " with " + tempData.Length + " bytes"); + float[] data = new float[tempData.Length / 4]; - reader.Read(buffer, 0, buffer.Length); - Buffer.BlockCopy(buffer, 0, matrix, 0, buffer.Length); + Buffer.BlockCopy(tempData, 0, data, 0, tempData.Length); + Debug.LogFormat("Found {0} floats", data.Length); - return matrix; - } + return data; + } + public uint[] LoadBinaryUInt32Helper(string datasetName) + { + TextAsset textAsset = Resources.Load("Datasets/" + datasetName) as TextAsset; + byte[] tempData = textAsset.bytes; + Debug.Log("Loading " + datasetName + " with " + tempData.Length + " bytes"); + uint[] data = new uint[tempData.Length / 4]; - private static bool parseReader(BinaryReader reader, out int bytes, out Type t, out int[] shape) - { - bytes = 0; - t = null; - shape = null; - - // The first 6 bytes are a magic string: exactly "x93NUMPY" - if (reader.ReadChar() != 63) return false; - if (reader.ReadChar() != 'N') return false; - if (reader.ReadChar() != 'U') return false; - if (reader.ReadChar() != 'M') return false; - if (reader.ReadChar() != 'P') return false; - if (reader.ReadChar() != 'Y') return false; - - byte major = reader.ReadByte(); // 1 - byte minor = reader.ReadByte(); // 0 - - if (major != 1 || minor != 0) - throw new NotSupportedException(); + Buffer.BlockCopy(tempData, 0, data, 0, tempData.Length); + Debug.LogFormat("Found {0} UInt32", data.Length); - ushort len = reader.ReadUInt16(); + return data; + } + public ushort[] LoadBinaryUShortHelper(string datasetName) + { + TextAsset textAsset = Resources.Load("Datasets/" + datasetName) as TextAsset; + byte[] tempData = textAsset.bytes; + Debug.Log("Loading " + datasetName + " with " + tempData.Length + " bytes"); + ushort[] data = new ushort[tempData.Length / 2]; - string header = new String(reader.ReadChars(len)); - string mark = "'descr': '"; - int s = header.IndexOf(mark) + mark.Length; - int e = header.IndexOf("'", s + 1); - string type = header.Substring(s, e - s); - bool? isLittleEndian; - t = GetType(type, out bytes, out isLittleEndian); + Buffer.BlockCopy(tempData, 0, data, 0, tempData.Length); + Debug.LogFormat("Found {0} UShort", data.Length); - if (isLittleEndian.HasValue && isLittleEndian.Value == false) - throw new Exception(); + return data; + } + public byte[] LoadBinaryByteHelper(string datasetName) + { + TextAsset textAsset = Resources.Load("Datasets/" + datasetName) as TextAsset; + byte[] tempData = textAsset.bytes; + Debug.Log("Loading " + datasetName + " with " + tempData.Length + " bytes"); + Debug.LogFormat("Found {0} bytes", tempData.Length); - mark = "'fortran_order': "; - s = header.IndexOf(mark) + mark.Length; - e = header.IndexOf(",", s + 1); - bool fortran = bool.Parse(header.Substring(s, e - s)); + return tempData; + } + public double[] LoadBinaryDoubleHelper(string datasetName) + { + TextAsset textAsset = Resources.Load("Datasets/" + datasetName) as TextAsset; + byte[] tempData = textAsset.bytes; + Debug.Log("Loading " + datasetName + " with " + tempData.Length + " bytes"); + double[] data = new double[tempData.Length / 8]; - if (fortran) - throw new Exception(); + Buffer.BlockCopy(tempData, 0, data, 0, tempData.Length); + Debug.LogFormat("Found {0} Doubles", data.Length); - mark = "'shape': ("; - s = header.IndexOf(mark) + mark.Length; - e = header.IndexOf(")", s + 1); - shape = header.Substring(s, e - s).Split(',').Where(v => !String.IsNullOrEmpty(v)).Select(Int32.Parse).ToArray(); + return data; + } - return true; - } + private static Array LoadNPY(Stream stream) + { + Debug.Log("Parsing NPY stream received from URL"); + using (var reader = new BinaryReader(stream, System.Text.Encoding.ASCII +#if !NET35 && !NET40 + , leaveOpen: true +#endif + )) + { + int bytes; + Type type; + int[] shape; + if (!parseReader(reader, out bytes, out type, out shape)) + throw new FormatException(); + + Debug.Log(type); + Debug.Log("Shape length: " + shape.Length); + + if (shape.Length == 1) + { + Array array = Array.CreateInstance(type, shape[0]); + array = readValueMatrix(reader, array, bytes, type, shape); + + // TODO: Double arrays are useless in Unity we should just convert them to float and save memory + return array; + } + else + { + Debug.LogError("Warning: cannot handle this data shape"); + } + } + return null; + } - private static Type GetType(string dtype, out int bytes, out bool? isLittleEndian) - { - isLittleEndian = IsLittleEndian(dtype); - bytes = Int32.Parse(dtype.Substring(2)); - - string typeCode = dtype.Substring(1); - - if (typeCode == "b1") - return typeof(bool); - if (typeCode == "i1") - return typeof(Byte); - if (typeCode == "i2") - return typeof(Int16); - if (typeCode == "i4") - return typeof(Int32); - if (typeCode == "i8") - return typeof(Int64); - if (typeCode == "u1") - return typeof(Byte); - if (typeCode == "u2") - return typeof(UInt16); - if (typeCode == "u4") - return typeof(UInt32); - if (typeCode == "u8") - return typeof(UInt64); - if (typeCode == "f4") - return typeof(Single); - if (typeCode == "f8") - return typeof(Double); - if (typeCode.StartsWith("S")) - return typeof(String); - - throw new NotSupportedException(); - } + private static Array readValueMatrix(BinaryReader reader, Array matrix, int bytes, Type type, int[] shape) + { + int total = 1; + for (int i = 0; i < shape.Length; i++) + total *= shape[i]; + var buffer = new byte[bytes * total]; - private static bool? IsLittleEndian(string type) - { - bool? littleEndian = null; + reader.Read(buffer, 0, buffer.Length); + Buffer.BlockCopy(buffer, 0, matrix, 0, buffer.Length); - switch (type[0]) + return matrix; + } + + private static bool parseReader(BinaryReader reader, out int bytes, out Type t, out int[] shape) { - case '<': - littleEndian = true; - break; - case '>': - littleEndian = false; - break; - case '|': - littleEndian = null; - break; - default: + bytes = 0; + t = null; + shape = null; + + // The first 6 bytes are a magic string: exactly "x93NUMPY" + if (reader.ReadChar() != 63) return false; + if (reader.ReadChar() != 'N') return false; + if (reader.ReadChar() != 'U') return false; + if (reader.ReadChar() != 'M') return false; + if (reader.ReadChar() != 'P') return false; + if (reader.ReadChar() != 'Y') return false; + + byte major = reader.ReadByte(); // 1 + byte minor = reader.ReadByte(); // 0 + + if (major != 1 || minor != 0) + throw new NotSupportedException(); + + ushort len = reader.ReadUInt16(); + + string header = new String(reader.ReadChars(len)); + string mark = "'descr': '"; + int s = header.IndexOf(mark) + mark.Length; + int e = header.IndexOf("'", s + 1); + string type = header.Substring(s, e - s); + bool? isLittleEndian; + t = GetType(type, out bytes, out isLittleEndian); + + if (isLittleEndian.HasValue && isLittleEndian.Value == false) throw new Exception(); + + mark = "'fortran_order': "; + s = header.IndexOf(mark) + mark.Length; + e = header.IndexOf(",", s + 1); + bool fortran = bool.Parse(header.Substring(s, e - s)); + + if (fortran) + throw new Exception(); + + mark = "'shape': ("; + s = header.IndexOf(mark) + mark.Length; + e = header.IndexOf(")", s + 1); + shape = header.Substring(s, e - s).Split(',').Where(v => !String.IsNullOrEmpty(v)).Select(Int32.Parse).ToArray(); + + return true; } - return littleEndian; + + private static Type GetType(string dtype, out int bytes, out bool? isLittleEndian) + { + isLittleEndian = IsLittleEndian(dtype); + bytes = Int32.Parse(dtype.Substring(2)); + + string typeCode = dtype.Substring(1); + + if (typeCode == "b1") + return typeof(bool); + if (typeCode == "i1") + return typeof(Byte); + if (typeCode == "i2") + return typeof(Int16); + if (typeCode == "i4") + return typeof(Int32); + if (typeCode == "i8") + return typeof(Int64); + if (typeCode == "u1") + return typeof(Byte); + if (typeCode == "u2") + return typeof(UInt16); + if (typeCode == "u4") + return typeof(UInt32); + if (typeCode == "u8") + return typeof(UInt64); + if (typeCode == "f4") + return typeof(Single); + if (typeCode == "f8") + return typeof(Double); + if (typeCode.StartsWith("S")) + return typeof(String); + + throw new NotSupportedException(); + } + + private static bool? IsLittleEndian(string type) + { + bool? littleEndian = null; + + switch (type[0]) + { + case '<': + littleEndian = true; + break; + case '>': + littleEndian = false; + break; + case '|': + littleEndian = null; + break; + default: + throw new Exception(); + } + + return littleEndian; + } } -} + +} \ No newline at end of file diff --git a/UnityClient/ProjectSettings/EditorSettings.asset b/UnityClient/ProjectSettings/EditorSettings.asset index 6789e4e2..20d02082 100644 --- a/UnityClient/ProjectSettings/EditorSettings.asset +++ b/UnityClient/ProjectSettings/EditorSettings.asset @@ -25,7 +25,7 @@ EditorSettings: m_AsyncShaderCompilation: 1 m_PrefabModeAllowAutoSave: 1 m_EnterPlayModeOptionsEnabled: 1 - m_EnterPlayModeOptions: 3 + m_EnterPlayModeOptions: 2 m_GameObjectNamingDigits: 1 m_GameObjectNamingScheme: 0 m_AssetNamingUsesSpace: 1 diff --git a/UnityClient/ProjectSettings/ProjectSettings.asset b/UnityClient/ProjectSettings/ProjectSettings.asset index 547ef9e5..71715b18 100644 --- a/UnityClient/ProjectSettings/ProjectSettings.asset +++ b/UnityClient/ProjectSettings/ProjectSettings.asset @@ -3,7 +3,7 @@ --- !u!129 &1 PlayerSettings: m_ObjectHideFlags: 0 - serializedVersion: 23 + serializedVersion: 26 productGUID: c33eedc322dcb9843bb8f04ba4be68e6 AndroidProfiler: 0 AndroidFilterTouchesWhenObscured: 0 @@ -48,14 +48,15 @@ PlayerSettings: defaultScreenHeightWeb: 1200 m_StereoRenderingPath: 0 m_ActiveColorSpace: 0 + m_SpriteBatchVertexThreshold: 300 m_MTRendering: 1 mipStripping: 0 numberOfMipsStripped: 0 + numberOfMipsStrippedPerMipmapLimitGroup: {} m_StackTraceTypes: 010000000100000001000000010000000100000001000000 iosShowActivityIndicatorOnLoading: -1 androidShowActivityIndicatorOnLoading: -1 iosUseCustomAppBackgroundBehavior: 0 - iosAllowHTTPDownload: 1 allowedAutorotateToPortrait: 1 allowedAutorotateToPortraitUpsideDown: 1 allowedAutorotateToLandscapeRight: 1 @@ -85,6 +86,7 @@ PlayerSettings: hideHomeButton: 0 submitAnalytics: 1 usePlayerLog: 1 + dedicatedServerOptimizations: 0 bakeCollisionMeshes: 0 forceSingleInstance: 0 useFlipModelSwapchain: 1 @@ -119,8 +121,12 @@ PlayerSettings: switchNVNShaderPoolsGranularity: 33554432 switchNVNDefaultPoolsGranularity: 16777216 switchNVNOtherPoolsGranularity: 16777216 + switchGpuScratchPoolGranularity: 2097152 + switchAllowGpuScratchShrinking: 0 switchNVNMaxPublicTextureIDCount: 0 switchNVNMaxPublicSamplerIDCount: 0 + switchNVNGraphicsFirmwareMemory: 32 + switchMaxWorkerMultiple: 8 stadiaPresentMode: 0 stadiaTargetFramerate: 0 vulkanNumSwapchainBuffers: 3 @@ -128,12 +134,7 @@ PlayerSettings: vulkanEnablePreTransform: 0 vulkanEnableLateAcquireNextImage: 0 vulkanEnableCommandBufferRecycling: 1 - m_SupportedAspectRatios: - 4:3: 1 - 5:4: 1 - 16:10: 1 - 16:9: 1 - Others: 1 + loadStoreDebugModeEnabled: 0 bundleVersion: 0.4.9 preloadedAssets: [] metroInputSource: 0 @@ -147,7 +148,7 @@ PlayerSettings: enableFrameTimingStats: 0 enableOpenGLProfilerGPURecorders: 1 useHDRDisplay: 0 - D3DHDRBitDepth: 0 + hdrBitDepth: 0 m_ColorGamuts: 00000000 targetPixelDensity: 30 resolutionScalingMode: 0 @@ -158,6 +159,7 @@ PlayerSettings: Standalone: com.Virtual-Brain-Lab.Urchin buildNumber: Standalone: 0 + VisionOS: 0 iPhone: 0 tvOS: 0 overrideDefaultApplicationIdentifier: 0 @@ -175,12 +177,15 @@ PlayerSettings: APKExpansionFiles: 0 keepLoadedShadersAlive: 0 StripUnusedMeshComponents: 1 + strictShaderVariantMatching: 0 VertexChannelCompressionMask: 4054 iPhoneSdkVersion: 988 - iOSTargetOSVersionString: 11.0 + iOSTargetOSVersionString: 12.0 tvOSSdkVersion: 0 tvOSRequireExtendedGameController: 0 - tvOSTargetOSVersionString: 11.0 + tvOSTargetOSVersionString: 12.0 + VisionOSSdkVersion: 0 + VisionOSTargetOSVersionString: 1.0 uIPrerenderedIcon: 0 uIRequiresPersistentWiFi: 0 uIRequiresFullScreen: 1 @@ -228,8 +233,10 @@ PlayerSettings: appleDeveloperTeamID: iOSManualSigningProvisioningProfileID: tvOSManualSigningProvisioningProfileID: + VisionOSManualSigningProvisioningProfileID: iOSManualSigningProvisioningProfileType: 0 tvOSManualSigningProvisioningProfileType: 0 + VisionOSManualSigningProvisioningProfileType: 0 appleEnableAutomaticSigning: 0 iOSRequireARKit: 0 iOSAutomaticallyDetectAndAddCapabilities: 1 @@ -244,6 +251,7 @@ PlayerSettings: useCustomLauncherGradleManifest: 0 useCustomBaseGradleTemplate: 0 useCustomGradlePropertiesTemplate: 0 + useCustomGradleSettingsTemplate: 0 useCustomProguardFile: 0 AndroidTargetArchitectures: 1 AndroidTargetDevices: 0 @@ -251,6 +259,7 @@ PlayerSettings: androidSplashScreen: {fileID: 0} AndroidKeystoreName: AndroidKeyaliasName: + AndroidEnableArmv9SecurityFeatures: 0 AndroidBuildApkPerCpuArchitecture: 0 AndroidTVCompatibility: 0 AndroidIsGame: 1 @@ -264,7 +273,6 @@ PlayerSettings: banner: {fileID: 0} androidGamepadSupportLevel: 0 chromeosInputEmulation: 1 - AndroidMinifyWithR8: 0 AndroidMinifyRelease: 0 AndroidMinifyDebug: 0 AndroidValidateAppBundleSize: 1 @@ -336,6 +344,7 @@ PlayerSettings: - m_BuildTarget: WebGL m_StaticBatching: 0 m_DynamicBatching: 0 + m_BuildTargetShaderSettings: [] m_BuildTargetGraphicsJobs: - m_BuildTarget: MacStandaloneSupport m_GraphicsJobs: 0 @@ -390,6 +399,8 @@ PlayerSettings: m_Devices: - Oculus - OpenVR + m_DefaultShaderChunkSizeInMB: 16 + m_DefaultShaderChunkCount: 0 openGLRequireES31: 0 openGLRequireES31AEP: 0 openGLRequireES32: 0 @@ -400,7 +411,9 @@ PlayerSettings: iPhone: 1 tvOS: 1 m_BuildTargetGroupLightmapEncodingQuality: [] + m_BuildTargetGroupHDRCubemapEncodingQuality: [] m_BuildTargetGroupLightmapSettings: [] + m_BuildTargetGroupLoadStoreDebugModeSettings: [] m_BuildTargetNormalMapEncoding: [] m_BuildTargetDefaultTextureCompressionFormat: [] playModeTestRunnerEnabled: 0 @@ -413,6 +426,7 @@ PlayerSettings: locationUsageDescription: microphoneUsageDescription: bluetoothUsageDescription: + macOSTargetOSVersion: 10.13.0 switchNMETAOverride: switchNetLibKey: switchSocketMemoryPoolSize: 6144 @@ -420,10 +434,12 @@ PlayerSettings: switchSocketConcurrencyLimit: 14 switchScreenResolutionBehavior: 2 switchUseCPUProfiler: 0 + switchEnableFileSystemTrace: 0 switchUseGOLDLinker: 0 switchLTOSetting: 0 switchApplicationID: 0x01004b9000490000 switchNSODependencies: + switchCompilerFlags: switchTitleNames_0: switchTitleNames_1: switchTitleNames_2: @@ -497,7 +513,6 @@ PlayerSettings: switchReleaseVersion: 0 switchDisplayVersion: 1.0.0 switchStartupUserAccount: 0 - switchTouchScreenUsage: 0 switchSupportedLanguagesMask: 0 switchLogoType: 0 switchApplicationErrorCodeCategory: @@ -539,6 +554,7 @@ PlayerSettings: switchNativeFsCacheSize: 32 switchIsHoldTypeHorizontal: 0 switchSupportedNpadCount: 8 + switchEnableTouchScreen: 1 switchSocketConfigEnabled: 0 switchTcpInitialSendBufferSize: 32 switchTcpInitialReceiveBufferSize: 64 @@ -551,6 +567,7 @@ PlayerSettings: switchNetworkInterfaceManagerInitializeEnabled: 1 switchPlayerConnectionEnabled: 1 switchUseNewStyleFilepaths: 0 + switchUseLegacyFmodPriorities: 0 switchUseMicroSleepForYield: 1 switchEnableRamDiskSupport: 0 switchMicroSleepForYieldTime: 25 @@ -638,6 +655,7 @@ PlayerSettings: webGLMemorySize: 16 webGLExceptionSupport: 1 webGLNameFilesAsHashes: 0 + webGLShowDiagnostics: 0 webGLDataCaching: 1 webGLDebugSymbols: 0 webGLEmscriptenArgs: @@ -650,22 +668,43 @@ PlayerSettings: webGLLinkerTarget: 1 webGLThreadsSupport: 0 webGLDecompressionFallback: 0 + webGLInitialMemorySize: 32 + webGLMaximumMemorySize: 2048 + webGLMemoryGrowthMode: 2 + webGLMemoryLinearGrowthStep: 16 + webGLMemoryGeometricGrowthStep: 0.2 + webGLMemoryGeometricGrowthCap: 96 + webGLPowerPreference: 2 scriptingDefineSymbols: Standalone: ENABLE_HYBRID_RENDERER_V2 additionalCompilerArguments: {} platformArchitecture: {} - scriptingBackend: {} + scriptingBackend: + Standalone: 1 il2cppCompilerConfiguration: {} - managedStrippingLevel: {} + il2cppCodeGeneration: {} + managedStrippingLevel: + EmbeddedLinux: 1 + GameCoreScarlett: 1 + GameCoreXboxOne: 1 + Nintendo Switch: 1 + PS4: 1 + PS5: 1 + QNX: 1 + Stadia: 1 + VisionOS: 1 + WebGL: 1 + Windows Store Apps: 1 + XboxOne: 1 + iPhone: 1 + tvOS: 1 incrementalIl2cppBuild: {} suppressCommonWarnings: 1 allowUnsafeCode: 0 useDeterministicCompilation: 1 - enableRoslynAnalyzers: 1 additionalIl2CppArgs: scriptingRuntimeVersion: 1 gcIncremental: 1 - assemblyVersionValidation: 1 gcWBarrierValidation: 0 apiCompatibilityLevelPerPlatform: Standalone: 3 @@ -746,8 +785,14 @@ PlayerSettings: luminVersion: m_VersionCode: 1 m_VersionName: + hmiPlayerDataPath: + hmiForceSRGBBlit: 1 + embeddedLinuxEnableGamepadInput: 1 + hmiLogStartupTiming: 0 + hmiCpuConfiguration: apiCompatibilityLevel: 6 activeInputHandler: 0 + windowsGamepadBackendHint: 0 cloudProjectId: f9928966-c3fd-465a-a037-85ec2deb8013 framebufferDepthMemorylessMode: 0 qualitySettingsNames: [] @@ -755,6 +800,7 @@ PlayerSettings: organizationId: danbirman-uw cloudEnabled: 0 legacyClampBlendShapeWeights: 0 - playerDataPath: - forceSRGBBlit: 1 + hmiLoadingImage: {fileID: 0} + platformRequiresReadableAssets: 0 virtualTexturingSupportEnabled: 0 + insecureHttpOption: 0 diff --git a/UnityClient/ProjectSettings/ProjectVersion.txt b/UnityClient/ProjectSettings/ProjectVersion.txt index 88bb9cf9..e4eac159 100644 --- a/UnityClient/ProjectSettings/ProjectVersion.txt +++ b/UnityClient/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 2022.3.10f1 -m_EditorVersionWithRevision: 2022.3.10f1 (ff3792e53c62) +m_EditorVersion: 2022.3.12f1 +m_EditorVersionWithRevision: 2022.3.12f1 (4fe6e059c7ef) diff --git a/UnityClient/ProjectSettings/ShaderGraphSettings.asset b/UnityClient/ProjectSettings/ShaderGraphSettings.asset index 9b28428b..3250b068 100644 --- a/UnityClient/ProjectSettings/ShaderGraphSettings.asset +++ b/UnityClient/ProjectSettings/ShaderGraphSettings.asset @@ -12,5 +12,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: de02f9e1d18f588468e474319d09a723, type: 3} m_Name: m_EditorClassIdentifier: + shaderVariantLimit: 128 customInterpolatorErrorThreshold: 32 customInterpolatorWarningThreshold: 16 diff --git a/UnityClient/ProjectSettings/TagManager.asset b/UnityClient/ProjectSettings/TagManager.asset index 9cb5e0a1..7f945d3d 100644 --- a/UnityClient/ProjectSettings/TagManager.asset +++ b/UnityClient/ProjectSettings/TagManager.asset @@ -41,7 +41,7 @@ TagManager: - AnimationTargets - BrainAreas - BrainControls - - + - UICamera - - -