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 |