C# 클래스 Axiom.SceneManagers.Bsp.BspLevel

Holds all the data associated with a Binary Space Parition (BSP) based indoor level.
The data used here is populated by loading level files via the BspLevelManager.Load method, although application users are more likely to call SceneManager.SetWorldGeometry which will automatically arrange the loading of the level. Note that this assumes that you have asked for an indoor-specialized SceneManager (specify SceneType.Indoor when calling Engine.GetSceneManager).

We currently only support loading from Quake3 Arena level files, although any source that can be converted into this classes structure could also be used. The Quake3 level load process is in a different class called Quake3Level to keep the specifics separate.

상속: Axiom.Core.Resource
파일 보기 프로젝트 열기: mono-soc-2011/axiom 1 사용 예제들

보호된 프로퍼티들

프로퍼티 타입 설명
brushes Axiom.SceneManagers.Bsp.BspBrush[]
bspOptions BspOptions
createParam NameValuePairList
faceGroups Axiom.SceneManagers.Bsp.BspStaticFaceGroup[]
indexes Axiom.Graphics.HardwareIndexBuffer
leafFaceGroups int[]
leafStart int
nodes Axiom.SceneManagers.Bsp.BspNode[]
numIndexes int
numLeaves int
objectToNodeMap BspNode>.MultiMap
patchIndexCount int
patchVertexCount int
patches PatchSurface>.AxiomSortedCollection
playerStarts List
vertexData Axiom.Graphics.VertexData
visData VisData

공개 메소드들

메소드 설명
BspLevel ( ResourceManager parent, string name, System.UInt64 handle, string group, bool isManual, IManualResourceLoader loader, NameValuePairList createParams ) : System

Default constructor - used by BspResourceManager (do not call directly).

BuildQuake3Patches ( int vertOffset, int indexOffset ) : void
CalculateLoadingStages ( string filename ) : int
FindLeaf ( Vector3 point ) : Axiom.SceneManagers.Bsp.BspNode

Walks the entire BSP tree and returns the leaf which contains the given point.

InitQuake3Patches ( Quake3Level q3lvl, Axiom.Graphics.VertexDeclaration decl ) : void
IsLeafVisible ( Axiom.SceneManagers.Bsp.BspNode from, Axiom.SceneManagers.Bsp.BspNode to ) : bool

Determines if one leaf node is visible from another.

Load ( Stream stream ) : void

보호된 메소드들

메소드 설명
LoadEntities ( Quake3Level q3lvl ) : void

Internal method for parsing chosen entities.

LoadQuake3Level ( Quake3Level q3lvl ) : void

