public void ApplyIfChanged(IList objects, EditorSceneBase scene = null) { var infos = new List <EditorSceneBase.RevertableMassPropertyChange <TObject, TValue> .Info>(); if (Value != prevValue) { for (int i = 0; i < objects.Count; i++) { var value = getter((TObject)objects[i]); if (!value.Equals(Value.SharedValue)) { infos.Add(new EditorSceneBase.RevertableMassPropertyChange <TObject, TValue> .Info((TObject)objects[i], value)); setter((TObject)objects[i], Value.SharedValue); } } prevValue = Value; if (infos.Count > 0) { scene?.AddToUndo(new EditorSceneBase.RevertableMassPropertyChange <TObject, TValue>(getter, setter, infos.ToArray())); } } }
public void Update(IList objects) { Multiple <TValue> res = getter((TObject)objects[0]); for (int i = 0; i < objects.Count; i++) { if (res != getter((TObject)objects[i])) { Value = new Multiple <TValue>(); return; } } prevValue = res; Value = res; }
public MultipleVector3(Multiple <float> x, Multiple <float> y, Multiple <float> z) { X = x; Y = y; Z = z; }