SCOREC core
Parallel unstructured mesh tools
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Public Attributes | List of all members
gmi_model_ops Struct Reference

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 More...
 
void(* eval )(struct gmi_model *m, struct gmi_ent *e, double const p[2], double x[3])
 implement gmi_eval More...
 
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
 
void(* bbox )(struct gmi_model *m, struct gmi_ent *e, double bmin[3], double bmax[3])
 implement gmi_bbox
 
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
 

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.

Definition at line 59 of file gmi.h.

Member Data Documentation

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

implement gmi_adjacent

if omitted then gmi_adjacent returns gmi_make_set(0)

Definition at line 74 of file gmi.h.

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

Definition at line 77 of file gmi.h.


The documentation for this struct was generated from the following file: