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); | ||
|  | }; | ||
|  | 
 |