public void AddShape(ObiEmitterShape shape) { if (!emitterShapes.Contains(shape)) { emitterShapes.Add(shape); shape.particleSize = (emitterMaterial != null) ? emitterMaterial.GetParticleSize(solver.parameters.mode) : 0.1f; shape.GenerateDistribution(); distEnumerator = GetDistributionEnumerator(); } }
/** * Sets particle solid radii to half of the fluids rest distance. */ public void SetParticleRestRadius() { if (!InSolver) { return; } // recalculate rest distance and particle mass: float restDistance = (emitterMaterial != null) ? emitterMaterial.GetParticleSize(solver.parameters.mode) : 0.1f; for (int i = 0; i < particleIndices.Length; i++) { solidRadii[i] = restDistance * 0.5f; } PushDataToSolver(ParticleData.SOLID_RADII); }
public override void OnInspectorGUI() { serializedObject.UpdateIfRequiredOrScript(); Editor.DrawPropertiesExcluding(serializedObject, "m_Script"); EditorGUILayout.HelpBox("Particle mass (kg):\n" + "2D:" + material.GetParticleMass(Oni.SolverParameters.Mode.Mode2D) + "\n" + "3D;" + material.GetParticleMass(Oni.SolverParameters.Mode.Mode3D) + "\n\n" + "Particle size:\n" + "2D:" + material.GetParticleSize(Oni.SolverParameters.Mode.Mode2D) + "\n" + "3D;" + material.GetParticleSize(Oni.SolverParameters.Mode.Mode3D), MessageType.Info); // Apply changes to the serializedProperty if (GUI.changed) { serializedObject.ApplyModifiedProperties(); material.CommitChanges(); } }