From f20617a66c98c6179b4afd8b40ed4a8283ecc27d Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Mon, 19 Apr 2010 10:10:38 -0700 Subject: Add Producer to the names of all the shape producer classes The shape consumer class already has Consumer on the name. Adding Producer to the names of the producer classes makes the producer / consumer nature a little more apparent. --- include/glu3.h | 25 +++++++++++++------------ src/cube.cpp | 10 +++++----- src/sphere.cpp | 27 ++++++++++++++------------- test/sphere.cpp | 4 ++-- 4 files changed, 34 insertions(+), 32 deletions(-) diff --git a/include/glu3.h b/include/glu3.h index f634a57..0039565 100644 --- a/include/glu3.h +++ b/include/glu3.h @@ -270,16 +270,16 @@ struct GLUarcball { #ifdef __cplusplus /** - * Consumer for shape data generated by a GLUshape object + * Consumer for shape data generated by a GLUshapeProducer object * * Objects of this class and its descenents are used to consume data generated - * by \c GLUshape. The \c GLUshape object is responsible for the format of - * the data generate, and the \c GLUshapeConsumer object is repsonsible for - * storing that data. + * by \c GLUshapeProducer. The \c GLUshapeProducer object is responsible for + * the format of the data generate, and the \c GLUshapeConsumer object is + * repsonsible for storing that data. * * This splits the functionality of the classic GLU's \c GLUquadric structure. * - * \sa GLUshape + * \sa GLUshapeProducer */ class GLUshapeConsumer { public: @@ -327,9 +327,9 @@ public: * * \sa GLUshapeConsumer */ -class GLUshape { +class GLUshapeProducer { public: - virtual ~GLUshape() + virtual ~GLUshapeProducer() { } @@ -383,7 +383,8 @@ public: virtual void generate(GLUshapeConsumer *consumer) const = 0; protected: - GLUshape(void) : normals_point_out(true), normals_per_vertex(true) + GLUshapeProducer(void) : + normals_point_out(true), normals_per_vertex(true) { } @@ -395,7 +396,7 @@ protected: /** * Shape generator that generates a sphere. */ -class GLUsphere : public GLUshape { +class GLUsphereProducer : public GLUshapeProducer { public: /** * Construct a new sphere shape generator @@ -408,7 +409,7 @@ public: * \param stacks Specifies the number of subdivisions along the * z-axis. These match the latitude lines on the globe. */ - GLUsphere(GLdouble radius, GLint slices, GLint stacks); + GLUsphereProducer(GLdouble radius, GLint slices, GLint stacks); virtual unsigned vertex_count(void) const; virtual unsigned element_count(void) const; virtual unsigned primitive_count(void) const; @@ -424,7 +425,7 @@ private: /** * Shape generator that generates a cube. */ -class GLUcube : public GLUshape { +class GLUcubeProducer : public GLUshapeProducer { public: /** * Construct a new cube shape generator @@ -432,7 +433,7 @@ public: * \param radius Distance from the center of the cube to the center * of one of the axis-aligned faces. */ - GLUcube(GLdouble radius); + GLUcubeProducer(GLdouble radius); virtual unsigned vertex_count(void) const; virtual unsigned element_count(void) const; virtual unsigned primitive_count(void) const; diff --git a/src/cube.cpp b/src/cube.cpp index c1f13ed..88d4fe3 100644 --- a/src/cube.cpp +++ b/src/cube.cpp @@ -22,13 +22,13 @@ */ #include "glu3.h" -GLUcube::GLUcube(double radius) : +GLUcubeProducer::GLUcubeProducer(double radius) : radius(radius) { } unsigned -GLUcube::vertex_count(void) const +GLUcubeProducer::vertex_count(void) const { /* Due to differeing normals and texture coordinates, each face of the * cube has four unique vertices. This means that each unique vertex @@ -38,7 +38,7 @@ GLUcube::vertex_count(void) const } unsigned -GLUcube::element_count(void) const +GLUcubeProducer::element_count(void) const { /* Each face is made up of two triangles. All data is sent in a single * triangle list. @@ -47,7 +47,7 @@ GLUcube::element_count(void) const } unsigned -GLUcube::primitive_count(void) const +GLUcubeProducer::primitive_count(void) const { /* Each face is made up of two triangles. All data is sent in a single * triangle list. @@ -58,7 +58,7 @@ GLUcube::primitive_count(void) const #define Elements(a) (sizeof(a) / sizeof(a[0])) void -GLUcube::generate(GLUshapeConsumer *consumer) const +GLUcubeProducer::generate(GLUshapeConsumer *consumer) const { static const float p[] = { +1.0, 1.0, 1.0, 1.0, diff --git a/src/sphere.cpp b/src/sphere.cpp index ecd7db8..4aa1a79 100644 --- a/src/sphere.cpp +++ b/src/sphere.cpp @@ -42,20 +42,20 @@ static void sphere_end_cb(void *data); /*@}*/ /** - * GLUsphere decorator to implement call-backs + * GLUsphereProducer decorator to implement call-backs * - * To generate the sphere data, the \c GLUsphere class interfaces with various - * C functions that use a call-back mechanism. These call-backs are analogous - * the \c emit_vertex, \c emit_begin, \c emit_index, and \c emit_end methods - * that \c GLUsphere subclasses will provide. + * To generate the sphere data, the \c GLUsphereProducer class interfaces with + * various C functions that use a call-back mechanism. These call-backs are + * analogous the \c emit_vertex, \c emit_begin, \c emit_index, and \c emit_end + * methods that \c GLUsphereProducer subclasses will provide. * * However, these methods are all \c protected. As a result the non-class * call-back functions cannot call these methods unless they are \c friend * functions. It is undesireable to expose the implementation detail in the * application-facing header file. This can be worked around by creating a - * dummy subclass of \c GLUsphere that only contains the \c friend function - * declarations. Pointers to \c GLUsphere objects can be cast to pointers to - * \c GLUsphereFriend objects without side-effect. + * dummy subclass of \c GLUsphereProducer that only contains the \c friend + * function declarations. Pointers to \c GLUsphereProducer objects can be + * cast to pointers to \c GLUsphereFriend objects without side-effect. * * This is arguably a mis-use of the "decorator" pattern, but it is the most * efficient way to do this. @@ -75,7 +75,8 @@ class GLUconsumerFriend : public GLUshapeConsumer { }; -GLUsphere::GLUsphere(GLdouble radius, GLint slices, GLint stacks) +GLUsphereProducer::GLUsphereProducer(GLdouble radius, GLint slices, + GLint stacks) { this->radius = radius; this->slices = (slices < 4) ? 4 : (unsigned) slices; @@ -84,7 +85,7 @@ GLUsphere::GLUsphere(GLdouble radius, GLint slices, GLint stacks) unsigned -GLUsphere::vertex_count(void) const +GLUsphereProducer::vertex_count(void) const { /* Each line of vertices from the north pole to the south pole consists * of (stacks+1) vertices. There are a total of (slices+1) of these @@ -95,7 +96,7 @@ GLUsphere::vertex_count(void) const unsigned -GLUsphere::primitive_count(void) const +GLUsphereProducer::primitive_count(void) const { /* For each slice there is a triangle strip from the north pole to the * south pole. @@ -105,7 +106,7 @@ GLUsphere::primitive_count(void) const unsigned -GLUsphere::element_count(void) const +GLUsphereProducer::element_count(void) const { /* Each slice is a triangle strip represented by 2 elements plus * 2 elements for each stack; @@ -152,7 +153,7 @@ sphere_end_cb(void *data) void -GLUsphere::generate(GLUshapeConsumer *consumer) const +GLUsphereProducer::generate(GLUshapeConsumer *consumer) const { generate_sphere(radius, slices, stacks, normals_point_out, diff --git a/test/sphere.cpp b/test/sphere.cpp index adcce4e..ae2c5cf 100644 --- a/test/sphere.cpp +++ b/test/sphere.cpp @@ -4,7 +4,7 @@ class check_sphere : public GLUshapeConsumer { public: - check_sphere(const GLUshape &shape, double r) : + check_sphere(const GLUshapeProducer &shape, double r) : pass(true), vert(0), prim(0), elts(0), r(r), mode(0) { primitive_count = shape.primitive_count(); @@ -164,7 +164,7 @@ public: int main(int argc, char **argv) { - GLUsphere s(4.0, 5, 5); + GLUsphereProducer s(4.0, 5, 5); check_sphere c(s, 4.0); s.generate(& c); -- cgit v1.2.3