204 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			204 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								interface rcConfig {
							 | 
						||
| 
								 | 
							
								    void rcConfig();
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    /// The width of the field along the x-axis. [Limit: >= 0] [Units: vx]
							 | 
						||
| 
								 | 
							
								    attribute long width;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// The height of the field along the z-axis. [Limit: >= 0] [Units: vx]
							 | 
						||
| 
								 | 
							
								    attribute long height;
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    /// The width/height size of tile's on the xz-plane. [Limit: >= 0] [Units: vx]
							 | 
						||
| 
								 | 
							
								    attribute long tileSize;
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    /// The size of the non-navigable border around the heightfield. [Limit: >=0] [Units: vx]
							 | 
						||
| 
								 | 
							
								    attribute long borderSize;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// The xz-plane cell size to use for fields. [Limit: > 0] [Units: wu] 
							 | 
						||
| 
								 | 
							
								    attribute float cs;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// The y-axis cell size to use for fields. [Limit: > 0] [Units: wu]
							 | 
						||
| 
								 | 
							
								    attribute float ch;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// The minimum bounds of the field's AABB. [(x, y, z)] [Units: wu]
							 | 
						||
| 
								 | 
							
								    //attribute float[] bmin;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// The maximum bounds of the field's AABB. [(x, y, z)] [Units: wu]
							 | 
						||
| 
								 | 
							
								    //attribute float[] bmax;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// The maximum slope that is considered walkable. [Limits: 0 <= value < 90] [Units: Degrees] 
							 | 
						||
| 
								 | 
							
								    attribute float walkableSlopeAngle;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Minimum floor to 'ceiling' height that will still allow the floor area to 
							 | 
						||
| 
								 | 
							
								    /// be considered walkable. [Limit: >= 3] [Units: vx] 
							 | 
						||
| 
								 | 
							
								    attribute long walkableHeight;
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    /// Maximum ledge height that is considered to still be traversable. [Limit: >=0] [Units: vx] 
							 | 
						||
| 
								 | 
							
								    attribute long walkableClimb;
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    /// The distance to erode/shrink the walkable area of the heightfield away from 
							 | 
						||
| 
								 | 
							
								    /// obstructions.  [Limit: >=0] [Units: vx] 
							 | 
						||
| 
								 | 
							
								    attribute long walkableRadius;
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    /// The maximum allowed length for contour edges along the border of the mesh. [Limit: >=0] [Units: vx] 
							 | 
						||
| 
								 | 
							
								    attribute long maxEdgeLen;
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    /// The maximum distance a simplfied contour's border edges should deviate 
							 | 
						||
| 
								 | 
							
								    /// the original raw contour. [Limit: >=0] [Units: vx]
							 | 
						||
| 
								 | 
							
								    attribute float maxSimplificationError;
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    /// The minimum number of cells allowed to form isolated island areas. [Limit: >=0] [Units: vx] 
							 | 
						||
| 
								 | 
							
								    attribute long minRegionArea;
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    /// Any regions with a span count smaller than this value will, if possible, 
							 | 
						||
| 
								 | 
							
								    /// be merged with larger regions. [Limit: >=0] [Units: vx] 
							 | 
						||
| 
								 | 
							
								    attribute long mergeRegionArea;
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    /// The maximum number of vertices allowed for polygons generated during the 
							 | 
						||
| 
								 | 
							
								    /// contour to polygon conversion process. [Limit: >= 3] 
							 | 
						||
| 
								 | 
							
								    attribute long maxVertsPerPoly;
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    /// Sets the sampling distance to use when generating the detail mesh.
							 | 
						||
| 
								 | 
							
								    /// (For height detail only.) [Limits: 0 or >= 0.9] [Units: wu] 
							 | 
						||
| 
								 | 
							
								    attribute float detailSampleDist;
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    /// The maximum distance the detail mesh surface should deviate from heightfield
							 | 
						||
| 
								 | 
							
								    /// data. (For height detail only.) [Limit: >=0] [Units: wu] 
							 | 
						||
| 
								 | 
							
								    attribute float detailSampleMaxError;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								interface Vec3 {
							 | 
						||
| 
								 | 
							
								    void Vec3();
							 | 
						||
| 
								 | 
							
								    void Vec3(float x, float y, float z);
							 | 
						||
| 
								 | 
							
								    attribute float x;
							 | 
						||
| 
								 | 
							
								    attribute float y;
							 | 
						||
| 
								 | 
							
								    attribute float z;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								interface Triangle {
							 | 
						||
| 
								 | 
							
								    void Triangle();
							 | 
						||
| 
								 | 
							
								    [Const, Ref] Vec3 getPoint(long n);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								interface DebugNavMesh {
							 | 
						||
| 
								 | 
							
								    void DebugNavMesh();
							 | 
						||
| 
								 | 
							
								    long getTriangleCount();
							 | 
						||
| 
								 | 
							
								    [Const, Ref] Triangle getTriangle(long n);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								interface dtNavMesh {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								interface NavmeshData {
							 | 
						||
| 
								 | 
							
								    void NavmeshData();
							 | 
						||
| 
								 | 
							
								    attribute any dataPointer;
							 | 
						||
| 
								 | 
							
								    attribute long size;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								interface NavPath
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    long getPointCount();
							 | 
						||
| 
								 | 
							
								    [Const, Ref] Vec3 getPoint(long n);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								interface dtObstacleRef {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								interface dtCrowdAgentParams {
							 | 
						||
| 
								 | 
							
								    void dtCrowdAgentParams();
							 | 
						||
| 
								 | 
							
								    attribute float radius;                        ///< Agent radius. [Limit: >= 0]
							 | 
						||
| 
								 | 
							
								    attribute float height;                        ///< Agent height. [Limit: > 0]
							 | 
						||
| 
								 | 
							
								    attribute float maxAcceleration;                ///< Maximum allowed acceleration. [Limit: >= 0]
							 | 
						||
| 
								 | 
							
								    attribute float maxSpeed;                        ///< Maximum allowed speed. [Limit: >= 0]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Defines how close a collision element must be before it is considered for steering behaviors. [Limits: > 0]
							 | 
						||
| 
								 | 
							
								    attribute float collisionQueryRange;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    attribute float pathOptimizationRange;        ///< The path visibility optimization range. [Limit: > 0]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// How aggresive the agent manager should be at avoiding collisions with this agent. [Limit: >= 0]
							 | 
						||
| 
								 | 
							
								    attribute float separationWeight;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// Flags that impact steering behavior. (See: #UpdateFlags)
							 | 
						||
| 
								 | 
							
								    attribute long updateFlags;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// The index of the avoidance configuration to use for the agent. 
							 | 
						||
| 
								 | 
							
								    /// [Limits: 0 <= value <= #DT_CROWD_MAX_OBSTAVOIDANCE_PARAMS]
							 | 
						||
| 
								 | 
							
								    attribute long obstacleAvoidanceType;    
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// The index of the query filter used by this agent.
							 | 
						||
| 
								 | 
							
								    attribute long queryFilterType;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /// User defined data attached to the agent.
							 | 
						||
| 
								 | 
							
								    //attribute VoidPtr userData;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								interface NavMesh {
							 | 
						||
| 
								 | 
							
								    void NavMesh();
							 | 
						||
| 
								 | 
							
								    void destroy();
							 | 
						||
| 
								 | 
							
								    void build([Const] float[] positions, [Const] long positionCount, [Const] long[] indices, [Const] long indexCount, [Const, Ref] rcConfig config);
							 | 
						||
| 
								 | 
							
								    void buildFromNavmeshData(NavmeshData data);
							 | 
						||
| 
								 | 
							
								    [Value] NavmeshData getNavmeshData();
							 | 
						||
| 
								 | 
							
								    void freeNavmeshData(NavmeshData data);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    [Value] DebugNavMesh getDebugNavMesh();
							 | 
						||
| 
								 | 
							
								    [Value] Vec3 getClosestPoint([Const, Ref] Vec3 position);
							 | 
						||
| 
								 | 
							
								    [Value] Vec3 getRandomPointAround([Const, Ref] Vec3 position, float maxRadius);
							 | 
						||
| 
								 | 
							
								    [Value] Vec3 moveAlong([Const, Ref] Vec3 position, [Const, Ref] Vec3 destination);
							 | 
						||
| 
								 | 
							
								    dtNavMesh getNavMesh();
							 | 
						||
| 
								 | 
							
								    [Value] NavPath computePath([Const, Ref] Vec3 start, [Const, Ref] Vec3 end);
							 | 
						||
| 
								 | 
							
								    void setDefaultQueryExtent([Const, Ref] Vec3 extent);
							 | 
						||
| 
								 | 
							
								    [Value] Vec3 getDefaultQueryExtent();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    dtObstacleRef addCylinderObstacle([Const, Ref] Vec3 position, float radius, float height);
							 | 
						||
| 
								 | 
							
								    dtObstacleRef addBoxObstacle([Const, Ref] Vec3 position, [Const, Ref] Vec3 extent, float angle);
							 | 
						||
| 
								 | 
							
								    void removeObstacle(dtObstacleRef obstacle);
							 | 
						||
| 
								 | 
							
								    void update();
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								interface Crowd {
							 | 
						||
| 
								 | 
							
								    void Crowd([Const] long maxAgents, [Const] float maxAgentRadius, dtNavMesh nav);
							 | 
						||
| 
								 | 
							
								    void destroy();
							 | 
						||
| 
								 | 
							
								    long addAgent([Const, Ref] Vec3 position, [Const] dtCrowdAgentParams params);
							 | 
						||
| 
								 | 
							
								    void removeAgent([Const] long idx);
							 | 
						||
| 
								 | 
							
								    void update([Const] float dt);
							 | 
						||
| 
								 | 
							
								    [Value] Vec3 getAgentPosition([Const] long idx);
							 | 
						||
| 
								 | 
							
								    [Value] Vec3 getAgentVelocity([Const] long idx);
							 | 
						||
| 
								 | 
							
								    [Value] Vec3 getAgentNextTargetPath([Const] long idx);
							 | 
						||
| 
								 | 
							
								    long getAgentState([Const] long idx);
							 | 
						||
| 
								 | 
							
								    boolean overOffmeshConnection([Const] long idx);
							 | 
						||
| 
								 | 
							
								    void agentGoto([Const] long idx, [Const, Ref] Vec3 destination);
							 | 
						||
| 
								 | 
							
								    void agentTeleport([Const] long idx, [Const, Ref] Vec3 destination);
							 | 
						||
| 
								 | 
							
								    [Value] dtCrowdAgentParams getAgentParameters([Const] long idx);
							 | 
						||
| 
								 | 
							
								    void setAgentParameters([Const] long idx, [Const] dtCrowdAgentParams params);
							 | 
						||
| 
								 | 
							
								    void setDefaultQueryExtent([Const, Ref] Vec3 extent);
							 | 
						||
| 
								 | 
							
								    [Value] Vec3 getDefaultQueryExtent();
							 | 
						||
| 
								 | 
							
								    [Value] NavPath getCorners([Const] long idx);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								interface RecastConfigHelper {
							 | 
						||
| 
								 | 
							
								    void RecastConfigHelper();
							 | 
						||
| 
								 | 
							
								    void setBMAX([Ref] rcConfig config, [Const] float x, [Const] float y, [Const] float z);
							 | 
						||
| 
								 | 
							
								    void setBMIN([Ref] rcConfig config, [Const] float x, [Const] float y, [Const] float z);
							 | 
						||
| 
								 | 
							
								    [Value] Vec3 getBMAX([Ref] rcConfig config);
							 | 
						||
| 
								 | 
							
								    [Value] Vec3 getBMIN([Ref] rcConfig config);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								interface rcFloatArray {
							 | 
						||
| 
								 | 
							
									attribute float[] raw;
							 | 
						||
| 
								 | 
							
									void rcFloatArray(long num);
							 | 
						||
| 
								 | 
							
									[Const] long size();
							 | 
						||
| 
								 | 
							
									[Const] float at(long n);
							 | 
						||
| 
								 | 
							
									[Const] long set(long n, float value);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								interface rcIntArray {
							 | 
						||
| 
								 | 
							
									attribute long[] raw;
							 | 
						||
| 
								 | 
							
									void rcIntArray(long num);
							 | 
						||
| 
								 | 
							
									[Const] long size();
							 | 
						||
| 
								 | 
							
									[Const] long at(long n);
							 | 
						||
| 
								 | 
							
									[Const] long set(long n, long value);
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 |