Пример #1
0
		public static SetAttributeValueFunc GetAttributeSetValueFunction(HEU_AttributeData.AttributeType attrType, HEU_ToolsInfo.PaintMergeMode paintMergeMode)
		{
			SetAttributeValueFunc setAttrFunc = null;
			if (attrType == HEU_AttributeData.AttributeType.INT)
			{
				if (paintMergeMode == HEU_ToolsInfo.PaintMergeMode.REPLACE)
				{
					setAttrFunc = HEU_AttributesStore.ReplaceAttributeValueInt;
				}
				else if (paintMergeMode == HEU_ToolsInfo.PaintMergeMode.ADD)
				{
					setAttrFunc = HEU_AttributesStore.AddAttributeValueInt;
				}
				else if (paintMergeMode == HEU_ToolsInfo.PaintMergeMode.SUBTRACT)
				{
					setAttrFunc = HEU_AttributesStore.SubtractAttributeValueInt;
				}
				else if (paintMergeMode == HEU_ToolsInfo.PaintMergeMode.MULTIPLY)
				{
					setAttrFunc = HEU_AttributesStore.MultiplyAttributeValueInt;
				}
			}
			else if (attrType == HEU_AttributeData.AttributeType.FLOAT)
			{
				if (paintMergeMode == HEU_ToolsInfo.PaintMergeMode.REPLACE)
				{
					setAttrFunc = HEU_AttributesStore.ReplaceAttributeValueFloat;
				}
				else if (paintMergeMode == HEU_ToolsInfo.PaintMergeMode.ADD)
				{
					setAttrFunc = HEU_AttributesStore.AddAttributeValueFloat;
				}
				else if (paintMergeMode == HEU_ToolsInfo.PaintMergeMode.SUBTRACT)
				{
					setAttrFunc = HEU_AttributesStore.SubtractAttributeValueFloat;
				}
				else if (paintMergeMode == HEU_ToolsInfo.PaintMergeMode.MULTIPLY)
				{
					setAttrFunc = HEU_AttributesStore.MultiplyAttributeValueFloat;
				}
			}
			else if (attrType == HEU_AttributeData.AttributeType.STRING)
			{
				setAttrFunc = HEU_AttributesStore.SetAttributeValueString;
			}

			return setAttrFunc;
		}
Пример #2
0
		public void PaintAttribute(HEU_AttributeData attributeData, HEU_ToolsInfo sourceTools, int attributeIndex, float paintFactor, SetAttributeValueFunc setAttrFunc)
		{
			if(attributeData._attributeState == HEU_AttributeData.AttributeState.INVALID)
			{
				return;
			}

			int targetIndex = attributeIndex * attributeData._attributeInfo.tupleSize;
			setAttrFunc(attributeData, targetIndex, sourceTools, 0, paintFactor);

			SetAttributeDataDirty(attributeData);
		}