public void Update(uint valueId, FieldDerivativeType dt, VectorFieldDrawerType drawerType, FEWorld world) { DrawerType = drawerType; if (DrawerType == VectorFieldDrawerType.Vector) { UpdateVector(valueId, dt, world); } else if (DrawerType == VectorFieldDrawerType.SymmetricTensor2) { UpdateSymmetricTensor2(valueId, dt, world); } else { throw new NotImplementedException(); } }
private void Set(uint valueId, FieldDerivativeType valueDt, FEWorld world) { System.Diagnostics.Debug.Assert(world.IsFieldValueId(valueId)); ValueId = valueId; var mesh = world.Mesh; uint dim = world.Dimension; { if (dim == 2) { SutableRotMode = RotMode.RotMode2D; } else if (dim == 3) { SutableRotMode = RotMode.RotMode3D; } } FieldValue fv = world.GetFieldValue(valueId); if (fv.Type == FieldValueType.Vector2 || fv.Type == FieldValueType.Vector3) { Type = VectorFieldDrawerType.Vector; } else if (fv.Type == FieldValueType.SymmetricTensor2) { Type = VectorFieldDrawerType.SymmetricTensor2; } { DrawParts.Clear(); IList <uint> meshIds = mesh.GetIds(); foreach (uint meshId in meshIds) { VectorFieldDrawPart dp = new VectorFieldDrawPart(meshId, world); DrawParts.Add(dp); } } Update(world); }