[ Maverik Level 3 functions ]

#

mav_HBBObjectAdd

mav_HBBObjectAdd, mav_HBBObjectRmv, mav_HBBIntersect, mav_HBBPointerReset, mav_HBBPointerPush, mav_HBBPointerPop, mav_HBBObjectNext, mav_HBBExecFn, mav_HBBSize, mav_HBBEmpty, mav_HBBDelete, mav_HBBConstructFromSMS

## Summary

SMS management: Hierachical Bounding Volume.

## Syntax

int mav_HBBObjectAdd(MAV_SMS *s, MAV_object *o);

int mav_HBBObjectRmv(MAV_SMS *s, MAV_object *o);

int mav_HBBIntersect(MAV_SMS *s, MAV_window *w, MAV_line *ln, MAV_objectIntersection *oi, MAV_object **o);

int mav_HBBPointerReset(MAV_SMS *s);

int mav_HBBPointerPush(MAV_SMS *s);

int mav_HBBPointerPop(MAV_SMS *s);

int mav_HBBObjectNext(MAV_SMS *s, MAV_object **o);

int mav_HBBExecFn(MAV_SMS *s, MAV_drawInfo *di, MAV_SMSExecFn *fn);

int mav_HBBSize(MAV_SMS *s, int *sz);

int mav_HBBEmpty(MAV_SMS *s, int *o);

int mav_HBBDelete(MAV_SMS *s, int *o);

void mav_HBBConstructFromSMS(MAV_SMS *target, MAV_SMS *from);

## Description

These are the callback routines for the HBB class of SMS. Each of these functions is registered for an SMS of this class on Maverik initialisation.

- mav_HBBObjectAdd adds object `o` to SMS `s`.

- mav_HBBObjectRmv removes object `o` from SMS `s`.

- mav_HBBIntersect returns in `o` the object in the SMS with the closest intersection with line `ln`. If an intersection is detected, the closest intersection point is returned in `oi`, and the result of the function is MAV_TRUE. If no intersection is detected, the result of the function is MAV_FALSE.

- mav_HBBPointerReset resets the SMS pointer to the start of the SMS.

- mav_HBBObjectNext returns in `o` the object at the current pointer position in the SMS.

- mav_HBBExecFn executes the callback function `fn`, passing it drawing information `di`.

- mav_HBBSize returns in `sz` the number of objects in SMS `s`.

Back to the index page.