slm: OpenCL code base  0.1
Macros | Functions
connect.cl File Reference

Kernels to connect discontinous and dangling channels. More...

Go to the source code of this file.

Macros

#define CHECK_TAIL(nbr_vec)
 
#define CHECK_EXIT(nbr_vec)
 
#define CHECK_E_TAIL(vec)   CHECK_TAIL((float2)(vec[0]+1.0f, vec[1] ))
 
#define CHECK_NE_TAIL(vec)   CHECK_TAIL((float2)(vec[0]+1.0f, vec[1]+1.0f ))
 
#define CHECK_N_TAIL(vec)   CHECK_TAIL((float2)(vec[0], vec[1]+1.0f ))
 
#define CHECK_NW_TAIL(vec)   CHECK_TAIL((float2)(vec[0]-1.0f, vec[1]+1.0f ))
 
#define CHECK_W_TAIL(vec)   CHECK_TAIL((float2)(vec[0]-1.0f, vec[1] ))
 
#define CHECK_SW_TAIL(vec)   CHECK_TAIL((float2)(vec[0]-1.0f, vec[1]-1.0f ))
 
#define CHECK_S_TAIL(vec)   CHECK_TAIL((float2)(vec[0], vec[1]-1.0f ))
 
#define CHECK_SE_TAIL(vec)   CHECK_TAIL((float2)(vec[0]+1.0f, vec[1]-1.0f ))
 
#define CHECK_E_EXIT(vec)   CHECK_EXIT((float2)(vec[0]+1.0f, vec[1] ))
 
#define CHECK_NE_EXIT(vec)   CHECK_EXIT((float2)(vec[0]+1.0f, vec[1]+1.0f ))
 
#define CHECK_N_EXIT(vec)   CHECK_EXIT((float2)(vec[0], vec[1]+1.0f ))
 
#define CHECK_NW_EXIT(vec)   CHECK_EXIT((float2)(vec[0]-1.0f, vec[1]+1.0f ))
 
#define CHECK_W_EXIT(vec)   CHECK_EXIT((float2)(vec[0]-1.0f, vec[1] ))
 
#define CHECK_SW_EXIT(vec)   CHECK_EXIT((float2)(vec[0]-1.0f, vec[1]-1.0f ))
 
#define CHECK_S_EXIT(vec)   CHECK_EXIT((float2)(vec[0], vec[1]-1.0f ))
 
#define CHECK_SE_EXIT(vec)   CHECK_EXIT((float2)(vec[0]+1.0f, vec[1]-1.0f ))
 

Functions

__kernel void connect_channels (__global const float2 *seed_point_array, __global const bool *mask_array, __global const float2 *uv_array, __global uint *mapping_array)
 Connect up channel strands by designating intervening pixels as channel pixels. More...
 
__kernel void push_to_exit (__global const float2 *seed_point_array, __global const bool *mask_array, __global const float2 *uv_array, __global uint *mapping_array)
 Connect up dangling channels to the masked grid boundary. More...
 

Detailed Description

Kernels to connect discontinous and dangling channels.

Author
CPS
Bug:
No known bugs

Definition in file connect.cl.

Macro Definition Documentation

◆ CHECK_E_EXIT

#define CHECK_E_EXIT (   vec)    CHECK_EXIT((float2)(vec[0]+1.0f, vec[1] ))

Definition at line 119 of file connect.cl.

◆ CHECK_E_TAIL

#define CHECK_E_TAIL (   vec)    CHECK_TAIL((float2)(vec[0]+1.0f, vec[1] ))

Definition at line 110 of file connect.cl.

◆ CHECK_EXIT

#define CHECK_EXIT (   nbr_vec)
Value:
{ \
nbr_idx = get_array_idx(nbr_vec); \
if ( mask_array[nbr_idx] ) { \
exit_flag |= 1; \
} \
}
static uint get_array_idx(float2 vec)
Compute the array index of the padded grid pixel pointed to by a float2 grid position vector (choice ...
Definition: essentials.cl:62

Definition at line 103 of file connect.cl.

◆ CHECK_N_EXIT

#define CHECK_N_EXIT (   vec)    CHECK_EXIT((float2)(vec[0], vec[1]+1.0f ))

Definition at line 121 of file connect.cl.

◆ CHECK_N_TAIL

#define CHECK_N_TAIL (   vec)    CHECK_TAIL((float2)(vec[0], vec[1]+1.0f ))

Definition at line 112 of file connect.cl.

◆ CHECK_NE_EXIT

#define CHECK_NE_EXIT (   vec)    CHECK_EXIT((float2)(vec[0]+1.0f, vec[1]+1.0f ))

Definition at line 120 of file connect.cl.

◆ CHECK_NE_TAIL

#define CHECK_NE_TAIL (   vec)    CHECK_TAIL((float2)(vec[0]+1.0f, vec[1]+1.0f ))

Definition at line 111 of file connect.cl.

◆ CHECK_NW_EXIT

#define CHECK_NW_EXIT (   vec)    CHECK_EXIT((float2)(vec[0]-1.0f, vec[1]+1.0f ))

Definition at line 122 of file connect.cl.

◆ CHECK_NW_TAIL

#define CHECK_NW_TAIL (   vec)    CHECK_TAIL((float2)(vec[0]-1.0f, vec[1]+1.0f ))

Definition at line 113 of file connect.cl.

◆ CHECK_S_EXIT

#define CHECK_S_EXIT (   vec)    CHECK_EXIT((float2)(vec[0], vec[1]-1.0f ))

Definition at line 125 of file connect.cl.

◆ CHECK_S_TAIL

#define CHECK_S_TAIL (   vec)    CHECK_TAIL((float2)(vec[0], vec[1]-1.0f ))

Definition at line 116 of file connect.cl.

◆ CHECK_SE_EXIT

#define CHECK_SE_EXIT (   vec)    CHECK_EXIT((float2)(vec[0]+1.0f, vec[1]-1.0f ))

Definition at line 126 of file connect.cl.

◆ CHECK_SE_TAIL

#define CHECK_SE_TAIL (   vec)    CHECK_TAIL((float2)(vec[0]+1.0f, vec[1]-1.0f ))

Definition at line 117 of file connect.cl.

◆ CHECK_SW_EXIT

#define CHECK_SW_EXIT (   vec)    CHECK_EXIT((float2)(vec[0]-1.0f, vec[1]-1.0f ))

Definition at line 124 of file connect.cl.

◆ CHECK_SW_TAIL

#define CHECK_SW_TAIL (   vec)    CHECK_TAIL((float2)(vec[0]-1.0f, vec[1]-1.0f ))

Definition at line 115 of file connect.cl.

◆ CHECK_TAIL

#define CHECK_TAIL (   nbr_vec)
Value:
{ \
nbr_idx = get_array_idx(nbr_vec); \
if ( !mask_array[nbr_idx] && (mapping_array[nbr_idx]&IS_THINCHANNEL) ) { \
tail_flag |= 1; \
} \
}
static uint get_array_idx(float2 vec)
Compute the array index of the padded grid pixel pointed to by a float2 grid position vector (choice ...
Definition: essentials.cl:62
#define IS_THINCHANNEL
Definition: info.h:97

Definition at line 97 of file connect.cl.

◆ CHECK_W_EXIT

#define CHECK_W_EXIT (   vec)    CHECK_EXIT((float2)(vec[0]-1.0f, vec[1] ))

Definition at line 123 of file connect.cl.

◆ CHECK_W_TAIL

#define CHECK_W_TAIL (   vec)    CHECK_TAIL((float2)(vec[0]-1.0f, vec[1] ))

Definition at line 114 of file connect.cl.