![]() |
![]() |
![]() |
aweather Reference Manual | ![]() |
---|---|---|---|---|
Top | Description |
RoamView; RoamPoint; RoamTriangle; RoamDiamond; RoamSphere; void (*RoamTriFunc) (RoamTriangle *triangle, gpointer user_data); void (*RoamHeightFunc) (RoamPoint *point, gpointer user_data); RoamPoint * roam_point_new (double x, double y, double z); void roam_point_add_triangle (RoamPoint *point, RoamTriangle *triangle); void roam_point_remove_triangle (RoamPoint *point, RoamTriangle *triangle); void roam_point_update (RoamPoint *point, RoamSphere *sphere, gboolean do_height); void roam_point_clear (RoamPoint *self); RoamTriangle * roam_triangle_new (RoamPoint *l, RoamPoint *m, RoamPoint *r); void roam_triangle_add (RoamTriangle *triangle, RoamTriangle *left, RoamTriangle *base, RoamTriangle *right, RoamSphere *sphere); void roam_triangle_remove (RoamTriangle *triangle, RoamSphere *sphere); void roam_triangle_update (RoamTriangle *triangle, RoamSphere *sphere); void roam_triangle_split (RoamTriangle *triangle, RoamSphere *sphere); void roam_triangle_draw_normal (RoamTriangle *triangle); RoamDiamond * roam_diamond_new (RoamTriangle *parent0, RoamTriangle *parent1, RoamTriangle *kid0, RoamTriangle *kid1, RoamTriangle *kid2, RoamTriangle *kid3); void roam_diamond_add (RoamDiamond *diamond, RoamSphere *sphere); void roam_diamond_remove (RoamDiamond *diamond, RoamSphere *sphere); void roam_diamond_merge (RoamDiamond *diamond, RoamSphere *sphere); void roam_diamond_update (RoamDiamond *self, RoamSphere *sphere); RoamSphere * roam_sphere_new (RoamTriFunc tri_func, RoamHeightFunc height_func, gpointer user_data); void roam_sphere_update (RoamSphere *sphere); void roam_sphere_split_one (RoamSphere *sphere); void roam_sphere_merge_one (RoamSphere *sphere); gint roam_sphere_split_merge (RoamSphere *sphere); void roam_sphere_draw (RoamSphere *sphere); void roam_sphere_draw_normals (RoamSphere *sphere); void roam_sphere_free (RoamSphere *sphere);
typedef struct { gdouble x,y,z; // Model coordinates gdouble px,py,pz; // Projected coordinates gboolean cached; // Height/projection cached gint tris; // Associated triangles gdouble norm[3]; // Vertex normal WmsCacheNode *node; // TODO: don't depend on wms } RoamPoint;
typedef struct { RoamTriangle *kids[4]; RoamTriangle *parents[2]; double error; gboolean active; GPQueueHandle handle; } RoamDiamond;
typedef struct { GPQueue *triangles; GPQueue *diamonds; RoamView *view; RoamTriFunc tri_func; RoamHeightFunc height_func; gpointer user_data; gint polys; } RoamSphere;
void (*RoamTriFunc) (RoamTriangle *triangle, gpointer user_data);
|
|
|
void (*RoamHeightFunc) (RoamPoint *point, gpointer user_data);
|
|
|
void roam_point_add_triangle (RoamPoint *point, RoamTriangle *triangle);
|
|
|
void roam_point_remove_triangle (RoamPoint *point, RoamTriangle *triangle);
|
|
|
void roam_point_update (RoamPoint *point, RoamSphere *sphere, gboolean do_height);
|
|
|
|
|
RoamTriangle * roam_triangle_new (RoamPoint *l, RoamPoint *m, RoamPoint *r);
|
|
|
|
|
|
Returns : |
void roam_triangle_add (RoamTriangle *triangle, RoamTriangle *left, RoamTriangle *base, RoamTriangle *right, RoamSphere *sphere);
|
|
|
|
|
|
|
|
|
void roam_triangle_remove (RoamTriangle *triangle, RoamSphere *sphere);
|
|
|
void roam_triangle_update (RoamTriangle *triangle, RoamSphere *sphere);
|
|
|
void roam_triangle_split (RoamTriangle *triangle, RoamSphere *sphere);
|
|
|
RoamDiamond * roam_diamond_new (RoamTriangle *parent0, RoamTriangle *parent1, RoamTriangle *kid0, RoamTriangle *kid1, RoamTriangle *kid2, RoamTriangle *kid3);
|
|
|
|
|
|
|
|
|
|
|
|
Returns : |
void roam_diamond_add (RoamDiamond *diamond, RoamSphere *sphere);
|
|
|
void roam_diamond_remove (RoamDiamond *diamond, RoamSphere *sphere);
|
|
|
void roam_diamond_merge (RoamDiamond *diamond, RoamSphere *sphere);
|
|
|
void roam_diamond_update (RoamDiamond *self, RoamSphere *sphere);
|
|
|
RoamSphere * roam_sphere_new (RoamTriFunc tri_func, RoamHeightFunc height_func, gpointer user_data);
|
|
|
|
|
|
Returns : |