Search Shortcut cmd + k | ctrl + k
se3

Provides SE(3) rigid transformations (combinations of rotations and translations in 3D) as DuckDB scalar functions.

Maintainer(s): jokasimr

Installing and Loading

INSTALL se3 FROM community;
LOAD se3;

Example

SELECT se3_apply(
    quat_from_axis_angle(
        struct_pack(x:=0.0, y:=0.0, z:=1.0), -- rotation axis (Z)
        pi()/2.0                             -- 90 degrees
    ),
    struct_pack(x:=1.0, y:=0.0, z:=0.0)      -- point
);                                           -- returns (0., 1., 0.)

About se3

This extension provides SE(3) rigid transformations, implemented as DuckDB scalar functions.

Features:

  • Sequences of rotations and translations can be combined to a 7 DOF struct that represents one combined translation then rotation. See se3_compose.
  • Transformations can be efficiently applied to points in 3D without calling trigonometric functions. See se3_apply().

For full documentation see: https://github.com/jokasimr/se3.

Added Functions

function_name function_type description comment examples
qconj scalar NULL NULL  
qmul scalar NULL NULL  
qnorm2 scalar NULL NULL  
quat_from_axis_angle scalar NULL NULL  
se3_apply scalar NULL NULL  
se3_compose scalar NULL NULL  
se3_from_axis_angle scalar NULL NULL  
se3_identity scalar NULL NULL  
se3_inv scalar NULL NULL  
se3_make scalar NULL NULL  
vadd scalar NULL NULL  
vangle scalar NULL NULL  
vcos_angle scalar NULL NULL  
vcross scalar NULL NULL  
vdot scalar NULL NULL  
vnorm scalar NULL NULL  
vnorm2 scalar NULL NULL  
vnormalize scalar NULL NULL  
vproj scalar NULL NULL  
vrej scalar NULL NULL  
vscale scalar NULL NULL  
vsub scalar NULL NULL  
vvec scalar NULL NULL  

Overloaded Functions

| function_name | function_type | description | comment | examples | |—————|—————|————-|———|———-|

Added Types

| type_name | type_size | logical_type | type_category | internal | |———–|———-:|————–|—————|———-|

Added Settings

| name | description | input_type | scope | aliases | |——|————-|————|——-|———|