Public Attributes

gmi_model_ops Struct Reference

model interface definition More...

List of all members.

Public Attributes

struct gmi_iter *(* begin )(struct gmi_model *m, int dim)
 implement gmi_begin
struct gmi_ent *(* next )(struct gmi_model *m, struct gmi_iter *i)
 implement gmi_begin
void(* end )(struct gmi_model *m, struct gmi_iter *i)
 implement gmi_end
int(* dim )(struct gmi_model *m, struct gmi_ent *e)
 implement gmi_dim
int(* tag )(struct gmi_model *m, struct gmi_ent *e)
 implement gmi_tag
struct gmi_ent *(* find )(struct gmi_model *m, int dim, int tag)
 implement gmi_find
struct gmi_set *(* adjacent )(struct gmi_model *m, struct gmi_ent *e, int dim)
 implement gmi_adjacent
void(* eval )(struct gmi_model *m, struct gmi_ent *e, double const p[2], double x[3])
 implement gmi_eval
void(* reparam )(struct gmi_model *m, struct gmi_ent *from, double const from_p[2], struct gmi_ent *to, double to_p[2])
 implement gmi_reparam
int(* periodic )(struct gmi_model *m, struct gmi_ent *e, int dim)
 implement gmi_periodic
void(* range )(struct gmi_model *m, struct gmi_ent *e, int dim, double r[2])
 implement gmi_range
void(* closest_point )(struct gmi_model *m, struct gmi_ent *e, double const from[3], double to[3], double to_p[2])
 implement gmi_closest_point
void(* normal )(struct gmi_model *m, struct gmi_ent *e, double const p[2], double n[3])
 implement gmi_normal
void(* first_derivative )(struct gmi_model *m, struct gmi_ent *e, double const p[2], double t0[3], double t1[3])
 implement gmi_first_derivative
void(* destroy )(struct gmi_model *m)
 implement gmi_destroy

Detailed Description

model interface definition

this is the C equivalent of a C++ class with pure virtual methods. It contains pointers to implementations for all the different geometric model operations supported by GMI. Each model points to one of these definitions so that GMI knows which code to use to interact with said model. Implementations are allowed to omit any of these pointers, in which case either that functionality is prohibited (and the program crashes upon attempted use) or a comment may describe the default behavior if the pointer is omitted. Some functionality is known to be rare, so specific APIs are in place to check whether a particular model supports those functions.


Member Data Documentation

struct gmi_set*(* gmi_model_ops::adjacent)(struct gmi_model *m, struct gmi_ent *e, int dim) [read]

implement gmi_adjacent

if omitted then gmi_adjacent returns gmi_make_set(0)

void(* gmi_model_ops::eval)(struct gmi_model *m, struct gmi_ent *e, double const p[2], double x[3])

implement gmi_eval

if omitted then gmi_can_eval returns false


The documentation for this struct was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines