AI_SDB_SpatialPortalElement Class Reference
[Spatial Database]

#include <AI_SDB_SpatialElements.h>

Inheritance diagram for AI_SDB_SpatialPortalElement:

AI_SDB_BBoxSpatialElement AI_SDB_SpatialElement

List of all members.

Detailed Description

A visibility interface between two sectors.

A sector conveys a spatial relationship between two sectors; that they are connected spatially through the portal, and that one sector is visible to another sector through the portal. This means especially the visibility routine to completely ignore a sector if none of the portals connecting to that sector are visible.

The portal is not considered a spatial hierarchy element because it obeys special rules; more notably, spatial queries ignore portals altogether and use sector nesting and bounding boxes instead. Visibility queries cull away non-visible portals and use the visible portals to determine what other sectors are visible.

Public Member Functions

 AI_SDB_SpatialPortalElement (const AI_BBox &initbbox, AI_SDB_SpatialSector *parentsector, AI_SDB_SpatialSector *connecttosector)
 ~AI_SDB_SpatialPortalElement ()
virtual void Accept (AI_SDB_VisibilityVisitor &visitor, int recursiondepth, AI_SDB_VisitorFlags flags)
virtual void Accept (AI_SDB_SpatialVisitor &visitor, int recursiondepth, AI_SDB_VisitorFlags flags)

Protected Attributes

AI_Ref< AI_SDB_SpatialSectorm_parentsector
AI_Ref< AI_SDB_SpatialSectorm_otherside

Constructor & Destructor Documentation

AI_SDB_SpatialPortalElement::AI_SDB_SpatialPortalElement ( const AI_BBox initbbox,
AI_SDB_SpatialSector parentsector,
AI_SDB_SpatialSector connecttosector 
) [inline]

AI_SDB_SpatialPortalElement::~AI_SDB_SpatialPortalElement (  )  [inline]

Member Function Documentation

void AI_SDB_SpatialPortalElement::Accept ( AI_SDB_VisibilityVisitor visitor,
int  recursiondepth,
AI_SDB_VisitorFlags  flags 
) [virtual]

get processed by a visitor. The element can do some tests, call nested objects, etc. and then will call Visit() on the visitor if this element should be considered "visible" or "contained" as the case may be. the Visitor then processes the element in some visitor-dependent manner.

Reimplemented from AI_SDB_BBoxSpatialElement.

void AI_SDB_SpatialPortalElement::Accept ( AI_SDB_SpatialVisitor visitor,
int  recursiondepth,
AI_SDB_VisitorFlags  flags 
) [virtual]

Reimplemented from AI_SDB_BBoxSpatialElement.

Member Data Documentation

The documentation for this class was generated from the following files: