protected void UpdateAxisLength(IATKDimension dimension) { switch (dimension) { case IATKDimension.X: if (XAxis != null) { XAxis.UpdateLength(Scale.x); } break; case IATKDimension.Y: if (YAxis != null) { YAxis.UpdateLength(Scale.y); } break; case IATKDimension.Z: if (ZAxis != null) { ZAxis.UpdateLength(Scale.z); } break; } }
protected void DestroyAxis(IATKDimension dimension) { switch (dimension) { case IATKDimension.X: if (XAxis != null) { Destroy(XAxis.gameObject); XAxis = null; } return; case IATKDimension.Y: if (YAxis != null) { Destroy(YAxis.gameObject); YAxis = null; } return; case IATKDimension.Z: if (ZAxis != null) { Destroy(ZAxis.gameObject); ZAxis = null; } return; } }
protected Axis CreateAxis(IATKDimension dimension) { GameObject axisHolder; axisHolder = (GameObject)Instantiate(Resources.Load("NewAxis")); axisHolder.transform.parent = transform; axisHolder.transform.localPosition = Vector3.zero; axisHolder.transform.localRotation = Quaternion.identity; Axis axis = axisHolder.GetComponent <Axis>(); switch (dimension) { case IATKDimension.X: axis.Initialise(this, XDimension, dimension); XAxis = axis; break; case IATKDimension.Y: axis.Initialise(this, YDimension, dimension); YAxis = axis; break; case IATKDimension.Z: axis.Initialise(this, ZDimension, dimension); ZAxis = axis; break; } return(axis); }
protected void UpdateAxisDimensionAndRanges(IATKDimension dimension) { Axis axis = null; AttributeFilter attributeFilter = null; switch (dimension) { case IATKDimension.X: axis = XAxis; attributeFilter = XDimension; break; case IATKDimension.Y: axis = YAxis; attributeFilter = YDimension; break; case IATKDimension.Z: axis = ZAxis; attributeFilter = ZDimension; break; } if (axis == null || attributeFilter.Name == "Undefined") { return; } axis.UpdateAttribute(attributeFilter); axis.UpdateMinFilter(attributeFilter.MinFilter); axis.UpdateMaxFilter(attributeFilter.MaxFilter); axis.UpdateMinNormaliser(attributeFilter.MinScale); axis.UpdateMaxNormaliser(attributeFilter.MaxScale); }
public void SetUVs(float value, IATKDimension dimension, int channel = 0) { for (int i = 0; i < UV0.Length; i++) { UV0[i][(int)dimension] = value; } viewMesh.SetUVs(channel, UV0); }
public void SetVertices(float[] values, IATKDimension dimension) { int dim = (int)dimension; for (int i = 0; i < values.Length; i++) { Vertices[i][dim] = values[i]; } UpdatedMeshProperties.Add(MeshProperties.Vertices); }
public void SetVertices(float[] values, IATKDimension dimension) { // Set the now outdated vertices to the UV1 channel viewMesh.SetUVs(1, Vertices); // Set new vertices for (int i = 0; i < values.Length; i++) { Vertices[i][(int)dimension] = values[i]; } viewMesh.SetVertices(Vertices); viewMesh.RecalculateBounds(); }
public void Initialise(AbstractView abstractView, DataAttribute attribute, IATKDimension dimension) { AbstractView = abstractView; DataSource = abstractView.DataSource; Attribute = attribute; SetDirection(dimension); attributeLabel.text = Attribute.Name; UpdateTickLabels(); axisTickLabelPrefab.SetActive(false); }
private void SetDirection(IATKDimension dimension) { Dimension = dimension; switch (Dimension) { case IATKDimension.X: // Fix the alignment of the axis tick labels foreach (Transform child in axisTickLabelHolder.GetComponentsInChildren <Transform>(true)) { if (child.gameObject.name.Contains("Text")) { TextMeshPro labelText = child.GetComponent <TextMeshPro>(); labelText.alignment = TextAlignmentOptions.MidlineLeft; labelText.GetComponent <RectTransform>().pivot = new Vector2(0, 0.5f); } else if (child.gameObject.name.Contains("Tick")) { SetXLocalPosition(child, -child.localPosition.x); } } transform.localEulerAngles = new Vector3(0, 0, -90); SetXLocalPosition(axisTickLabelHolder.transform, 0); attributeLabel.alignment = TextAlignmentOptions.Top; attributeLabel.GetComponent <RectTransform>().pivot = new Vector2(0.5f, 0.5f); break; case IATKDimension.Y: transform.localEulerAngles = new Vector3(0, 0, 0); SetXLocalPosition(minNormaliserObject, -minNormaliserObject.transform.localPosition.x); SetXLocalPosition(maxNormaliserObject, -maxNormaliserObject.transform.localPosition.x); minNormaliserObject.localEulerAngles = new Vector3(90, 90, 0); maxNormaliserObject.localEulerAngles = new Vector3(90, 90, 0); break; case IATKDimension.Z: transform.localEulerAngles = new Vector3(90, 0, 0); SetXLocalPosition(minNormaliserObject, -minNormaliserObject.transform.localPosition.x); SetXLocalPosition(maxNormaliserObject, -maxNormaliserObject.transform.localPosition.x); minNormaliserObject.localEulerAngles = new Vector3(90, 90, 0); maxNormaliserObject.localEulerAngles = new Vector3(90, 90, 0); break; } }
private void UpdateAxes(IATKProperty property) { if (dataAttributes.TryGetValue(property, out DataAttribute dataAttribute) && dataAttribute.DataType != IATKDataType.Translate) { if (!dataAxes.TryGetValue(property, out Axis axis)) { GameObject axisHolder = (GameObject)Instantiate(Resources.Load("NewerAxis")); axisHolder.transform.parent = transform; axisHolder.transform.localPosition = Vector3.zero; axisHolder.transform.localRotation = Quaternion.identity; axis = axisHolder.GetComponent <Axis>(); IATKDimension dimension = (property == IATKProperty.X) ? IATKDimension.X : (property == IATKProperty.Y) ? IATKDimension.Y : IATKDimension.Z; axis.Initialise(this, dataAttribute, dimension); dataAxes.Add(property, axis); } else { axis.UpdateAttribute(dataAttribute); } if (property == IATKProperty.X) { axis.UpdateLength(geometry.transform.localScale.x); } else if (property == IATKProperty.Y) { axis.UpdateLength(geometry.transform.localScale.y); } else if (property == IATKProperty.Z) { axis.UpdateLength(geometry.transform.localScale.z); } } else { if (dataAxes.TryGetValue(property, out Axis axis)) { Destroy(axis.gameObject); dataAxes.Remove(property); } } }
public void SetUVs(float value, IATKDimension dimension, int channel = 0) { int dim = (int)dimension; switch (channel) { case 0: for (int i = 0; i < UV0.Length; i++) { UV0[i][dim] = value; } UpdatedMeshProperties.Add(MeshProperties.UV0); break; case 1: for (int i = 0; i < UV1.Length; i++) { UV1[i][dim] = value; } UpdatedMeshProperties.Add(MeshProperties.UV1); break; case 2: for (int i = 0; i < UV2.Length; i++) { UV2[i][dim] = value; } UpdatedMeshProperties.Add(MeshProperties.UV2); break; case 3: for (int i = 0; i < UV3.Length; i++) { UV3[i][dim] = value; } UpdatedMeshProperties.Add(MeshProperties.UV3); break; } }