mirror of
https://github.com/pgpointcloud/pointcloud.git
synced 2025-12-08 20:36:04 +00:00
59 lines
1.3 KiB
C
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;
|
|
}
|