/** Internal utility function for loading data from Quake3.

QuakeVertexToBspVertex ( InternalBspVertex src, BspVertex &dest, TextureLightMap &texLightMap ) : void
TagNodesWithObject ( Axiom.SceneManagers.Bsp.BspNode node, Axiom.Core.MovableObject obj, Vector3 pos ) : void
load ( ) : void

Generic load - called by Plugin_BSPSceneManager.BspResourceManager.

unload ( ) : void

Generic unload - called by BspResourceManager.

비공개 메소드들

메소드 설명
NotifyObjectDetached ( Axiom.Core.MovableObject obj ) : void

Internal method, makes sure an object is removed from the leaves when detached from a node.

NotifyObjectMoved ( Axiom.Core.MovableObject obj, Vector3 pos ) : void

Ensures that the Axiom.Core.SceneObject is attached to the right leaves of the BSP tree.

calculateLoadingStages ( Stream stream ) : int

메소드 상세

BspLevel() 공개 메소드

Default constructor - used by BspResourceManager (do not call directly).
public BspLevel ( ResourceManager parent, string name, System.UInt64 handle, string group, bool isManual, IManualResourceLoader loader, NameValuePairList createParams ) : System
parent Axiom.Core.ResourceManager
name string
handle System.UInt64
group string
isManual bool
loader IManualResourceLoader
createParams NameValuePairList
리턴 System

BuildQuake3Patches() 공개 메소드

public BuildQuake3Patches ( int vertOffset, int indexOffset ) : void
vertOffset int
indexOffset int
리턴 void

CalculateLoadingStages() 공개 정적인 메소드

public static CalculateLoadingStages ( string filename ) : int
filename string
리턴 int

FindLeaf() 공개 메소드

Walks the entire BSP tree and returns the leaf which contains the given point.
public FindLeaf ( Vector3 point ) : Axiom.SceneManagers.Bsp.BspNode
point Vector3
리턴 Axiom.SceneManagers.Bsp.BspNode

InitQuake3Patches() 공개 메소드

public InitQuake3Patches ( Quake3Level q3lvl, Axiom.Graphics.VertexDeclaration decl ) : void
q3lvl Quake3Level
decl Axiom.Graphics.VertexDeclaration
리턴 void

IsLeafVisible() 공개 메소드

Determines if one leaf node is visible from another.
public IsLeafVisible ( Axiom.SceneManagers.Bsp.BspNode from, Axiom.SceneManagers.Bsp.BspNode to ) : bool
from Axiom.SceneManagers.Bsp.BspNode
to Axiom.SceneManagers.Bsp.BspNode
리턴 bool

Load() 공개 메소드

public Load ( Stream stream ) : void
stream Stream
리턴 void

LoadEntities() 보호된 메소드

Internal method for parsing chosen entities.
protected LoadEntities ( Quake3Level q3lvl ) : void
q3lvl Quake3Level
리턴 void

LoadQuake3Level() 보호된 메소드

/** Internal utility function for loading data from Quake3.
protected LoadQuake3Level ( Quake3Level q3lvl ) : void
q3lvl Quake3Level
리턴 void

QuakeVertexToBspVertex() 보호된 메소드

protected QuakeVertexToBspVertex ( InternalBspVertex src, BspVertex &dest, TextureLightMap &texLightMap ) : void
src InternalBspVertex
dest BspVertex
texLightMap TextureLightMap
리턴 void

TagNodesWithObject() 보호된 메소드

protected TagNodesWithObject ( Axiom.SceneManagers.Bsp.BspNode node, Axiom.Core.MovableObject obj, Vector3 pos ) : void
node Axiom.SceneManagers.Bsp.BspNode
obj Axiom.Core.MovableObject
pos Vector3
리턴 void

load() 보호된 메소드

Generic load - called by Plugin_BSPSceneManager.BspResourceManager.
protected load ( ) : void
리턴 void

unload() 보호된 메소드

Generic unload - called by BspResourceManager.
protected unload ( ) : void
리턴 void

프로퍼티 상세

brushes 보호되어 있는 프로퍼티

protected BspBrush[],Axiom.SceneManagers.Bsp brushes
리턴 Axiom.SceneManagers.Bsp.BspBrush[]

bspOptions 보호되어 있는 프로퍼티

protected BspOptions,Axiom.SceneManagers.Bsp bspOptions
리턴 BspOptions

createParam 보호되어 있는 프로퍼티

protected NameValuePairList createParam
리턴 NameValuePairList

faceGroups 보호되어 있는 프로퍼티

Array of face groups, indexed into by contents of mLeafFaceGroups.
protected BspStaticFaceGroup[],Axiom.SceneManagers.Bsp faceGroups
리턴 Axiom.SceneManagers.Bsp.BspStaticFaceGroup[]

indexes 보호되어 있는 프로퍼티

protected HardwareIndexBuffer,Axiom.Graphics indexes
리턴 Axiom.Graphics.HardwareIndexBuffer

leafFaceGroups 보호되어 있는 프로퍼티

Array of indexes into the faceGroups array. This buffer is organised by leaf node so leaves can just use contiguous chunks of it and get repointed to the actual entries in faceGroups.
protected int[] leafFaceGroups
리턴 int[]

leafStart 보호되어 있는 프로퍼티

protected int leafStart
리턴 int

nodes 보호되어 있는 프로퍼티

protected BspNode[],Axiom.SceneManagers.Bsp nodes
리턴 Axiom.SceneManagers.Bsp.BspNode[]

numIndexes 보호되어 있는 프로퍼티

Indexes for the whole level, will be copied to the real indexdata per frame.
protected int numIndexes
리턴 int

numLeaves 보호되어 있는 프로퍼티

protected int numLeaves
리턴 int

objectToNodeMap 보호되어 있는 프로퍼티

protected MultiMap objectToNodeMap
리턴 BspNode>.MultiMap

patchIndexCount 보호되어 있는 프로퍼티

Total number of indexes required for all patches.
protected int patchIndexCount
리턴 int

patchVertexCount 보호되어 있는 프로퍼티

Total number of vertices required for all patches.
protected int patchVertexCount
리턴 int

patches 보호되어 있는 프로퍼티

Storage of patches
protected AxiomSortedCollection patches
리턴 PatchSurface>.AxiomSortedCollection

playerStarts 보호되어 있는 프로퍼티

protected List playerStarts
리턴 List

vertexData 보호되어 있는 프로퍼티

Vertex data holding all the data for the level, but able to render parts of it/
protected VertexData,Axiom.Graphics vertexData
리턴 Axiom.Graphics.VertexData

visData 보호되어 있는 프로퍼티

protected VisData visData
리턴 VisData