public BodiesRingGenerator(ParticlesPlaneGenerator sliceGenerator, Vector3 ringCenter, Vector3 up, float ringRadius, float sectionStart = 0.0f, float sectionEnd = (float)(2.0 * Math.PI), float bodyScaleMin = 1.0f, float bodyScaleMax = 1.0f, float bodyRadius = 0.0f, float safetyDistance = 0.0f) : base(new ParticlesRingGenerator(sliceGenerator, ringCenter, up, ringRadius, sectionStart, sectionEnd), bodyScaleMin, bodyScaleMax, bodyRadius, safetyDistance) { }
public ParticlesRingGenerator(ParticlesPlaneGenerator planeGenerator, Vector3 ringCenter, Vector3 up, float ringRadius, float sectionStart = 0.0f, float sectionEnd = (float)(2.0 * Math.PI)) { m_ringCenter = ringCenter; m_ringZAxis = up.Normalized(); m_ringRadius = ringRadius; m_sectionStart = sectionStart; m_sectionEnd = sectionEnd; m_planeGenerator = planeGenerator; if (Math.Abs(m_ringZAxis.X) < c_eps && Math.Abs(m_ringZAxis.Y) < c_eps) { m_ringXAxis = new Vector3(1.0f, 0.0f, 0.0f); } else { m_ringXAxis = new Vector3(m_ringZAxis.Y, -m_ringZAxis.X, 0.0f); m_ringXAxis.Normalize(); } m_ringYAxis = Vector3.Cross(m_ringXAxis, m_ringZAxis); }
public BodiesRingGenerator(ParticlesPlaneGenerator sliceGenerator, Vector3 ringCenter, Vector3 up, float ringRadius, float sectionStart = 0.0f, float sectionEnd = (float)(2.0*Math.PI), float bodyScaleMin = 1.0f, float bodyScaleMax = 1.0f, float bodyRadius = 0.0f, float safetyDistance = 0.0f, OrientPolicy oriPolicy = OrientPolicy.Random) : base(new ParticlesRingGenerator(sliceGenerator, ringCenter, up, ringRadius, sectionStart, sectionEnd), bodyScaleMin, bodyScaleMax, bodyRadius, safetyDistance, oriPolicy) { }
public ParticlesRingGenerator(ParticlesPlaneGenerator planeGenerator, Vector3 ringCenter, Vector3 up, float ringRadius, float sectionStart = 0.0f, float sectionEnd = (float)(2.0*Math.PI)) { m_ringCenter = ringCenter; m_ringZAxis = up.Normalized(); m_ringRadius = ringRadius; m_sectionStart = sectionStart; m_sectionEnd = sectionEnd; m_planeGenerator = planeGenerator; if (Math.Abs(m_ringZAxis.X) < c_eps && Math.Abs(m_ringZAxis.Y) < c_eps) { m_ringXAxis = new Vector3(1.0f, 0.0f, 0.0f); } else { m_ringXAxis = new Vector3(m_ringZAxis.Y, -m_ringZAxis.X, 0.0f); m_ringXAxis.Normalize(); } m_ringYAxis = Vector3.Cross(m_ringXAxis, m_ringZAxis); }