2 using System.Collections.Generic;
7 namespace droid.Runtime.Utilities.GameObjects.NeodroidCamera.Segmentation.Obsolete {
15 Renderer[] _all_renders;
19 MaterialPropertyBlock _block;
23 LinkedList<Color>[] _original_colors;
29 public Dictionary<GameObject, Color> ColorsDictGameObject {
get; } =
new Dictionary<GameObject, Color>();
33 public override Dictionary<String, Color> ColorsDict {
35 var colors =
new Dictionary<String, Color>();
36 foreach (var key_val
in this.ColorsDictGameObject) {
37 colors.Add(key_val.Key.GetInstanceID().ToString(), key_val.Value);
48 if (this.ColorsDictGameObject != null) {
49 this.instanceColorArray =
new ColorByInstance[this.ColorsDictGameObject.Keys.Count];
51 foreach (var key
in this.ColorsDictGameObject.Keys) {
52 var seg =
new ColorByInstance {_Game_Object = key, _Color = this.ColorsDictGameObject[key]};
53 this.instanceColorArray[i] = seg;
57 return this.instanceColorArray;
63 foreach (var seg
in value) {
64 this.ColorsDictGameObject[seg._Game_Object] = seg.
_Color;
72 void Start() { this.Setup(); }
77 this._all_renders = FindObjectsOfType<Renderer>();
78 this._block =
new MaterialPropertyBlock();
86 var renderers = FindObjectsOfType<Renderer>();
87 if (this.ColorsDictGameObject == null) {
89 }
else if (this.ColorsDictGameObject.Keys.Count != renderers.Length) {
90 this._all_renders = renderers;
96 if (this._block == null) {
97 this._block =
new MaterialPropertyBlock();
106 this.ColorsDictGameObject.Clear();
107 foreach (var rend
in this._all_renders) {
109 this.ColorsDictGameObject.Add(rend.gameObject,
Random.ColorHSV());
118 this._original_colors =
new LinkedList<Color>[this._all_renders.Length];
120 for (var i = 0; i < this._original_colors.Length; i++) {
121 this._original_colors[i] =
new LinkedList<Color>();
124 for (var i = 0; i < this._all_renders.Length; i++) {
125 var c_renderer = this._all_renders[i];
127 foreach (var mat
in c_renderer.sharedMaterials) {
128 if (mat != null && mat.HasProperty(
this._Default_Color_Tag)) {
129 this._original_colors[i].AddFirst(mat.color);
132 if (this.ColorsDictGameObject.ContainsKey(c_renderer.gameObject)) {
133 var val = this.ColorsDictGameObject[c_renderer.gameObject];
134 this._block.SetColor(this._Segmentation_Color_Tag, val);
135 this._block.SetColor(this._Outline_Color_Tag, this._Outline_Color);
136 this._block.SetFloat(this._Outline_Width_Factor_Tag, this._Outline_Width_Factor);
139 c_renderer.SetPropertyBlock(this._block);
149 for (var i = 0; i < this._all_renders.Length; i++) {
150 var c_renderer = this._all_renders[i];
152 foreach (var mat
in c_renderer.sharedMaterials) {
153 if (mat != null && this._original_colors != null && i < this._original_colors.Length) {
154 var c_original_color = this._original_colors[i];
155 if (c_original_color != null) {
156 var c = this._original_colors[i];
159 var last_val = last.Value;
160 this._block.SetColor(this._Default_Color_Tag, last_val);
161 c_original_color.RemoveLast();
162 c_renderer.SetPropertyBlock(this._block);