#include <sector.h>
Inheritance diagram for iSector:
Public Methods | |
virtual csSector* | GetPrivateObject ()=0 |
@ Used by the engine to retrieve internal sector object (ugly). More... | |
virtual iObject* | QueryObject ()=0 |
Get the iObject for this sector. | |
virtual bool | HasFog () const=0 |
Has this sector fog? | |
virtual csFog* | GetFog () const=0 |
Return the fog structure (even if fog is disabled). | |
virtual void | SetFog (float density, const csColor &color)=0 |
Fill the fog structure with the given values. | |
virtual void | DisableFog ()=0 |
Disable fog in this sector. | |
virtual iMeshList* | GetMeshes ()=0 |
Get the list of meshes in this sector. | |
virtual iLightList* | GetLights ()=0 |
Get the list of static and pseudo-dynamic lights in this sector. | |
virtual iStatLight* | FindLight (float x, float y, float z, float dist) const=0 |
Find a light with the given position and radius. | |
virtual void | ShineLights ()=0 |
Calculate lighting for all objects in this sector. | |
virtual void | ShineLights (iMeshWrapper *)=0 |
Version of ShineLights() which only affects one mesh object. | |
virtual void | CalculateSectorBBox (csBox3 &bbox, bool do_meshes) const=0 |
Calculate the bounding box of all objects in this sector. More... | |
virtual void | SetVisibilityCuller (const char *Name)=0 |
Use the specified mesh object as the visibility culler for this sector. | |
virtual iVisibilityCuller* | GetVisibilityCuller () const=0 |
Get the visibility culler that is used for this sector. More... | |
virtual int | GetRecLevel () const=0 |
Get the current draw recursion level. | |
virtual iPolygon3D* | HitBeam (const csVector3 &start, const csVector3 &end, csVector3 &isect)=0 |
Follow a beam from start to end and return the first polygon that is hit. More... | |
virtual iMeshWrapper* | HitBeam (const csVector3 &start, const csVector3 &end, csVector3 &intersect, iPolygon3D **polygonPtr)=0 |
Follow a beam from start to end and return the first object that is hit. More... | |
virtual iSector* | FollowSegment (csReversibleTransform &t, csVector3 &new_position, bool &mirror, bool only_portals=false)=0 |
Follow a segment starting at this sector. More... | |
virtual void | Draw (iRenderView *rview)=0 |
Draw the sector with the given render view. |
A "sector" is a convex polyhedron, that possibly contains portals, things, sprites, lights and so on. Simply speaking, a "sector" is analogous to an real-world room, rooms are interconnected with doors and windows (e.g. portals), and rooms contain miscelaneous things, sprites and lights.
|
Calculate the bounding box of all objects in this sector. This function is not very efficient as it will traverse all objects in the sector one by one and compute a bounding box from that. |
|
Follow a segment starting at this sector. If the segment intersects with a polygon it will stop there unless the polygon is a portal in which case it will recursively go to that sector (possibly applying warping transformations) and continue there.
This routine will modify all the given parameters to reflect space warping. These should be used as the new camera transformation when you decide to really go to the new position.
This function returns the resulting sector and new_position will be set to the last position that you can go to before hitting a wall.
If only_portals is true then only portals will be checked. This means that intersection with normal polygons is not checked. This is a lot faster but it does mean that you need to use another collision detection system to test with walls. |
|
@ Used by the engine to retrieve internal sector object (ugly). @ |
|
Get the visibility culler that is used for this sector. NULL if none. |
|
Follow a beam from start to end and return the first object that is hit. In case it is a thing the iPolygon3D field will be filled with the polygon that was hit. If polygonPtr is null then the polygon will not be filled in. |
|
Follow a beam from start to end and return the first polygon that is hit. This function correctly traverse portals and space warping portals. Normally the sector you call this on should be the sector containing the 'start' point. 'isect' will be the intersection point if a polygon is returned. |