/// /// This file is part of ILNumerics Community Edition. /// /// ILNumerics Community Edition - high performance computing for applications. /// Copyright (C) 2006 - 2012 Haymo Kutschbach, http://ilnumerics.net /// /// ILNumerics Community Edition is free software: you can redistribute it and/or modify /// it under the terms of the GNU General Public License version 3 as published by /// the Free Software Foundation. /// /// ILNumerics Community Edition is distributed in the hope that it will be useful, /// but WITHOUT ANY WARRANTY; without even the implied warranty of /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /// GNU General Public License for more details. /// /// You should have received a copy of the GNU General Public License /// along with ILNumerics Community Edition. See the file License.txt in the root /// of your distribution package. If not, see . /// /// In addition this software uses the following components and/or licenses: /// /// ================================================================================= /// The Open Toolkit Library License /// /// Copyright (c) 2006 - 2009 the Open Toolkit library. /// /// Permission is hereby granted, free of charge, to any person obtaining a copy /// of this software and associated documentation files (the "Software"), to deal /// in the Software without restriction, including without limitation the rights to /// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of /// the Software, and to permit persons to whom the Software is furnished to do /// so, subject to the following conditions: /// /// The above copyright notice and this permission notice shall be included in all /// copies or substantial portions of the Software. /// /// ================================================================================= /// using System.Drawing; namespace ILNumerics.Drawing.Shapes { public class ILQuads : ILCompositeShape { #region constructors /// /// create quads, for delayed vertex definition /// /// hosting panel /// number of vertices to create. Vertices must be filled /// with data manually afterwards. public ILQuads (ILPanel panel, int numVertices) : base (panel, numVertices, 4) { m_fillColor = Color.Green; } ///// ///// create quads, define vertex positions ///// ///// hosting panel ///// x coordinates vector ///// y coordinates vector ///// z coordinates vector //public ILQuads (ILPanel panel, ILBaseArray X, ILBaseArray Y, ILBaseArray Z) // : base (panel,4,X,Y,Z) { // m_fillColor = Color.Green; //} ///// ///// create quads, indexed storage ///// ///// hosting panel ///// x coordinates vector ///// y coordinates vector ///// z coordinates vector ///// Mapping of shapes, composes quads out of vertices. Matrix having ///// 4 rows. Every element in a column specifies the index of a vertex according to its position in X,Y,Z. ///// The 4 elements in a column therefore compose a single quad. Vertices may ///// get used arbitrary times (or not at all). All elements must be positive integer values in ///// range 0...[-1]. //public ILQuads (ILPanel panel, ILBaseArray X, ILBaseArray Y, ILBaseArray Z, ILBaseArray mapping) // : base (panel,4,X,Y,Z,mapping) { // m_fillColor = Color.Green; //} ///// ///// create quads, flat shading ///// ///// hosting panel ///// x coordinates vector ///// y coordinates vector ///// z coordinates vector ///// Fill color for all shapes. ///// Composes shapes out of given vertices. Matrix having 4 rows. ///// Every element in a column specifies the index of a vertex according to its position in X,Y,Z. ///// The 4 elements in a column therefore compose a single quad. Vertices may ///// get used arbitrary times (or not at all). All elements must be positive integer values in ///// range 0...[vertCount-1]. ///// Mapping composes quads out of vertices. Matrix having ///// 4 rows. Every element in a column specifies the index of a vertex according to its position in X,Y,Z. ///// The 4 elements in a column therefore compose a single quad. Vertices may ///// get used arbitrary times (or not at all). All elements must be positive integer values in ///// range 0...[-1]. //public ILQuads (ILPanel panel, ILBaseArray X, ILBaseArray Y, ILBaseArray Z, Color color, ILBaseArray mapping) // : base (panel,4,X,Y,Z,mapping) { // m_fillColor = color; //} ///// ///// create quads, interpolated shading ///// ///// hosting panel ///// x coordinates vector ///// y coordinates vector ///// z coordinates vector ///// matrix with ///// rows, 3 columns for (R,G,B) or 4 columns for ///// (A,R,G,B) for every vertex specified by X,Y,Z. Elements must range from 0..255. If colors ///// has 3 columns only, alpha values of 255 are used as default. ///// Mapping of shapes, composes quads out of vertices. Matrix having ///// 4 rows. Every element in a column references a vertex according to its position index in vectors X,Y,Z. ///// The 4 elements in a column therefore compose a single quad. Vertices may ///// get used arbitrary times (or not at all). All elements must be positive integer values in ///// range 0...[-1]. //public ILQuads (ILPanel panel, ILBaseArray X, ILBaseArray Y, ILBaseArray Z, ILBaseArray colors, ILBaseArray mapping) // : base (panel,4,X,Y,Z,colors,mapping) { // m_fillColor = Color.Green; //} #endregion } }