Perception Tool Kit (PTK) API Guide
point.h File Reference

Introduction

Declarations for PTK_Point and PTK_Vector struct+functions.

Include dependency graph for point.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

union  PTK_Vector_Meta
 Definition of vector meta data. More...
 
struct  PTK_Vector
 Definition of a point. More...
 
union  PTK_Vector_d_Meta
 Definition of doube precision vector meta data. More...
 
struct  PTK_Vector_d
 Definition of a double precision Vector. More...
 
struct  PTK_2D_Vector
 Definition of a 2D point. More...
 

Macros

#define PTK_POINT_H
 

Typedefs

typedef PTK_Vector PTK_Point
 Definition of a point. More...
 
typedef PTK_Vector_d PTK_Point_d
 Definition of a double precision Point. More...
 
typedef PTK_2D_Vector PTK_2D_Point
 

Functions

void PTK_Point_set (PTK_Point *dst, float x, float y, float z)
 Updates all three components stored within the given PTK_Point to match those given as arguments, to be used primarily for convenience when initializing a point. More...
 
void PTK_Vector_add (PTK_Vector *dst, const PTK_Vector *src1, const PTK_Vector *src2)
 Perform component-wise addition of the vectors stored in src1 and src2, writing the result to dst. More...
 
void PTK_Vector_subtract (PTK_Vector *dst, const PTK_Vector *src1, const PTK_Vector *src2)
 Perform component-wise subtraction, subtracting src2 from src1 and writing the result to dst. More...
 
void PTK_Vector_scale (PTK_Vector *dst, const PTK_Vector *src, float scale)
 Perform component-wise scaling of the given PTK Vector and store the result at dst. More...
 
void PTK_Point_transform (PTK_Point *dst, const PTK_Point *src, const PTK_RigidTransform *M)
 Perform a rigid transformation on the given point, d = (Mr*s) + Mt. More...
 
float PTK_Vector_dot2 (const PTK_Vector *p1, const PTK_Vector *p2)
 Compute the dot product of the two given vectors in 2D, given by r = ax*bx + ay*by. More...
 
float PTK_Vector_dot3 (const PTK_Vector *p1, const PTK_Vector *p2)
 Compute the dot product of the two given vectors in 3D, given by r = ax*bx + ay*by + az*bz. More...
 
float PTK_Vector_dot4 (const PTK_Vector *p1, const PTK_Vector *p2)
 Compute the dot product of the two given vectors in 3D, given by r = ax*bx + ay*by + az*bz + aw*bw. More...
 
void PTK_Vector_computeCrossProduct (PTK_Vector *__restrict dst, const PTK_Vector *__restrict a, const PTK_Vector *__restrict b)
 Computes the cross product of the two given vectors in 3D, given by rx = ay*bz - az*by ry = az*bx - ax*bz rz = ax*by - ay*bx. More...
 
float PTK_Vector_computeNorm (const PTK_Vector *v)
 Computes the L2 norm of the given vector, given by v = sqrt(vx*vx + vy*vy + vz*vz). More...
 
float PTK_Vector_normalize (PTK_Vector *__restrict dst, const PTK_Vector *__restrict in)
 Normalizes the given input vector and writes to an output vector. More...
 
void PTK_Point_tag (PTK_Point *pt, uint32_t tag)
 This sets tag bits for the given point. More...
 
void PTK_Point_untag (PTK_Point *pt, uint32_t tag)
 This removes tag bits for the given point. More...
 
uint32_t PTK_Point_isTagged (PTK_Point *pt, uint32_t tag)
 This checks if all of the bits set in tag are also set in the tag for the given PTK_Point. Additional bits may be set, but none may be missing from the given mask. More...
 
void PTK_Point_d_set (PTK_Point_d *dst, double x, double y, double z)
 Updates all three components stored within the given PTK_Point to match those given as arguments, to be used primarily for convenience when initializing a point. More...
 
void PTK_Vector_d_add (PTK_Vector_d *dst, PTK_Vector_d *src1, PTK_Vector_d *src2)
 Perform component-wise addition of the vectors stored in src1 and src2, writing the result to dst. More...
 
void PTK_Vector_d_subtract (PTK_Vector_d *dst, PTK_Vector_d *src1, PTK_Vector_d *src2)
 Perform component-wise subtraction, subtracting src2 from src1 and writing the result to dst. More...
 
void PTK_Vector_d_scale (PTK_Vector_d *dst, PTK_Vector_d *src, double scale)
 Perform component-wise scaling of the given PTK Vector and store the result at dst. More...
 
void PTK_Point_d_transform (PTK_Point_d *dst, PTK_Point_d *src, const PTK_RigidTransform_d *M)
 Perform a rigid transformation on the given point, d = (Mr*s) + Mt. More...
 
double PTK_Vector_d_dot2 (const PTK_Vector_d *p1, const PTK_Vector_d *p2)
 Compute the dot product of the two given vectors in 2D, given by r = ax*bx + ay*by. More...
 
double PTK_Vector_d_dot3 (const PTK_Vector_d *p1, const PTK_Vector_d *p2)
 Compute the dot product of the two given vectors in 3D, given by r = ax*bx + ay*by + az*bz. More...
 
double PTK_Vector_d_dot4 (const PTK_Vector_d *p1, const PTK_Vector_d *p2)
 Compute the dot product of the two given vectors in 3D, given by r = ax*bx + ay*by + az*bz + aw*bw. More...
 
void PTK_Point_d_tag (PTK_Point_d *pt, uint32_t tag)
 This sets tag bits for the given point. More...
 
void PTK_Point_d_untag (PTK_Point_d *pt, uint32_t tag)
 This removes tag bits for the given point. More...
 
uint32_t PTK_Point_d_isTagged (PTK_Point_d *pt, uint32_t tag)
 This checks if all of the bits set in tag are also set in the tag for the given PTK_Point. Additional bits may be set, but none may be missing from the given mask. More...
 

Macro Definition Documentation

◆ PTK_POINT_H

#define PTK_POINT_H

Typedef Documentation

◆ PTK_2D_Point