RenderStack 11.06.1
Public Member Functions | Public Attributes | Protected Member Functions | Properties
example.UI.SceneManager Class Reference
Inheritance diagram for example.UI.SceneManager:
example.UI.Service

List of all members.

Public Member Functions

void Connect (MaterialManager materialManager)
Model AddModel (Model model)
void AddFloor (float size)
void AddSimpleScene ()

Public Attributes

Vector3 Home = new Vector3(0.0f, 4.0f, 15.0f)

Protected Member Functions

override void InitializeService ()

Properties

override string Name [get]
Camera Camera [get]
Camera Camera2D [get]
Group RenderGroup [get]
FrameController CameraControls [get]

Detailed Description

Definition at line 37 of file example.UI/SceneManager.cs.


Member Function Documentation

void example.UI.SceneManager.Connect ( MaterialManager  materialManager)

Definition at line 56 of file example.UI/SceneManager.cs.

        {
            this.materialManager    = materialManager;

            InitializationDependsOn(materialManager);
        }
override void example.UI.SceneManager.InitializeService ( ) [protected, virtual]

Implements example.UI.Service.

Definition at line 65 of file example.UI/SceneManager.cs.

        {
            AddFloor(20.0f);
            AddSimpleScene();

            InitializeCameras();
        }
Model example.UI.SceneManager.AddModel ( Model  model)

Definition at line 73 of file example.UI/SceneManager.cs.

        {
            if(model == null)
            {
                throw new System.ArgumentNullException();
            }

            renderGroup.Models.Add(model);

            return model;
        }
void example.UI.SceneManager.AddFloor ( float  size)

Definition at line 85 of file example.UI/SceneManager.cs.

References RenderStack.Geometry.GeometryOperation.Destination.

        {
            Geometry g = new Cube(size, 1.0, size);
            g = new SubdivideGeometryOperation(g).Destination;
            g = new SubdivideGeometryOperation(g).Destination;
            g = new SubdivideGeometryOperation(g).Destination;
            GeometryMesh floorMesh = new GeometryMesh(g, NormalStyle.PolygonNormals);

            var floorModel = new Model(
                "Cube (floor)",
                floorMesh,
                materialManager.GridMaterial,
                0.0f, -0.5f, 0.0f
            );

            AddModel(floorModel);
        }
void example.UI.SceneManager.AddSimpleScene ( )

Definition at line 103 of file example.UI/SceneManager.cs.

References RenderStack.Math.Matrix4.CreateRotation(), RenderStack.Math.Conversions.DegreesToRadians(), RenderStack.Geometry.Geometry.Geometry(), RenderStack.Geometry.Geometry.Transform(), and RenderStack.Math.Vector3.UnitZ.

        {
            //  Shapes here have local 0,0,0 at center of mass
            Geometry cubeGeometry = new RenderStack.Geometry.Shapes.Cube(1.0f, 1.0f, 1.0f);
            GeometryMesh cubeMesh = new GeometryMesh(cubeGeometry, NormalStyle.PolygonNormals);

            GeometryMesh sphereMesh = new GeometryMesh(
                new RenderStack.Geometry.Shapes.Sphere(0.75, 20, 12),
                NormalStyle.CornerNormals
            );
            Geometry cylinderGeometry = new RenderStack.Geometry.Shapes.Cylinder(-0.5f, 0.5f, 0.5f, 24);
            cylinderGeometry.Transform(
                Matrix4.CreateRotation(
                    Conversions.DegreesToRadians(90.0f),
                    Vector3.UnitZ
                ) 
            );
            GeometryMesh cylinderMesh = new GeometryMesh(cylinderGeometry, NormalStyle.CornerNormals);
            Geometry coneGeometry = new RenderStack.Geometry.Shapes.Cone(-1.0f / 3.0f, 2.0f / 3.0f, 0.75f, 0.0f, true, false, 24, 10);
            coneGeometry.Transform(
                Matrix4.CreateRotation(
                    Conversions.DegreesToRadians(90.0f),
                    Vector3.UnitZ
                )
            );
            GeometryMesh coneMesh = new GeometryMesh(coneGeometry, NormalStyle.CornerNormals);

            /*  Models  */ 
            float gap = 2.5f;
            Material pearl      = materialManager["pearl"]  ;
            Material gold       = materialManager["gold"]   ;
            Material red        = materialManager["red"]    ;
            Material green      = materialManager["green"]  ;
            Material cyan       = materialManager["cyan"]   ;
            Material blue       = materialManager["blue"]   ;
            Material magenta    = materialManager["magenta"];
            Material pink       = materialManager["pink"]   ;
            AddModel(new Model("cube",     cubeMesh,     pearl,  -3.5f * gap, 0.5f,         0.0f));
            AddModel(new Model("box",      cubeMesh,     gold,   -2.5f * gap, 0.5f,         0.0f));
            AddModel(new Model("sphere",   sphereMesh,   red,    -1.5f * gap, 0.75f,        0.0f));
            AddModel(new Model("sphere",   sphereMesh,   green,  -0.5f * gap, 0.75f,        0.0f));
            AddModel(new Model("cylinder", cylinderMesh, cyan,    0.5f * gap, 0.5f,         0.0f));
            AddModel(new Model("cylinder", cylinderMesh, blue,    1.5f * gap, 0.5f,         0.0f));
            AddModel(new Model("cone",     coneMesh,     magenta, 2.5f * gap, 1.0f / 3.0f,  0.0f));
            AddModel(new Model("cone",     coneMesh,     pink,    3.5f * gap, 1.0f / 3.0f,  0.0f));
        }

Member Data Documentation

Vector3 example.UI.SceneManager.Home = new Vector3(0.0f, 4.0f, 15.0f)

Definition at line 149 of file example.UI/SceneManager.cs.


Property Documentation

override string example.UI.SceneManager.Name [get]

Reimplemented from example.UI.Service.

Definition at line 40 of file example.UI/SceneManager.cs.

Camera example.UI.SceneManager.Camera [get]

Definition at line 51 of file example.UI/SceneManager.cs.

Camera example.UI.SceneManager.Camera2D [get]

Definition at line 52 of file example.UI/SceneManager.cs.

Group example.UI.SceneManager.RenderGroup [get]

Definition at line 53 of file example.UI/SceneManager.cs.

FrameController example.UI.SceneManager.CameraControls [get]

Definition at line 54 of file example.UI/SceneManager.cs.


The documentation for this class was generated from the following file: