Recast Navigation
Navigation-mesh Toolset for Games
Loading...
Searching...
No Matches
ChunkyTriMesh.h
Go to the documentation of this file.
1//
2// Copyright (c) 2009-2010 Mikko Mononen memon@inside.org
3//
4// This software is provided 'as-is', without any express or implied
5// warranty. In no event will the authors be held liable for any damages
6// arising from the use of this software.
7// Permission is granted to anyone to use this software for any purpose,
8// including commercial applications, and to alter it and redistribute it
9// freely, subject to the following restrictions:
10// 1. The origin of this software must not be misrepresented; you must not
11// claim that you wrote the original software. If you use this software
12// in a product, an acknowledgment in the product documentation would be
13// appreciated but is not required.
14// 2. Altered source versions must be plainly marked as such, and must not be
15// misrepresented as being the original software.
16// 3. This notice may not be removed or altered from any source distribution.
17//
18
19#ifndef CHUNKYTRIMESH_H
20#define CHUNKYTRIMESH_H
21
23{
24 float bmin[2];
25 float bmax[2];
26 int i;
27 int n;
28};
29
31{
32 inline rcChunkyTriMesh() : nodes(0), nnodes(0), tris(0), ntris(0), maxTrisPerChunk(0) {}
33 inline ~rcChunkyTriMesh() { delete [] nodes; delete [] tris; }
34
36 int nnodes;
37 int* tris;
38 int ntris;
40
41private:
42 // Explicitly disabled copy constructor and copy assignment operator.
44 rcChunkyTriMesh& operator=(const rcChunkyTriMesh&);
45};
46
49bool rcCreateChunkyTriMesh(const float* verts, const int* tris, int ntris,
50 int trisPerChunk, rcChunkyTriMesh* cm);
51
53int rcGetChunksOverlappingRect(const rcChunkyTriMesh* cm, float bmin[2], float bmax[2], int* ids, const int maxIds);
54
56int rcGetChunksOverlappingSegment(const rcChunkyTriMesh* cm, float p[2], float q[2], int* ids, const int maxIds);
57
58
59#endif // CHUNKYTRIMESH_H
int rcGetChunksOverlappingRect(const rcChunkyTriMesh *cm, float bmin[2], float bmax[2], int *ids, const int maxIds)
Returns the chunk indices which overlap the input rectable.
Definition ChunkyTriMesh.cpp:213
int rcGetChunksOverlappingSegment(const rcChunkyTriMesh *cm, float p[2], float q[2], int *ids, const int maxIds)
Returns the chunk indices which overlap the input segment.
Definition ChunkyTriMesh.cpp:283
bool rcCreateChunkyTriMesh(const float *verts, const int *tris, int ntris, int trisPerChunk, rcChunkyTriMesh *cm)
Creates partitioned triangle mesh (AABB tree), where each node contains at max trisPerChunk triangles...
Definition ChunkyTriMesh.cpp:142
Definition ChunkyTriMesh.h:23
int n
Definition ChunkyTriMesh.h:27
float bmax[2]
Definition ChunkyTriMesh.h:25
float bmin[2]
Definition ChunkyTriMesh.h:24
int i
Definition ChunkyTriMesh.h:26
Definition ChunkyTriMesh.h:31
rcChunkyTriMesh()
Definition ChunkyTriMesh.h:32
int * tris
Definition ChunkyTriMesh.h:37
int ntris
Definition ChunkyTriMesh.h:38
int maxTrisPerChunk
Definition ChunkyTriMesh.h:39
rcChunkyTriMeshNode * nodes
Definition ChunkyTriMesh.h:35
int nnodes
Definition ChunkyTriMesh.h:36
~rcChunkyTriMesh()
Definition ChunkyTriMesh.h:33