![]()
|
polylines.h00001 // 00002 // polylines.h 00003 // 00004 // Copyright (C) 1996 Limit Point Systems, Inc. 00005 // 00006 // Author: Curtis Janssen <cljanss@limitpt.com> 00007 // Maintainer: LPS 00008 // 00009 // This file is part of the SC Toolkit. 00010 // 00011 // The SC Toolkit is free software; you can redistribute it and/or modify 00012 // it under the terms of the GNU Library General Public License as published by 00013 // the Free Software Foundation; either version 2, or (at your option) 00014 // any later version. 00015 // 00016 // The SC Toolkit is distributed in the hope that it will be useful, 00017 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00019 // GNU Library General Public License for more details. 00020 // 00021 // You should have received a copy of the GNU Library General Public License 00022 // along with the SC Toolkit; see the file COPYING.LIB. If not, write to 00023 // the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 00024 // 00025 // The U.S. Government is granted a limited license as per AL 91-7. 00026 // 00027 00028 #ifndef _util_render_polylines_h 00029 #define _util_render_polylines_h 00030 00031 #include <util/keyval/keyval.h> 00032 #include <util/render/object.h> 00033 00034 namespace sc { 00035 00036 class RenderedPolylines: public RenderedObject { 00037 public: 00038 enum Coloring { None, Vertex }; 00039 private: 00040 RenderedPolylines::Coloring coloring_; 00041 int nvertex_; 00042 int npolyline_; 00043 int *nvertex_in_polyline_; 00044 int **polylines_; 00045 double **vertices_; 00046 double **vertex_rgb_; 00047 public: 00048 RenderedPolylines(); 00049 RenderedPolylines(const Ref<KeyVal>&); 00050 ~RenderedPolylines(); 00051 00052 void initialize(int nvertex, int npolylines, 00053 RenderedPolylines::Coloring c = RenderedPolylines::None); 00054 int npolyline() { return npolyline_; } 00055 int nvertex() { return nvertex_; } 00056 int nvertex_in_polyline(int i) const { return nvertex_in_polyline_[i]; } 00057 double vertex(int i, int j) const { return vertices_[i][j]; } 00058 double vertex_rgb(int i, int j) const { return vertex_rgb_[i][j]; } 00059 int polyline(int i, int j) const { return polylines_[i][j]; } 00060 int have_vertex_rgb() const { return coloring_ == Vertex; } 00061 00062 void set_vertex(int, double x, double y, double z); 00063 void set_vertex_rgb(int, double r, double g, double b); 00064 void set_polyline(int i, int v1, int v2); 00065 void set_polyline(int i, int v1, int v2, int v3); 00066 void set_polyline(int i, int v1, int v2, int v3, int v4); 00067 00068 void render(const Ref<Render>&); 00069 }; 00070 00071 } 00072 00073 #endif 00074 00075 // Local Variables: 00076 // mode: c++ 00077 // c-file-style: "CLJ" 00078 // End: Generated at Fri Jan 10 08:14:09 2003 for MPQC 2.1.3 using the documentation package Doxygen 1.2.14. |