GritsObject

GritsObject — Base class for drawing operations

Synopsis

#define             GRITS_SKIP_LOD
#define             GRITS_SKIP_HORIZON
#define             GRITS_SKIP_CENTER
#define             GRITS_SKIP_STATE
                    GritsState;
struct              GritsObject;
struct              GritsObjectClass;
void                grits_object_draw                   (GritsObject *object,
                                                         GritsOpenGL *opengl);
void                grits_object_hide                   (GritsObject *object,
                                                         gboolean hidden);
void                grits_object_pick                   (GritsObject *object,
                                                         GritsOpenGL *opengl);
void                grits_object_set_pointer            (GritsObject *object,
                                                         gboolean selected);
void                grits_object_event                  (GritsObject *object,
                                                         GdkEvent *event);
void                grits_object_queue_draw             (GritsObject *object);
#define             grits_object_center                 (object)

Object Hierarchy

  GObject
   +----GritsObject
         +----GritsCallback
         +----GritsLine
         +----GritsMarker
         +----GritsPoly
         +----GritsTile
         +----GritsVolume

Signals

  "button-press"                                   : Run Last
  "button-release"                                 : Run Last
  "clicked"                                        : Run Last
  "enter"                                          : Run Last
  "key-press"                                      : Run Last
  "key-release"                                    : Run Last
  "leave"                                          : Run Last
  "motion"                                         : Run Last

Description

Objects in grits are things which can be added to the viewer and will be displayed to the user. Each object has information such as it's location and level of detail which are used by the viewer to determine which objects should be drawn.

Each GritsObject is also a GObject, but not every GObject in grits is a GritsObject. The "Object" part of the name is just coincidence.

Details

GRITS_SKIP_LOD

#define GRITS_SKIP_LOD     (1<<0)


GRITS_SKIP_HORIZON

#define GRITS_SKIP_HORIZON (1<<1)


GRITS_SKIP_CENTER

#define GRITS_SKIP_CENTER  (1<<2)


GRITS_SKIP_STATE

#define GRITS_SKIP_STATE   (1<<3)


GritsState

typedef struct {
	guint picked   : 1;
	guint selected : 1;
	guint clicking : 1;
} GritsState;


struct GritsObject

struct GritsObject;


struct GritsObjectClass

struct GritsObjectClass {
	GObjectClass parent_class;

	/* Move some of these to GObject? */
	void (*draw) (GritsObject *object, GritsOpenGL *opengl);
	void (*pick) (GritsObject *object, GritsOpenGL *opengl);
	void (*hide) (GritsObject *object, gboolean hidden);
};


grits_object_draw ()

void                grits_object_draw                   (GritsObject *object,
                                                         GritsOpenGL *opengl);

Perform any OpenGL commands necessasairy to draw the object.

The GL_PROJECTION and GL_MODELVIEW matricies and GL_ALL_ATTRIB_BITS will be restored to the default state after the call to draw.

object :

the object

opengl :

the viewer the object is being displayed in

grits_object_hide ()

void                grits_object_hide                   (GritsObject *object,
                                                         gboolean hidden);


grits_object_pick ()

void                grits_object_pick                   (GritsObject *object,
                                                         GritsOpenGL *opengl);


grits_object_set_pointer ()

void                grits_object_set_pointer            (GritsObject *object,
                                                         gboolean selected);


grits_object_event ()

void                grits_object_event                  (GritsObject *object,
                                                         GdkEvent *event);


grits_object_queue_draw ()

void                grits_object_queue_draw             (GritsObject *object);

Cause the widget to be redrawn on the screen at some later point

object :

The GritsObject that needs drawing

grits_object_center()

#define             grits_object_center(object)

Get the GritsPoint representing the center of an object

object :

The GritsObject to get the center of

Returns :

the center point

Signal Details

The "button-press" signal

void                user_function                      (GritsObject *gritsobject,
                                                        gpointer     arg1,
                                                        gpointer     user_data)        : Run Last

gritsobject :

the object which received the signal.

user_data :

user data set when the signal handler was connected.

The "button-release" signal

void                user_function                      (GritsObject *gritsobject,
                                                        gpointer     arg1,
                                                        gpointer     user_data)        : Run Last

gritsobject :

the object which received the signal.

user_data :

user data set when the signal handler was connected.

The "clicked" signal

void                user_function                      (GritsObject *gritsobject,
                                                        gpointer     user_data)        : Run Last

gritsobject :

the object which received the signal.

user_data :

user data set when the signal handler was connected.

The "enter" signal

void                user_function                      (GritsObject *object,
                                                        gpointer     user_data)      : Run Last

The ::enter signal is emitted when the pointer moves over the object

object :

the object.

user_data :

user data set when the signal handler was connected.

The "key-press" signal

void                user_function                      (GritsObject *gritsobject,
                                                        gpointer     arg1,
                                                        gpointer     user_data)        : Run Last

gritsobject :

the object which received the signal.

user_data :

user data set when the signal handler was connected.

The "key-release" signal

void                user_function                      (GritsObject *gritsobject,
                                                        gpointer     arg1,
                                                        gpointer     user_data)        : Run Last

gritsobject :

the object which received the signal.

user_data :

user data set when the signal handler was connected.

The "leave" signal

void                user_function                      (GritsObject *gritsobject,
                                                        gpointer     user_data)        : Run Last

gritsobject :

the object which received the signal.

user_data :

user data set when the signal handler was connected.

The "motion" signal

void                user_function                      (GritsObject *gritsobject,
                                                        gpointer     arg1,
                                                        gpointer     user_data)        : Run Last

gritsobject :

the object which received the signal.

user_data :

user data set when the signal handler was connected.