示例#1
0
static GhtErr
l2g_build_schema(const Las2GhtConfig *config, Las2GhtState *state)
{
    int i = 0;
    GhtSchemaPtr schema;
    GhtDimensionPtr dim;
    GHT_TRY(ght_schema_new(&schema));
    
    /* Add 'X' dimension (position 0) */
    GHT_TRY(ght_dimension_new_from_parameters("X", "", GHT_DOUBLE, 1.0, 0.0, &dim));
    GHT_TRY(ght_schema_add_dimension(schema, dim));

    /* Add 'Y' dimension (position 1) */
    GHT_TRY(ght_dimension_new_from_parameters("Y", "", GHT_DOUBLE, 1.0, 0.0, &dim));
    GHT_TRY(ght_schema_add_dimension(schema, dim));

    /* Add 'Z' dimension (position 2) */
    GHT_TRY(ght_dimension_new_from_parameters("Z", "", GHT_DOUBLE, 1.0, 0.0, &dim));
    GHT_TRY(ght_schema_add_dimension(schema, dim));
    
    /* Add optional attributes (positions 3+) */
    for ( i = 0; i < config->num_attrs; i++ )
    {
        LasDimension ld = LasAttributes[config->attrs[i]];
        GHT_TRY(ght_dimension_new_from_parameters(ld.name, "", ld.type, ld.scale, ld.offset, &dim));
        GHT_TRY(ght_schema_add_dimension(schema, dim));
    }

    state->schema = schema;
    return GHT_OK;
}
示例#2
0
static GhtDimensionPtr
ght_dimension_from_pc_dimension(const PCDIMENSION *d)
{
	GhtDimensionPtr dim;
	GhtType type = ght_type_from_pc_type(d->interpretation);
	ght_dimension_new_from_parameters(d->name, d->description, type, d->scale, d->offset, &dim);
	return dim;
}