- Reestructuración de ficheros y directorios general
- merge v0.01 --> Añadido fileselector - Añadidas fuentes de Gem y Pure Data - pix2jpg incluído en Gem. Archivos de construcción de Gem modificados. - Añadido fichero ompiling.txt con instrucciones de compilación
This commit is contained in:
parent
c9adfd020b
commit
e85d191b46
3100 changed files with 775434 additions and 3073 deletions
141
Gem/src/Base/GemShape.h
Normal file
141
Gem/src/Base/GemShape.h
Normal file
|
@ -0,0 +1,141 @@
|
|||
/*-----------------------------------------------------------------
|
||||
LOG
|
||||
GEM - Graphics Environment for Multimedia
|
||||
|
||||
Base class for shapes
|
||||
|
||||
Copyright (c) 1997-1999 Mark Danks. mark@danks.org
|
||||
Copyright (c) Günther Geiger. geiger@epy.co.at
|
||||
Copyright (c) 2001-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at
|
||||
For information on usage and redistribution, and for a DISCLAIMER OF ALL
|
||||
WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution.
|
||||
|
||||
-----------------------------------------------------------------*/
|
||||
|
||||
#ifndef _INCLUDE__GEM_BASE_GEMSHAPE_H_
|
||||
#define _INCLUDE__GEM_BASE_GEMSHAPE_H_
|
||||
|
||||
#include "Base/GemBase.h"
|
||||
#include <map>
|
||||
/*-----------------------------------------------------------------
|
||||
-------------------------------------------------------------------
|
||||
CLASS
|
||||
GemShape
|
||||
|
||||
Base class for shapes
|
||||
|
||||
DESCRIPTION
|
||||
|
||||
Inlet for a float - "ft1"
|
||||
|
||||
"ft1" - the size of the shape
|
||||
"draw" - the drawing style
|
||||
"width" - the line width when drawing with lines
|
||||
|
||||
-----------------------------------------------------------------*/
|
||||
class TexCoord;
|
||||
class GEM_EXTERN GemShape : public GemBase
|
||||
{
|
||||
public:
|
||||
|
||||
//////////
|
||||
// Constructor
|
||||
// [in] size - A size of 0. means to just use the default (ie, 1.)
|
||||
GemShape(t_floatarg size);
|
||||
GemShape();
|
||||
|
||||
protected:
|
||||
|
||||
//////////
|
||||
// Destructor
|
||||
virtual ~GemShape();
|
||||
|
||||
//-----------------------------------
|
||||
// GROUP: Access functions
|
||||
//-----------------------------------
|
||||
|
||||
//////////
|
||||
// The width of the lines in line draw mode
|
||||
void linewidthMess(float linewidth);
|
||||
|
||||
//////////
|
||||
// The size of the object
|
||||
void sizeMess(float size);
|
||||
|
||||
//////////
|
||||
// How the object should be drawn
|
||||
virtual void typeMess(t_symbol *type);
|
||||
|
||||
//-----------------------------------
|
||||
// GROUP: Utility functions
|
||||
//-----------------------------------
|
||||
|
||||
void SetVertex(GemState* state,float x, float y, float z,
|
||||
float tx, float ty,
|
||||
int curCoord);
|
||||
|
||||
void SetVertex(GemState* state,float x, float y, float z,
|
||||
float s, float t, float r, float q,
|
||||
int curCoord);
|
||||
|
||||
//-----------------------------------
|
||||
// GROUP: Member variables
|
||||
//-----------------------------------
|
||||
|
||||
//////////
|
||||
// The line width for GL_LINE mode
|
||||
GLfloat m_linewidth;
|
||||
|
||||
//////////
|
||||
// The size of the object
|
||||
GLfloat m_size;
|
||||
|
||||
//////////
|
||||
// The drawing style (GL_LINE, GL_POLYGON, etc)
|
||||
GLenum m_drawType;
|
||||
|
||||
//////////
|
||||
// do we want blending?
|
||||
GLboolean m_blend;
|
||||
void blendMess(float blend);
|
||||
|
||||
|
||||
////////
|
||||
// override this memberfunction to automatically enable softblended rendering,...
|
||||
virtual void renderShape(GemState *state) {;}
|
||||
|
||||
// OR
|
||||
// override this memberfunction if you don't want softblending
|
||||
virtual void render(GemState *state);
|
||||
|
||||
|
||||
//////////
|
||||
// The size inlet
|
||||
t_inlet *m_inlet;
|
||||
|
||||
//-----------------------------------
|
||||
// GROUP: Setup functions
|
||||
//-----------------------------------
|
||||
|
||||
//////////
|
||||
// creation callback
|
||||
static void real_obj_setupCallback(t_class *classPtr)
|
||||
{ GemBase::real_obj_setupCallback(classPtr); GemShape::obj_setupCallback(classPtr); }
|
||||
|
||||
private:
|
||||
|
||||
static inline GemShape *GetMyClass(void *data) {return((GemShape *)((Obj_header *)data)->data);}
|
||||
|
||||
//////////
|
||||
// static member functions
|
||||
static void obj_setupCallback(t_class *classPtr);
|
||||
|
||||
protected:
|
||||
int m_texType, m_texNum;
|
||||
TexCoord*m_texCoords;
|
||||
bool m_lighting;
|
||||
|
||||
std::map<std::string, GLenum>m_drawTypes;
|
||||
};
|
||||
|
||||
#endif // for header file
|
Loading…
Add table
Add a link
Reference in a new issue