private void ChangePaintMeshVisiblity(HEU_ToolsInfo.PaintMeshVisibility visiblity) { _toolsInfo._paintMeshVisiblity = visiblity; UpdatePaintMeshVisibility(); _GUIChanged = true; HEU_AttributesStore.SetAttributeDataDirty(_selectedAttributeData); }
private void DrawEditAttributeValues() { if(_selectedAttributeData == null) { return; } if(_editPointsSelectedIndices.Count == 0) { return; } int arraySize = _selectedAttributeData._attributeInfo.tupleSize; // Use first values found as current values int ptIndex = _editPointsSelectedIndices[0] * arraySize; // Display values of selected pts which can be edited if (_selectedAttributeData._attributeType == HEU_AttributeData.AttributeType.INT) { // Copy values to display int[] values = new int[arraySize]; for (int i = 0; i < arraySize; ++i) { values[i] = _selectedAttributeData._intValues[ptIndex + i]; } // Display values and update attribute if changed bool bChanged = HEU_EditorUI.DrawArray<int>(_editValuesLabel, ref values, HEU_EditorUI.DrawFieldInt); if (bChanged) { int numPts = _editPointsSelectedIndices.Count; for (int i = 0; i < numPts; ++i) { ptIndex = _editPointsSelectedIndices[i] * arraySize; HEU_AttributesStore.SetAttributeEditValueInt(_selectedAttributeData, ptIndex, values); } _GUIChanged = true; HEU_AttributesStore.SetAttributeDataDirty(_selectedAttributeData); } } else if (_selectedAttributeData._attributeType == HEU_AttributeData.AttributeType.FLOAT) { // Copy values to display float[] values = new float[arraySize]; for(int i = 0; i < arraySize; ++i) { values[i] = _selectedAttributeData._floatValues[ptIndex + i]; } // Display values and update attribute if changed bool bChanged = HEU_EditorUI.DrawArray<float>(_editValuesLabel, ref values, HEU_EditorUI.DrawFieldFloat); if (bChanged) { int numPts = _editPointsSelectedIndices.Count; for (int i = 0; i < numPts; ++i) { ptIndex = _editPointsSelectedIndices[i] * arraySize; HEU_AttributesStore.SetAttributeEditValueFloat(_selectedAttributeData, ptIndex, values); } _GUIChanged = true; HEU_AttributesStore.SetAttributeDataDirty(_selectedAttributeData); } } else if (_selectedAttributeData._attributeType == HEU_AttributeData.AttributeType.STRING) { // Copy values to display string[] values = new string[arraySize]; for (int i = 0; i < arraySize; ++i) { values[i] = _selectedAttributeData._stringValues[ptIndex + i]; } // Display values and update attribute if changed bool bChanged = HEU_EditorUI.DrawArray<string>(_editValuesLabel, ref values, HEU_EditorUI.DrawFieldString); if (bChanged) { int numPts = _editPointsSelectedIndices.Count; for (int i = 0; i < numPts; ++i) { ptIndex = _editPointsSelectedIndices[i] * arraySize; HEU_AttributesStore.SetAttributeEditValueString(_selectedAttributeData, ptIndex, values); } _GUIChanged = true; HEU_AttributesStore.SetAttributeDataDirty(_selectedAttributeData); } } }