typedef struct {
double longitude;
double latitude;
} vertex_t;
typedef struct {
vertex_t v1;
vertex_t v2;
} edge_t;
typedef struct {
int edge_count;
edge_t *edges;
} polygon_t;
####
my $vertex1 = vertex_t->new();
my $vertex1_obj = $vertex1->_to_ptr();
$vertex1_obj->longitude(-123.1411461547873);
$vertex1_obj->latitude(49.29515081299949);
my $vertex2 = vertex_t->new();
my $vertex2_obj = $vertex2->_to_ptr();
$vertex2_obj->longitude(-123.1502664432874);
$vertex2_obj->latitude(49.29191311233952);
my $edge = edge_t->new();
my $edge_obj = $edge->_to_ptr();
$edge_obj->v1($vertex1);
$edge_obj->v2($vertex2);
####
my $polygon = polygon_t->new();
my $polygon_obj = $polygon->_to_ptr();
$polygon_obj->edge_count(8);