model interface definition More...
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 | |
int(* | is_point_in_region )(struct gmi_model *m, struct gmi_ent *e, double p[3]) |
implement gmi_is_point_in_region | |
int(* | is_in_closure_of )(struct gmi_model *m, struct gmi_ent *e, struct gmi_ent *et) |
implement gmi_is_in_closure_of | |
int(* | is_discrete_ent )(struct gmi_model *m, struct gmi_ent *e) |
implement gmi_is_discrete_ent | |
void(* | destroy )(struct gmi_model *m) |
implement gmi_destroy |
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.
Definition at line 59 of file gmi.h.
struct gmi_set*(* gmi_model_ops::adjacent)(struct gmi_model *m, struct gmi_ent *e, int dim) [read] |
void(* gmi_model_ops::eval)(struct gmi_model *m, struct gmi_ent *e, double const p[2], double x[3]) |