object

object — Object manipulation

Functions

Types and Values

Includes

#include <g3d/object.h>

Description

Objects are parts of a model. In most file formats vertices and faces are grouped in some way into objects. Objects can be hierarchical, so what a model contains is basically an object tree.

Functions

g3d_object_free ()

void
g3d_object_free (G3DObject *object);

Frees all memory allocated for that object.

Parameters

object

the object to free

 

g3d_object_radius ()

gdouble
g3d_object_radius (G3DObject *object);

Calculates the radius of the object. This is the maximum from the center to a vertex.

Parameters

object

the object to measure

 

Returns

the radius of the given object


g3d_object_scale ()

gboolean
g3d_object_scale (G3DObject *object,
                  G3DFloat scale);

Resizes the object by the factor scale .

Parameters

object

the object to scale

 

scale

scale factor

 

Returns

TRUE on success, FALSE else


g3d_object_transform ()

gboolean
g3d_object_transform (G3DObject *object,
                      G3DMatrix *matrix);

Multiplies all vertices of the object with the transformation matrix.

Parameters

object

the object to transform

 

matrix

the transformation matrix

 

Returns

TRUE on success, FALSE else


g3d_object_transform_normals ()

gboolean
g3d_object_transform_normals (G3DObject *object,
                              G3DMatrix *matrix);

Multiplies all normals of the object with the transformation matrix.

Parameters

object

the object to transform

 

matrix

the transformation matrix

 

Returns

TRUE on success, FALSE else


g3d_object_duplicate ()

G3DObject *
g3d_object_duplicate (G3DObject *object);

Duplicates an object with all vertices, faces and materials.

Parameters

object

the object to duplicate

 

Returns

the new clone object


g3d_object_optimize ()

gboolean
g3d_object_optimize (G3DObject *object);

Puts all vertex and face information into special arrays for faster rendering. It is deprecated and should not be used.

Parameters

object

the object to optimize

 

Returns

TRUE on success, FALSE else


g3d_object_smooth ()

gboolean
g3d_object_smooth (G3DObject *object);

FIXME: unimplemented.

Parameters

object

the object to smooth

 

Returns

TRUE on success, FALSE else


g3d_object_merge ()

gboolean
g3d_object_merge (G3DObject *o1,
                  G3DObject *o2);

Merges both objects into o1 . FIXME: needs cleanup

Parameters

o1

first and target object

 

o2

second object

 

Returns

TRUE on success, FALSE else

Types and Values

G3DObject

typedef struct {
	gchar *name;

	GSList *materials;
	GSList *faces;
	GSList *objects;

	/* transformation, may be NULL */
	G3DTransformation *transformation;

	/* don't render this object */
	gboolean hide;

	/* vertices */
	guint32 vertex_count;
	G3DVector *vertex_data;
} G3DObject;

A three-dimensional object.

Members

gchar *name;

name of object

 

GSList *materials;

list of materials

 

GSList *faces;

list of faces

 

GSList *objects;

list of sub-objects

 

G3DTransformation *transformation;

optional transformation

 

gboolean hide;

flag to disable object rendering

 

guint32 vertex_count;

number of vertices

 

G3DVector *vertex_data;

vertex vector data

 

G3DTransformation

typedef struct {
	G3DMatrix matrix[16];
	guint32 flags;
} G3DTransformation;

A three-dimensional matrix transformation object.

Members

G3DMatrix matrix[16];

the transformation matrix

 

guint32 flags;

flags