public BodiesRingGenerator(float ovalHorizontal, float ovalVertical,
                            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(new ParticlesOvalGenerator(ovalHorizontal, ovalVertical),
                                       ringCenter, up, ringRadius, sectionStart, sectionEnd),
            bodyScaleMin, bodyScaleMax, bodyRadius, safetyDistance, oriPolicy)
 {
 }
 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 BodiesFieldGenerator(ParticlesFieldGenerator partFieldGen,
     float bodyScaleMin=1.0f, float bodyScaleMax=1.0f, float bodyRadius=0.0f,
     float safetyDistance = 0.0f, OrientPolicy oriPolicy = OrientPolicy.Random)
 {
     m_partFieldGen = partFieldGen;
     m_bodyScaleMin = bodyScaleMin;
     m_bodyScaleMax = bodyScaleMax;
     m_bodyRadius = bodyRadius;
     m_safetyDistance = safetyDistance;
     m_orientPolicy = oriPolicy;
     SetSeed(0);
 }
 public BodiesFieldGenerator(ParticlesFieldGenerator partFieldGen,
                             float bodyScaleMin   = 1.0f, float bodyScaleMax     = 1.0f, float bodyRadius = 0.0f,
                             float safetyDistance = 0.0f, OrientPolicy oriPolicy = OrientPolicy.Random)
 {
     m_partFieldGen   = partFieldGen;
     m_bodyScaleMin   = bodyScaleMin;
     m_bodyScaleMax   = bodyScaleMax;
     m_bodyRadius     = bodyRadius;
     m_safetyDistance = safetyDistance;
     m_orientPolicy   = oriPolicy;
     SetSeed(0);
 }
 public BodiesRingGenerator(float ovalHorizontal, float ovalVertical,
     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(new ParticlesOvalGenerator(ovalHorizontal, ovalVertical),
         ringCenter, up, ringRadius, sectionStart, sectionEnd),
         bodyScaleMin, bodyScaleMax, bodyRadius, safetyDistance, oriPolicy)
 {
 }
 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)
 {
 }