Пример #1
0
        public static void SetForceEffectScene(ISimulator simulator)
        {
            int echelonCount = 7;
            var chain        = new IRigidBody[echelonCount];

            for (int i = 0; i < echelonCount; i++)
            {
                chain[i] = SetSimpleRigidBody <ISphereShape, SphereShapeDescriptor>(simulator, new RigidBodyDescriptor(i == 0 ? MotionType.Static : MotionType.Dynamic, Matrices.Translate(-i, 10, 0), _motionColor), new SphereShapeDescriptor(0.4f), new MaterialDescriptor(0.5f, 0.5f));
                if (i > 0)
                {
                    simulator.ConstraintsFactory.CreateSphericalJoint(
                        new SphericalJointDescriptor(
                            new Vector3(1f, 0, 0), new Vector3(), chain[i], chain[i - 1]));
                }
            }

            for (int i = 0; i < 2 * echelonCount; i++)
            {
                SetSimpleRigidBody <IBoxShape, BoxShapeDescriptor>(simulator, new RigidBodyDescriptor(MotionType.Dynamic, Matrices.Translate(-i, (i + 1) * 0.1f / 2, 10), _motionColor), new BoxShapeDescriptor((i + 1) * 0.1f, (i + 1) * 0.1f, (i + 1) * 0.1f), new MaterialDescriptor(0.5f, 0.5f));
            }

            simulator.AddForceEffect(new AttractionForceEffect(chain[echelonCount - 1]));

            SetGround(simulator, new MaterialDescriptor(0.5f, 0.5f));
        }
Пример #2
0
        private void renderedControl1_InitializeRender(object sender, RenderEventArgs e)
        {
            _render = e.Render;
            _renderingVisitor = new RenderingVisitor(_render);
            _simulator = new DigitalRuneSimulator();
            _simulator.AddForceEffect(new GravityForceEffect());

            Samples.SetSimpleScene(_simulator);

            _previousTickCount = Environment.TickCount;
            _startTickCount = _previousTickCount;
        }
Пример #3
0
        private void renderedControl1_InitializeRender(object sender, RenderEventArgs e)
        {
            _render           = e.Render;
            _renderingVisitor = new RenderingVisitor(_render);
            _simulator        = new DigitalRuneSimulator();
            _simulator.AddForceEffect(new GravityForceEffect());

            Samples.SetSimpleScene(_simulator);

            _previousTickCount = Environment.TickCount;
            _startTickCount    = _previousTickCount;
        }