Free cookie consent management tool by TermsFeed Policy Generator

source: branches/HeuristicLab.Problems.GaussianProcessTuning/ILNumerics.2.14.4735.573/Drawing/Platform/OpenGL/ILOGLAxis.cs @ 10903

Last change on this file since 10903 was 9102, checked in by gkronber, 12 years ago

#1967: ILNumerics source for experimentation

File size: 5.0 KB
Line 
1///
2///    This file is part of ILNumerics Community Edition.
3///
4///    ILNumerics Community Edition - high performance computing for applications.
5///    Copyright (C) 2006 - 2012 Haymo Kutschbach, http://ilnumerics.net
6///
7///    ILNumerics Community Edition is free software: you can redistribute it and/or modify
8///    it under the terms of the GNU General Public License version 3 as published by
9///    the Free Software Foundation.
10///
11///    ILNumerics Community Edition is distributed in the hope that it will be useful,
12///    but WITHOUT ANY WARRANTY; without even the implied warranty of
13///    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14///    GNU General Public License for more details.
15///
16///    You should have received a copy of the GNU General Public License
17///    along with ILNumerics Community Edition. See the file License.txt in the root
18///    of your distribution package. If not, see <http://www.gnu.org/licenses/>.
19///
20///    In addition this software uses the following components and/or licenses:
21///
22///    =================================================================================
23///    The Open Toolkit Library License
24///   
25///    Copyright (c) 2006 - 2009 the Open Toolkit library.
26///   
27///    Permission is hereby granted, free of charge, to any person obtaining a copy
28///    of this software and associated documentation files (the "Software"), to deal
29///    in the Software without restriction, including without limitation the rights to
30///    use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
31///    the Software, and to permit persons to whom the Software is furnished to do
32///    so, subject to the following conditions:
33///
34///    The above copyright notice and this permission notice shall be included in all
35///    copies or substantial portions of the Software.
36///
37///    =================================================================================
38///   
39
40using System;
41using System.Collections.Generic;
42using OpenTK;
43using OpenTK.Platform;
44using OpenTK.Graphics;
45using OpenTK.Graphics.OpenGL;
46using OpenTK.Graphics.OpenGL.Enums;
47using System.Drawing;
48using ILNumerics.Drawing.Interfaces;
49using ILNumerics.Drawing.Labeling;
50using ILNumerics.Drawing;
51
52namespace ILNumerics.Drawing.Platform.OpenGL {
53    /// <summary>
54    /// OpenGL implementation for ILAxis
55    /// </summary>
56    public abstract class ILOGLAxis : ILAxis, IDisposable {
57
58        #region attributes
59        private int m_primitivCount;
60        #endregion
61
62        #region constructor
63        internal ILOGLAxis (AxisNames name, ILClippingData clippingView,
64                            ILLayoutData layoutData,
65                            ILOGLPanel panel)
66            : base (name,clippingView,layoutData,panel) {
67            m_invalidated = true;
68            panel.GraphicsDeviceCreated += new ILGraphicsDeviceCreatedEvent(initialize);
69            panel.GraphicsDeviceReset += new ILGraphicsDeviceResetEvent(configure);
70        }
71        #endregion
72
73        #region helper functions
74        private void initialize(object sender, EventArgs eventArgs) {
75            if (m_panel == null || m_panel.GetDeviceContext() == null)
76                return;
77            Invalidate();
78            // todo: setup font + sprite objects for OpenGL ?
79            m_primitivCount = countPrimitves();
80            //m_labeledTicks.TextRenderer = m_panel.TextRendererManager.CreateInstance(
81            //            "ILNumerics.Drawing.TextRenderer.ILGDIRenderer" ,null);
82            //m_label.TextRenderer = m_panel.TextRendererManager.CreateInstance(
83            //            "ILNumerics.Drawing.TextRenderer.ILGDIRenderer" ,null);
84        }
85
86        void configure(object sender, EventArgs eventArgs) {
87        }
88
89#if DEBUG
90        private void debub_write_mat(string prefix) {
91            double[] modmat = new double[16];
92            GL.GetDouble(GetPName.ProjectionMatrix,modmat);
93            System.Diagnostics.Debug.Write(prefix + new ILArray<double>(modmat,4,4).ToString());
94        }
95#endif
96
97        protected void ConfigureOGLLineProperties(LineStyle style, int width) {
98            int stipFact = 0;
99            short stipple = ILPanel.StippleFromLineStyle(style,ref stipFact);
100            GL.LineWidth(width);
101            if (style == LineStyle.Solid || style == LineStyle.None) {
102                GL.Disable(EnableCap.LineStipple);
103            } else {
104                GL.Enable(EnableCap.LineStipple);
105                GL.LineStipple (stipFact,stipple);
106            }
107        }
108        #endregion
109
110        #region ILAxis abstract overrides
111        public override void Dispose()
112        {
113            m_invalidated = true;
114            base.Dispose();
115        }
116
117        public override void PrepareMeshes(ILRenderProperties p) {
118            return;
119        }
120
121        public override void PrepareLabels(ILRenderProperties p) {
122            return;
123        }
124
125        #endregion
126         
127
128    }
129}
Note: See TracBrowser for help on using the repository browser.