Пример #1
0
        public ParallelRender(Direct3d d3d, GEMSParallel parallel, GEMSMesh mesh)
            : base(d3d)
        {
            this.parallel = parallel;
            this.parallel.GEMSParallel_DataChanged += new GEMSParallel.GEMSParallel_DataChangedEventHandler(OnGEMSParallelDataChanged);

            this.mesh = mesh;
        }
Пример #2
0
 //our default constructor used to initialize the device.
 public Xilath()
 {
     direct3d = new Direct3d();                                             //instantiate the Direct3d object
     if (!direct3d.InitGraphics())                                          //if we cannot initialize the device then
     {
         MessageBox.Show("Device could not be created. Program quiting.."); //show an appropriate          message
     }
 }
Пример #3
0
        public Camera ( Direct3d d3d )
        {
            this.d3d = d3d;
            this.d3d.Resize +=new EventHandler ( OnD3dResize );
            this.d3d.DxLost +=new Direct3d.DxDirect3dDelegate ( d3d_DxLost );
            this.d3d.DxRestore +=new Direct3d.DxDirect3dDelegate ( d3d_DxRestore );

            viewArcball.SetWindow ( d3d.ClientSize.Width , d3d.ClientSize.Height );
        }
Пример #4
0
        public GEMSProjectRender(Direct3d d3d)
            : base(d3d)
        {
            d3d.DxRender3d += new Direct3d.DxDirect3dDelegate(d3d_DxRender3d);

            //Create a camera
            camera              = new Camera(d3d);
            camera.ViewChanged += new Camera.ViewChangedEventHandler(PerformViewChanged);
        }
Пример #5
0
        private Line line;  //Draw device

        public BoundingBoxRender(Direct3d d3d, Vector3 minVector3, Vector3 maxVector3)
            : base(d3d)
        {
            base.minVector3 = minVector3;
            base.maxVector3 = maxVector3;

            line       = new Line(d3d.Dx);
            line.Width = Direct3dRender.DefaultLineWidth;
        }
Пример #6
0
 public GEMSSingleRender(Direct3d d3d, GEMSSingle source, GEMSProjectRender render)
     : base(d3d)
 {
     if (source != null)
     {
         this.source = source;
         this.source.GEMSSingle_DataChanged += new GEMSSingle.GEMSSingle_DataChangedEventHandler(GEMSSingle_DataChanged);
         this.parentRender = render;
     }
 }
Пример #7
0
        public static GeometryRender Create(Direct3d d3d, GeometryModel source)
        {
            GeometryRender render = null;

            //Create the geometry object based type
            switch (source.GetType().Name)
            {
            case "ConeModel":
                render = new ConeRender(d3d, source);
                break;

            case "CylinderModel":
                render = new CylinderRender(d3d, source);
                break;

            case "CuboidModel":
                render = new CuboidRender(d3d, source);
                break;

            case "LineModel":
                render = new LineRender(d3d, source);
                break;

            case "PointModel":
                render = new PointRender(d3d, source);
                break;

            case "RectangleModel":
                render = new RectangleRender(d3d, source);
                break;

            case "SphereModel":
                render = new SphereRender(d3d, source);
                break;

            case "RoundModel":
                render = new RoundRender(d3d, source);
                break;

            case "SingleEOSymbolModel":
                render = new SingleEOSymbolRender(d3d, source);
                break;

            default:
                break;
            }

            if (render != null)
            {
                render.Initialize( );
            }

            return(render);
        }
Пример #8
0
        public DomainRender(Direct3d d3d, GEMSComputationalDomain domain) : base(d3d, Vector3.Empty, Vector3.Empty)
        {
            this.domain = domain;

            if (domain != null)
            {
                OnGEMSComputationalDomainDataChanged(null, null);

                domain.GEMSComputationalDomain_DataChanged += new GEMSComputationalDomain.GEMSComputationalDomain_DataChangedEventHandler(OnGEMSComputationalDomainDataChanged);
            }
        }
Пример #9
0
        public PointRender(Direct3d d3d, Vector3 position, Color color)
            : base(d3d, null)
        {
            model            = new PointModel();
            model.Position   = position;
            model.ModelColor = GeometryRender.DefaultPointColor;

            base.source = model;

            Initialize();
        }
Пример #10
0
        public GridRender(Direct3d d3d, Camera camera, GEMSEnvironment enviroment)
            : base(d3d)
        {
            this.enviroment    = enviroment;
            this.gridDisplayed = enviroment.GridDisplayed;
            this.gridPlane     = enviroment.GridPlane;
            this.gridOffset    = enviroment.GidOffset;
            this.gridSize      = enviroment.GridSize.Value;

            this.camera = camera;
            enviroment.GridOptionChanged += new GEMSEnvironment.GridOptionChangedEventHandler(OnGridOptionChanged);
            camera.ViewChanged           += new Camera.ViewChangedEventHandler(OnViewChanged);
            camera.ProjectionChanged     += new Camera.ProjectionChangedEventHandler(OnProjectionChanged);

            isDisplayed = IsDisplay(camera.Look);
        }
