COVISE Core
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros
coDoGeometry.h
Go to the documentation of this file.
1 /* This file is part of COVISE.
2 
3  You can use it under the terms of the GNU Lesser General Public License
4  version 2.1 or later, see lgpl-2.1.txt.
5 
6  * License: LGPL 2+ */
7 
8 #ifndef CO_DO_GEOMETRY_H
9 #define CO_DO_GEOMETRY_H
10 
11 /*
12  $Log: covise_geometry.h,v $
13  * Revision 1.1 1993/09/25 20:44:13 zrhk0125
14  * Initial revision
15  *
16 */
17 
18 #include "coDistributedObject.h"
19 
20 /***********************************************************************\
21  ** **
22  ** Geometry class Version: 1.0 **
23  ** **
24  ** **
25  ** Description : Classes for the handling of Geometry for the **
26  ** renderer **
27  ** **
28  ** Classes : **
29  ** **
30  ** Copyright (C) 1993 by University of Stuttgart **
31  ** Computer Center (RUS) **
32  ** Allmandring 30 **
33  ** 7000 Stuttgart 80 **
34  ** **
35  ** **
36  ** Author : A. Wierse (RUS) **
37  ** **
38  ** History : **
39  ** 12.08.93 Ver 1.0 **
40  ** **
41  ** **
42 \***********************************************************************/
43 namespace covise
44 {
45 
47 {
48  friend class coDoInitializer;
49  static coDistributedObject *virtualCtor(coShmArray *arr);
50 
51 public:
52  enum { NumChannels = 8 };
53  enum { NumColorMaps = 2 };
54 
55 private:
59  const coDistributedObject *colors[NumChannels];
67  const coDistributedObject *colorMap[NumColorMaps];
68 
69 protected:
70  int rebuildFromShm();
71  int getObjInfo(int, coDoInfo **) const;
72  coDoGeometry *cloneObject(const coObjInfo &newinfo) const;
73 
74 public:
75  coDoGeometry(const coObjInfo &info)
76  : coDistributedObject(info, "GEOMET")
77  {
78  if (name != (char *)NULL)
79  {
80  if (getShmArray() != 0)
81  {
82  if (rebuildFromShm() == 0)
83  {
84  print_comment(__LINE__, __FILE__, "rebuildFromShm == 0");
85  }
86  }
87  else
88  {
89  print_comment(__LINE__, __FILE__, "object %s doesn't exist", name);
90  new_ok = 0;
91  }
92  }
93  };
94 
95  void setGeometry(int gtype, const coDistributedObject *geo);
96  void setColors(int cattr, const coDistributedObject *c, size_t chan = 0);
97  void setNormals(int nattr, const coDistributedObject *n);
98  void setTexture(int tattr, const coDistributedObject *t);
99  void setVertexAttribute(int vattr, const coDistributedObject *v);
100  void setColorMap(int cmattr, const coDistributedObject *cm, size_t chan = 0);
101 
102  coDoGeometry(const coObjInfo &info, coShmArray *arr);
103  coDoGeometry(const coObjInfo &info, const coDistributedObject *geo);
105  {
106  return geometry;
107  };
108  const coDistributedObject *getColors(size_t chan = 0) const
109  {
110  return colors[chan];
111  };
113  {
114  return normals;
115  };
117  {
118  return texture;
119  };
121  {
122  return vertexAttribute;
123  };
124  const coDistributedObject *getColorMap(size_t chan = 0) const
125  {
126  return colorMap[chan];
127  }
128 
129  int getGeometryType() const
130  {
131  return geometry_type;
132  }
133  int getColorAttributes() const
134  {
135  return color_attr;
136  }
137  void setColorAttributes(int cattr)
138  {
139  color_attr = cattr;
140  }
142  {
143  return normal_attr;
144  }
145  void setNormalAttributes(int nattr)
146  {
147  normal_attr = nattr;
148  }
150  {
151  return texture_attr;
152  }
153  void setTextureAttributes(int nattr)
154  {
155  texture_attr = nattr;
156  }
158  {
159  return vertexAttribute_attr;
160  }
162  {
163  vertexAttribute_attr = vattr;
164  }
166  {
167  return colorMap_attr;
168  }
169  void setColorMapAttributes(int cmattr)
170  {
171  colorMap_attr = cmattr;
172  }
173 };
174 }
175 #endif
const coDistributedObject * texture
Definition: coDoGeometry.h:63
const coDistributedObject * getVertexAttribute() const
Definition: coDoGeometry.h:120
int getGeometryType() const
Definition: coDoGeometry.h:129
int getColorAttributes() const
Definition: coDoGeometry.h:133
const coDistributedObject * getColors(size_t chan=0) const
Definition: coDoGeometry.h:108
const coDistributedObject * getColorMap(size_t chan=0) const
Definition: coDoGeometry.h:124
int getColorMapAttributes() const
Definition: coDoGeometry.h:165
coIntShm texture_attr
Definition: coDoGeometry.h:62
const coDistributedObject * getTexture() const
Definition: coDoGeometry.h:116
void setNormalAttributes(int nattr)
Definition: coDoGeometry.h:145
void setVertexAttributeAttributes(int vattr)
Definition: coDoGeometry.h:161
coIntShm colorMap_attr
Definition: coDoGeometry.h:66
const coDistributedObject * getGeometry() const
Definition: coDoGeometry.h:104
#define DOEXPORT
Definition: coExport.h:319
void setColorMapAttributes(int cmattr)
Definition: coDoGeometry.h:169
GLuint const GLchar * name
Definition: khronos-glext.h:6722
const GLubyte * c
Definition: khronos-glext.h:9864
int getVertexAttributeAttributes() const
Definition: coDoGeometry.h:157
coIntShm color_attr
Definition: coDoGeometry.h:58
void setTextureAttributes(int nattr)
Definition: coDoGeometry.h:153
Definition: coObjID.h:230
GLenum GLuint texture
Definition: khronos-glext.h:6986
int getTextureAttributes() const
Definition: coDoGeometry.h:149
coIntShm geometry_type
Definition: coDoGeometry.h:56
GLdouble GLdouble t
Definition: khronos-glext.h:6449
const coDistributedObject * geometry
Definition: coDoGeometry.h:57
void setColorAttributes(int cattr)
Definition: coDoGeometry.h:137
Definition: covise_statics.cpp:54
const coDistributedObject * normals
Definition: coDoGeometry.h:61
Definition: covise_shm.h:481
coIntShm vertexAttribute_attr
Definition: coDoGeometry.h:64
GLdouble n
Definition: khronos-glext.h:8447
const coDistributedObject * vertexAttribute
Definition: coDoGeometry.h:65
int getNormalAttributes() const
Definition: coDoGeometry.h:141
Definition: coDoGeometry.h:46
const coDistributedObject * getNormals() const
Definition: coDoGeometry.h:112
void print_comment(int line, const char *filename, const char *fmt,...)
Definition: coLog.cpp:25
coIntShm normal_attr
Definition: coDoGeometry.h:60
Definition: coDistributedObject.h:295
#define NULL
Definition: covise_list.h:22
Definition: coDistributedObject.h:266
static coShmArray * getShmArray(const char *name)
Definition: coDistributedObject.cpp:60
const GLdouble * v
Definition: khronos-glext.h:6442
coDoGeometry(const coObjInfo &info)
Definition: coDoGeometry.h:75