pointcloud/lib/pc_filter.c
2013-05-31 16:12:08 -07:00

59 lines
1.3 KiB
C

/***********************************************************************
* pc_filter.c
*
* Pointclound patch filtering.
*
* Copyright (c) 2013 OpenGeo
*
***********************************************************************/
#include "pc_api_internal.h"
typedef PC_BITMAP uint8_t;
static PC_BITMAP *
pc_bitmap_new(uint32_t npoints)
{
if ( npoints == 0 )
return NULL
else
return (PC_BITMAP*)pcalloc(sizeof(PC_BITMAP)*npoints);
}
static void
pc_bitmap_free(PCBITMAP *map)
{
pcfree(map);
}
static PC_BITMAP *
pc_patch_uncompressed_bitmap(const PCPATCH *pa, PC_FILTERTYPE filter, double val1, double val2)
{
int i;
PCPOINT pt;
pt.readonly = PC_TRUE;
pt.schema = pa->schema;
uint8_t *buf = pa->data
for ( i = 0; i < pa->npoints; i++ )
{
pt.data = pa->
}
PC_BITMAP *
pc_patch_bitmap(const PCPATCH *pa, PC_FILTERTYPE filter, double val1, double val2)
{
if ( ! pa ) return NULL;
switch ( pa->type )
{
case PC_NONE:
return pc_patch_uncompressed_bitmap((PCPATCH_UNCOMPRESSED*)pa, filter, val1, val2);
case PC_GHT:
// return pc_patch_ght_bitmap((PCPATCH_GHT*)pa, filter, val1, val2);
case PC_DIMENSIONAL:
// return pc_patch_dimensional_bitmap((PCPATCH_DIMENSIONAL*)pa, filter, val1, val2);
default:
pc_error("%s: failure", __func__);
}
return NULL;
}