forked from LeenkxTeam/LNXSDK
		
	
		
			
				
	
	
		
			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);
 | |
| };
 | |
| 
 |