Пример #11
0
        public AxisRender(Direct3d d3d, Camera camera)
            : base(d3d)
        {
            lineRender = new Line(d3d.Dx);

            this.camera                    = camera;
            this.camera.ViewChanged       += new Camera.ViewChangedEventHandler(camera_ViewChanged);
            this.camera.ProjectionChanged += new Camera.ProjectionChangedEventHandler(camera_ProjectionChanged);

            System.Drawing.Font localFont = new System.Drawing.Font("Verdana", 10.0f, FontStyle.Bold);
            font = new Microsoft.DirectX.Direct3D.Font(d3d.Dx, localFont);

            xAxisConeMatrial = GraphicsUtility.InitMaterial(Direct3dRender.DefaultXAxisColor);
            yAxisConeMatrial = GraphicsUtility.InitMaterial(Direct3dRender.DefaultYAxisColor);
            zAxisConeMatrial = GraphicsUtility.InitMaterial(Direct3dRender.DefaultZAxisColor);
        }
Пример #12
0
        /// <summary>
        /// Occurs when it is time to render 3d objects.
        /// </summary>
        private void d3d_DxRender3d(Direct3d d3d, Device dx)
        {
            //Console.WriteLine ( "viewPortWidth = {0},viewPortHeight = {1}" , viewPortWidth , viewPortHeight );

            SetupLight( );
            d3d.View       = camera.ViewMatrix;
            d3d.Projection = camera.ProjectionMatrix;

            if (isFit)
            {
                ComputeFitViewPort( );
                isFit = false;
            }

            if (m_project != null)
            {
                Render( );
            }
        }
Пример #13
0
		/// <summary>
		/// Called each frame to render the mesh
		/// </summary>
		private void d3dModel_DxRender3d(Direct3d d3d, Device dx)
		{
			if (mMesh == null)
				return;
				
			// Setup the lights
			dx.Lights[0].Enabled = true;
			dx.Lights[0].Type = LightType.Directional;
			dx.Lights[0].Direction = new Vector3(0, 0, 1);
			dx.Lights[0].Diffuse = Color.White;
			dx.Lights[0].Position = new Vector3(0, 0, 0);
			dx.RenderState.NormalizeNormals = true;	

			// Lighting only when there are normals
			dx.RenderState.Lighting = (int)(mMesh.M.VertexFormat & VertexFormats.Normal) != 0;

			// Setup camera		
			dx.Transform.Projection = Matrix.PerspectiveFovLH(
								(float)Math.PI / 4, 640f / 480f, 50.0f, 2000.0f);
			dx.Transform.View = Matrix.LookAtLH(new Vector3(0, 0, -220),
						new Vector3(0.0f, 0.0f, 0.0f), new Vector3(0.0f, 1.0f, 0.0f));
			
			// Use mip map
			dx.SamplerState[0].MipFilter = TextureFilter.Linear;
			dx.SamplerState[0].MinFilter = TextureFilter.Linear;
			dx.SamplerState[0].MagFilter = TextureFilter.Linear;
			
			// Adjust mesh to fit view port	
			Vector3 center;
			float radius = mMesh.BoundingSphereMin(out center);			
			dx.Transform.World = Matrix.Translation(-1*center)
								* Matrix.Scaling(1/radius, 1/radius, 1/radius)
								* Matrix.Scaling(90, 90, 90)
								* Matrix.RotationQuaternion(mOrientation);
			
			// Draw mesh using mesh specified materials
			mMesh.Draw(true);
			
			// For an interesting effect, comment above line and uncomment following lines
			//dx.Material = GraphicsUtility.InitMaterial(Color.Red);
			//mMesh.Draw(true);
		}
Пример #14
0
 public ConeRender(Direct3d d3d, GeometryModel source)
     : base(d3d, source)
 {
 }
Пример #15
0
 private void d3d_DxLoaded(Direct3d d3d, Device dx)
 {
     sceneRender = new GEMSProjectRender(d3d);
 }
Пример #16
0
 public LineRender(Direct3d d3d, GeometryModel source)
     : base(d3d, source)
 {
     line       = new Line(d3d.Dx);
     line.Width = Direct3dRender.DefaultLineWidth;
 }
Пример #17
0
 void d3d_DxLost ( Direct3d d3d , Device dx )
 {
     dxLost = true;
 }
Пример #18
0
 void d3d_DxRestore ( Direct3d d3d , Device dx )
 {
     dxLost = false;
 }
Пример #19
0
 public SingleEOSymbolRender(Direct3d d3d, GeometryModel source)
     : base(d3d, source)
 {
 }
Пример #20
0
 public RectangleRender(Direct3d d3d, GeometryModel source)
     : base(d3d, source)
 {
 }
Пример #21
0
 public PointsRender(Direct3d d3d, List <CustomVertex.PositionColored> positions)
     : base(d3d)
 {
     this.positions = positions;
 }
Пример #22
0
 public Direct3dRender(Direct3d d3d)
 {
     this.d3d            = d3d;
     this.d3d.DxLost    += new Direct3d.DxDirect3dDelegate(d3d_DxLost);
     this.d3d.DxRestore += new Direct3d.DxDirect3dDelegate(d3d_DxRestore);
 }
Пример #23
0
 public GeometryRender(Direct3d d3d, GeometryModel source)
     : base(d3d)
 {
     this.source = source;
 }