コード例 #1
0
        public override void render(float elapsedTime)
        {
            TgcModifiers modifiers = GuiController.Instance.Modifiers;
            Vector2      size      = (Vector2)modifiers.getValue("size");
            Vector3      position  = (Vector3)modifiers.getValue("position");

            collider.Center = position;
            collider.Radius = size.X;
            collider.Length = size.Y;

            if (TgcCollisionUtils.testSphereCylinder(collisionableSphere, collider))
            {
                collisionableSphere.setRenderColor(collisionColor);
            }
            else
            {
                collisionableSphere.setRenderColor(noCollisionColor);
            }

            if (TgcCollisionUtils.testAABBCylinder(collisionableAABB, collider))
            {
                collisionableAABB.setRenderColor(collisionColor);
            }
            else
            {
                collisionableAABB.setRenderColor(noCollisionColor);
            }

            if (TgcCollisionUtils.testCylinderCylinder(collisionableCylinder, collider))
            {
                collisionableCylinder.setRenderColor(collisionColor);
            }
            else
            {
                collisionableCylinder.setRenderColor(noCollisionColor);
            }


            collider.render();
            collisionableSphere.render();
            collisionableAABB.render();
            collisionableCylinder.render();
        }
コード例 #2
0
        public override void init()
        {
            collider              = new TgcFixedYBoundingCylinder(new Vector3(0, 0, 0), 3, 3);
            collisionableSphere   = new TgcBoundingSphere(new Vector3(-6, 0, 0), 3);
            collisionableAABB     = new TgcBoundingBox(new Vector3(4, 0, -1), new Vector3(6, 2, 1));
            collisionableCylinder = new TgcFixedYBoundingCylinder(new Vector3(0, 0, -6), 2, 2);

            GuiController.Instance.Modifiers.addVertex2f("size", new Vector2(1, 1), new Vector2(5, 10), new Vector2(2, 5));
            GuiController.Instance.Modifiers.addVertex3f("position", new Vector3(-20, -20, -20), new Vector3(20, 20, 20), new Vector3(0, 0, 0));

            collider.setRenderColor(Color.LimeGreen);
        }
コード例 #3
0
        public override void render(float elapsedTime)
        {
            TgcModifiers modifiers = GuiController.Instance.Modifiers;
            Vector2      size      = (Vector2)modifiers.getValue("size");
            Vector3      position  = (Vector3)modifiers.getValue("position");

            collider.Center = position;
            collider.Radius = size.X;
            collider.Length = size.Y;

            collider.updateValues();

            if (TgcCollisionUtils.testSphereCylinder(collisionableSphere, collider))
            {
                collisionableSphere.setRenderColor(collisionColor);
            }
            else
            {
                collisionableSphere.setRenderColor(noCollisionColor);
            }

            if (TgcCollisionUtils.testAABBCylinder(collisionableAABB, collider))
            {
                collisionableAABB.setRenderColor(collisionColor);
            }
            else
            {
                collisionableAABB.setRenderColor(noCollisionColor);
            }

            if (TgcCollisionUtils.testCylinderCylinder(collisionableCylinder, collider))
            {
                collisionableCylinder.setRenderColor(collisionColor);
            }
            else
            {
                collisionableCylinder.setRenderColor(noCollisionColor);
            }

            if (pickingTimeLeft > 0)
            {
                pickingTimeLeft -= elapsedTime;
            }
            else
            {
                collider.setRenderColor(noCollisionColor);
            }

            if (GuiController.Instance.D3dInput.buttonPressed(TgcViewer.Utils.Input.TgcD3dInput.MouseButtons.BUTTON_LEFT))
            {
                TgcPickingRay pickingRay = new TgcPickingRay();
                pickingRay.updateRay();
                if (TgcCollisionUtils.testRayCylinder(pickingRay.Ray, collider))
                {
                    pickingTimeLeft = PICKING_TIME;
                    collider.setRenderColor(pickingColor);
                }
            }

            collider.render();
            collisionableSphere.render();
            collisionableAABB.render();
            collisionableCylinder.render();
        }
コード例 #4
0
        public override void Render()
        {
            PreRender();

            var size     = (Vector2)Modifiers.getValue("size");
            var position = (Vector3)Modifiers.getValue("position");

            collider.Center = position;
            collider.Radius = size.X;
            collider.Length = size.Y;

            collider.updateValues();

            if (TgcCollisionUtils.testSphereCylinder(collisionableSphere, collider))
            {
                collisionableSphere.setRenderColor(collisionColor);
            }
            else
            {
                collisionableSphere.setRenderColor(noCollisionColor);
            }

            if (TgcCollisionUtils.testAABBCylinder(collisionableAABB, collider))
            {
                collisionableAABB.setRenderColor(collisionColor);
            }
            else
            {
                collisionableAABB.setRenderColor(noCollisionColor);
            }

            if (TgcCollisionUtils.testCylinderCylinder(collisionableCylinder, collider))
            {
                collisionableCylinder.setRenderColor(collisionColor);
            }
            else
            {
                collisionableCylinder.setRenderColor(noCollisionColor);
            }

            if (pickingTimeLeft > 0)
            {
                pickingTimeLeft -= ElapsedTime;
            }
            else
            {
                collider.setRenderColor(noCollisionColor);
            }

            if (TgcD3dInput.Instance.buttonPressed(TgcD3dInput.MouseButtons.BUTTON_LEFT))
            {
                var pickingRay = new TgcPickingRay();
                pickingRay.updateRay();
                if (TgcCollisionUtils.testRayCylinder(pickingRay.Ray, collider))
                {
                    pickingTimeLeft = PICKING_TIME;
                    collider.setRenderColor(pickingColor);
                }
            }

            collider.render();
            collisionableSphere.render();
            collisionableAABB.render();
            collisionableCylinder.render();

            PostRender();
        }