private bool SetupCamera(BrActor *node)
        {
            if (node == null || node->Type != BrActorTypes.BR_ACTOR_CAMERA)
            {
                return(false);
            }
            var cam = (BrCamera *)node->TypeData;

            projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(cam->FieldOfView.ToDegrees().ToFloat()), cam->Aspect.ToFloat(), cam->Near.ToFloat(), cam->Far.ToFloat());
            view       = Matrix.Invert(Helper.XNAMatrixFromBrMatrix34(&node->Transform.Matrix));
            return(true);
        }
        private void RenderModel(BrActor *node, BrModel *model, BrMaterial *material, Matrix world, BrRenderStyles renderStyle)
        {
            // TODO: Use renderStyle to affect the way we render
            BasicEffect.World        = world;
            BasicEffect.DiffuseColor = Color.White.ToVector3(); // RandomColor().ToVector3();
            var m = ResolveModel(model);

            foreach (var p in BasicEffect.CurrentTechnique.Passes)
            {
                p.Apply();
                m.Render(model);
            }
        }
        private void SetupLights(BrActor *node)
        {
            if (node == null)
            {
                return;
            }

            if (node->Type == BrActorTypes.BR_ACTOR_LIGHT)
            {
                var light = (BrLight *)node->TypeData;
                // TODO: Implement lights
            }

            SetupLights(node->FirstChild);
            SetupLights(node->Next);
        }
        private void RenderNode(BrActor *node, Matrix world)
        {
            if (node == null)
            {
                return;
            }

            var newWorld = Helper.XNAMatrixFromBrMatrix34(&node->Transform.Matrix) * world;

            if (node->Type == BrActorTypes.BR_ACTOR_MODEL && node->Model != null)
            {
                RenderModel(node, node->Model, node->Material, newWorld, node->RenderStyle);
            }

            RenderNode(node->FirstChild, newWorld);
            RenderNode(node->Next, world);
        }