private void UpdateHighLightScale(Vector3 clampScale) { float max = Math.Max(clampScale) * highlightSphereScale; highlightObj.transform.localScale = new Vector3((1 / clampScale.x) * max, (1 / clampScale.y) * max, (1 / clampScale.z) * max); // If tbe clamp is too small, match a minimum global size if (highlightObj.transform.lossyScale.x < minHighlightGlobalSize) { Vector3 globalSize = new Vector3(minHighlightGlobalSize, minHighlightGlobalSize, minHighlightGlobalSize); Transform curParent = transform.parent; // Convert global size to local space do { globalSize = new Vector3(globalSize.x / curParent.localScale.x, globalSize.y / curParent.localScale.y, globalSize.z / curParent.localScale.z); curParent = curParent.parent; } while (curParent.parent != null); globalSize = new Vector3(globalSize.x / curParent.localScale.x, globalSize.y / curParent.localScale.y, globalSize.z / curParent.localScale.z); highlightObj.transform.localScale = globalSize; } }
/// <summary> /// Sets the radius and height of the clamp /// </summary> private void SetScale(Neuron.NodeData cellNodeData) { currentVisualizationScale = (float)simulation.VisualInflation; float radiusScalingValue = radiusRatio * (float)cellNodeData.NodeRadius; float heightScalingValue = heightRatio * simulation.AverageDendriteRadius; //Ensures clamp is always at least as wide as tall when Visual Inflation is 1 float radiusLength = Math.Max(radiusScalingValue, heightScalingValue) * currentVisualizationScale; //if (somaClamp) transform.parent.localScale = new Vector3(radiusLength, radiusLength, radiusLength); transform.parent.localScale = new Vector3(radiusLength, radiusLength, heightScalingValue); UpdateHighLightScale(transform.parent.localScale); }