|
@@ -2307,7 +2307,7 @@ ConsoleMethod(Scene, pickArea, const char*, 4, 9, "(startx/y, endx/y, [sceneGrou
|
|
|
"@param endx/y The coordinates of the end point as either (\"x y\") or (x,y)\n"
|
|
|
"@param sceneGroupMask Optional scene group mask. (-1) or empty string selects all groups.\n"
|
|
|
"@param sceneLayerMask Optional scene layer mask. (-1) or empty string selects all layers.\n"
|
|
|
- "@param pickMode Optional mode 'any', 'size' or 'collision' (default is 'size').\n"
|
|
|
+ "@param pickMode Optional mode 'any', 'aabb', 'oobb' or 'collision' (default is 'oobb').\n"
|
|
|
"@return Returns list of object IDs.")
|
|
|
{
|
|
|
// Upper left and lower right bound.
|
|
@@ -2370,7 +2370,7 @@ ConsoleMethod(Scene, pickArea, const char*, 4, 9, "(startx/y, endx/y, [sceneGrou
|
|
|
}
|
|
|
|
|
|
// Calculate pick mode.
|
|
|
- Scene::PickMode pickMode = Scene::PICK_SIZE;
|
|
|
+ Scene::PickMode pickMode = Scene::PICK_OOBB;
|
|
|
if ( (U32)argc > (firstArg + 2))
|
|
|
{
|
|
|
pickMode = Scene::getPickModeEnum(argv[firstArg + 2]);
|
|
@@ -2378,7 +2378,7 @@ ConsoleMethod(Scene, pickArea, const char*, 4, 9, "(startx/y, endx/y, [sceneGrou
|
|
|
if ( pickMode == Scene::PICK_INVALID )
|
|
|
{
|
|
|
Con::warnf("Scene::pickArea() - Invalid pick mode of %s", argv[firstArg + 2]);
|
|
|
- pickMode = Scene::PICK_SIZE;
|
|
|
+ pickMode = Scene::PICK_OOBB;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -2401,13 +2401,17 @@ ConsoleMethod(Scene, pickArea, const char*, 4, 9, "(startx/y, endx/y, [sceneGrou
|
|
|
{
|
|
|
pWorldQuery->anyQueryArea( aabb );
|
|
|
}
|
|
|
- else if ( pickMode == Scene::PICK_SIZE )
|
|
|
+ else if ( pickMode == Scene::PICK_AABB )
|
|
|
{
|
|
|
- pWorldQuery->renderQueryArea( aabb );
|
|
|
+ pWorldQuery->aabbQueryArea( aabb );
|
|
|
+ }
|
|
|
+ else if ( pickMode == Scene::PICK_OOBB )
|
|
|
+ {
|
|
|
+ pWorldQuery->oobbQueryArea( aabb );
|
|
|
}
|
|
|
else if ( pickMode == Scene::PICK_COLLISION )
|
|
|
{
|
|
|
- pWorldQuery->fixtureQueryArea( aabb );
|
|
|
+ pWorldQuery->collisionQueryArea( aabb );
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -2462,7 +2466,7 @@ ConsoleMethod(Scene, pickRay, const char*, 4, 9, "(startx/y, endx/y, [sceneGroup
|
|
|
"@param endx/y The coordinates of the end point as either (\"x y\") or (x,y)\n"
|
|
|
"@param sceneGroupMask Optional scene group mask. (-1) or empty string selects all groups.\n"
|
|
|
"@param sceneLayerMask Optional scene layer mask. (-1) or empty string selects all layers.\n"
|
|
|
- "@param pickMode Optional mode 'any', 'size' or 'collision' (default is 'size').\n"
|
|
|
+ "@param pickMode Optional mode 'any', 'aabb', 'oobb' or 'collision' (default is 'oobb').\n"
|
|
|
"@return Returns list of object IDs.")
|
|
|
{
|
|
|
// Upper left and lower right bound.
|
|
@@ -2525,7 +2529,7 @@ ConsoleMethod(Scene, pickRay, const char*, 4, 9, "(startx/y, endx/y, [sceneGroup
|
|
|
}
|
|
|
|
|
|
// Calculate pick mode.
|
|
|
- Scene::PickMode pickMode = Scene::PICK_SIZE;
|
|
|
+ Scene::PickMode pickMode = Scene::PICK_OOBB;
|
|
|
if ( (U32)argc > (firstArg + 2))
|
|
|
{
|
|
|
pickMode = Scene::getPickModeEnum(argv[firstArg + 2]);
|
|
@@ -2533,7 +2537,7 @@ ConsoleMethod(Scene, pickRay, const char*, 4, 9, "(startx/y, endx/y, [sceneGroup
|
|
|
if ( pickMode == Scene::PICK_INVALID )
|
|
|
{
|
|
|
Con::warnf("Scene::pickRay() - Invalid pick mode of %s", argv[firstArg + 2]);
|
|
|
- pickMode = Scene::PICK_SIZE;
|
|
|
+ pickMode = Scene::PICK_OOBB;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -2549,13 +2553,17 @@ ConsoleMethod(Scene, pickRay, const char*, 4, 9, "(startx/y, endx/y, [sceneGroup
|
|
|
{
|
|
|
pWorldQuery->anyQueryRay( v1, v2 );
|
|
|
}
|
|
|
- else if ( pickMode == Scene::PICK_SIZE )
|
|
|
+ else if ( pickMode == Scene::PICK_AABB )
|
|
|
+ {
|
|
|
+ pWorldQuery->aabbQueryRay( v1, v2 );
|
|
|
+ }
|
|
|
+ else if ( pickMode == Scene::PICK_OOBB )
|
|
|
{
|
|
|
- pWorldQuery->renderQueryRay( v1, v2 );
|
|
|
+ pWorldQuery->oobbQueryRay( v1, v2 );
|
|
|
}
|
|
|
else if ( pickMode == Scene::PICK_COLLISION )
|
|
|
{
|
|
|
- pWorldQuery->fixtureQueryRay( v1, v2 );
|
|
|
+ pWorldQuery->collisionQueryRay( v1, v2 );
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -2611,55 +2619,40 @@ ConsoleMethod(Scene, pickRay, const char*, 4, 9, "(startx/y, endx/y, [sceneGroup
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
-ConsoleMethod(Scene, pickRayCollision, const char*, 4, 8, "(startx/y, endx/y, [sceneGroupMask], [sceneLayerMask] ) Picks objects with collision shapes intersecting the specified ray with optional group/layer masks.\n"
|
|
|
- "Unlike other pick methods, this returns the complete detail for each object encountered, returning the collision point, normal and fraction of the ray intersection.\n"
|
|
|
- "@param startx/y The coordinates of the start point as either (\"x y\") or (x,y)\n"
|
|
|
- "@param endx/y The coordinates of the end point as either (\"x y\") or (x,y)\n"
|
|
|
- "@param sceneGroupMask Optional scene group mask. (-1) or empty string selects all groups.\n"
|
|
|
- "@param sceneLayerMask Optional scene layer mask. (-1) or empty string selects all layers.\n"
|
|
|
- "@return Returns a list of objects in blocks of detail items where each block represents a single object and its collision detail in the format:"
|
|
|
- "<ObjectId PointX PointY NormalX NormalY RayFraction ShapeIndex> <ObjectId PointX PointY NormalX NormalY RayFraction ShapeIndex> <ObjectId PointX PointY NormalX NormalY RayFraction ShapeIndex> etc.\n")
|
|
|
+ConsoleMethod(Scene, pickPoint, const char*, 3, 7, "(x / y, [sceneGroupMask], [sceneLayerMask], [pickMode] ) Picks objects intersecting the specified point with optional group/layer masks.\n"
|
|
|
+ "@param x/y The coordinate of the point as either (\"x y\") or (x,y)\n"
|
|
|
+ "@param sceneGroupMask Optional scene group mask. (-1) or empty string selects all groups.\n"
|
|
|
+ "@param sceneLayerMask Optional scene layer mask. (-1) or empty string selects all layers.\n"
|
|
|
+ "@param pickMode Optional mode 'any', 'aabb', 'oobb' or 'collision' (default is 'ooabb').\n"
|
|
|
+ "@return Returns list of object IDs.")
|
|
|
{
|
|
|
- // Upper left and lower right bound.
|
|
|
- Vector2 v1, v2;
|
|
|
+ // The point.
|
|
|
+ Vector2 point;
|
|
|
|
|
|
// The index of the first optional parameter.
|
|
|
U32 firstArg;
|
|
|
|
|
|
- // Grab the number of elements in the first two parameters.
|
|
|
- U32 elementCount1 = Utility::mGetStringElementCount(argv[2]);
|
|
|
- U32 elementCount2 = 1;
|
|
|
- if (argc > 3)
|
|
|
- elementCount2 = Utility::mGetStringElementCount(argv[3]);
|
|
|
+ // Grab the number of elements in the first parameter.
|
|
|
+ U32 elementCount = Utility::mGetStringElementCount(argv[2]);
|
|
|
|
|
|
- // ("x1 y1 x2 y2")
|
|
|
- if ((elementCount1 == 4) && (argc < 9))
|
|
|
+ // ("x y")
|
|
|
+ if ((elementCount == 2) && (argc < 8))
|
|
|
{
|
|
|
- v1 = Utility::mGetStringElementVector(argv[2]);
|
|
|
- v2 = Utility::mGetStringElementVector(argv[2], 2);
|
|
|
+ point = Utility::mGetStringElementVector(argv[2]);
|
|
|
firstArg = 3;
|
|
|
}
|
|
|
|
|
|
- // ("x1 y1", "x2 y2")
|
|
|
- else if ((elementCount1 == 2) && (elementCount2 == 2) && (argc > 3) && (argc < 9))
|
|
|
+ // (x, y)
|
|
|
+ else if ((elementCount == 1) && (argc > 3))
|
|
|
{
|
|
|
- v1 = Utility::mGetStringElementVector(argv[2]);
|
|
|
- v2 = Utility::mGetStringElementVector(argv[3]);
|
|
|
+ point = Vector2(dAtof(argv[2]), dAtof(argv[3]));
|
|
|
firstArg = 4;
|
|
|
}
|
|
|
|
|
|
- // (x1, y1, x2, y2)
|
|
|
- else if (argc > 5)
|
|
|
- {
|
|
|
- v1 = Vector2(dAtof(argv[2]), dAtof(argv[3]));
|
|
|
- v2 = Vector2(dAtof(argv[4]), dAtof(argv[5]));
|
|
|
- firstArg = 6;
|
|
|
- }
|
|
|
-
|
|
|
// Invalid
|
|
|
else
|
|
|
{
|
|
|
- Con::warnf("Scene::pickRayCollision() - Invalid number of parameters!");
|
|
|
+ Con::warnf("Scene::pickPoint() - Invalid number of parameters!");
|
|
|
return NULL;
|
|
|
}
|
|
|
|
|
@@ -2679,6 +2672,19 @@ ConsoleMethod(Scene, pickRayCollision, const char*, 4, 8, "(startx/y, endx/y, [s
|
|
|
sceneLayerMask = dAtoi(argv[firstArg + 1]);
|
|
|
}
|
|
|
|
|
|
+ // Calculate pick mode.
|
|
|
+ Scene::PickMode pickMode = Scene::PICK_OOBB;
|
|
|
+ if ( (U32)argc > (firstArg + 2 ))
|
|
|
+ {
|
|
|
+ pickMode = Scene::getPickModeEnum(argv[firstArg + 2]);
|
|
|
+ }
|
|
|
+ if ( pickMode == Scene::PICK_INVALID )
|
|
|
+ {
|
|
|
+ Con::warnf("Scene::pickPoint() - Invalid pick mode of %s", argv[firstArg + 2]);
|
|
|
+ pickMode = Scene::PICK_OOBB;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
// Fetch world query and clear results.
|
|
|
WorldQuery* pWorldQuery = object->getWorldQuery( true );
|
|
|
|
|
@@ -2687,10 +2693,26 @@ ConsoleMethod(Scene, pickRayCollision, const char*, 4, 8, "(startx/y, endx/y, [s
|
|
|
pWorldQuery->setQueryFilter( queryFilter );
|
|
|
|
|
|
// Perform query.
|
|
|
- pWorldQuery->fixtureQueryRay( v1, v2 );
|
|
|
-
|
|
|
- // Sanity!
|
|
|
- AssertFatal( pWorldQuery->getIsRaycastQueryResult(), "Invalid non-ray-cast query result returned." );
|
|
|
+ if ( pickMode == Scene::PICK_ANY )
|
|
|
+ {
|
|
|
+ pWorldQuery->anyQueryPoint( point );
|
|
|
+ }
|
|
|
+ else if ( pickMode == Scene::PICK_AABB )
|
|
|
+ {
|
|
|
+ pWorldQuery->aabbQueryPoint( point );
|
|
|
+ }
|
|
|
+ else if ( pickMode == Scene::PICK_OOBB )
|
|
|
+ {
|
|
|
+ pWorldQuery->oobbQueryPoint( point );
|
|
|
+ }
|
|
|
+ else if ( pickMode == Scene::PICK_COLLISION )
|
|
|
+ {
|
|
|
+ pWorldQuery->collisionQueryPoint( point );
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ AssertFatal( false, "Unsupported pick mode." );
|
|
|
+ }
|
|
|
|
|
|
// Fetch result count.
|
|
|
const U32 resultCount = pWorldQuery->getQueryResultsCount();
|
|
@@ -2699,9 +2721,6 @@ ConsoleMethod(Scene, pickRayCollision, const char*, 4, 8, "(startx/y, endx/y, [s
|
|
|
if ( resultCount == 0 )
|
|
|
return NULL;
|
|
|
|
|
|
- // Sort ray-cast result.
|
|
|
- pWorldQuery->sortRaycastQueryResult();
|
|
|
-
|
|
|
// Fetch results.
|
|
|
typeWorldQueryResultVector& queryResults = pWorldQuery->getQueryResults();
|
|
|
|
|
@@ -2717,21 +2736,14 @@ ConsoleMethod(Scene, pickRayCollision, const char*, 4, 8, "(startx/y, endx/y, [s
|
|
|
// Add Picked Objects to List.
|
|
|
for ( U32 n = 0; n < resultCount; n++ )
|
|
|
{
|
|
|
- // Fetch query result.
|
|
|
- const WorldQueryResult& queryResult = queryResults[n];
|
|
|
-
|
|
|
- bufferCount += dSprintf( pBuffer + bufferCount, maxBufferSize-bufferCount, "%d %g %g %g %g %g %d ",
|
|
|
- queryResult.mpSceneObject->getId(),
|
|
|
- queryResult.mPoint.x, queryResult.mPoint.y,
|
|
|
- queryResult.mNormal.x, queryResult.mNormal.y,
|
|
|
- queryResult.mFraction,
|
|
|
- queryResult.mShapeIndex );
|
|
|
+ // Output Object ID.
|
|
|
+ bufferCount += dSprintf( pBuffer + bufferCount, maxBufferSize-bufferCount, "%d ", queryResults[n].mpSceneObject->getId() );
|
|
|
|
|
|
// Finish early if we run out of buffer space.
|
|
|
if ( bufferCount >= maxBufferSize )
|
|
|
{
|
|
|
// Warn.
|
|
|
- Con::warnf("Scene::pickRayCollision() - Too many items picked to return to scripts!");
|
|
|
+ Con::warnf("Scene::pickPoint() - Too many items picked to return to scripts!");
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -2743,42 +2755,58 @@ ConsoleMethod(Scene, pickRayCollision, const char*, 4, 8, "(startx/y, endx/y, [s
|
|
|
return pBuffer;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
-ConsoleMethod(Scene, pickPoint, const char*, 3, 7, "(x / y, [sceneGroupMask], [sceneLayerMask], [pickMode] ) Picks objects intersecting the specified point with optional group/layer masks.\n"
|
|
|
- "@param x/y The coordinate of the point as either (\"x y\") or (x,y)\n"
|
|
|
- "@param sceneGroupMask Optional scene group mask. (-1) or empty string selects all groups.\n"
|
|
|
- "@param sceneLayerMask Optional scene layer mask. (-1) or empty string selects all layers.\n"
|
|
|
- "@param pickMode Optional mode 'any', 'size' or 'collision' (default is 'size').\n"
|
|
|
- "@return Returns list of object IDs.")
|
|
|
+ConsoleMethod(Scene, pickRayCollision, const char*, 4, 8, "(startx/y, endx/y, [sceneGroupMask], [sceneLayerMask] ) Picks objects with collision shapes intersecting the specified ray with optional group/layer masks.\n"
|
|
|
+ "Unlike other pick methods, this returns the complete detail for each object encountered, returning the collision point, normal and fraction of the ray intersection.\n"
|
|
|
+ "@param startx/y The coordinates of the start point as either (\"x y\") or (x,y)\n"
|
|
|
+ "@param endx/y The coordinates of the end point as either (\"x y\") or (x,y)\n"
|
|
|
+ "@param sceneGroupMask Optional scene group mask. (-1) or empty string selects all groups.\n"
|
|
|
+ "@param sceneLayerMask Optional scene layer mask. (-1) or empty string selects all layers.\n"
|
|
|
+ "@return Returns a list of objects in blocks of detail items where each block represents a single object and its collision detail in the format:"
|
|
|
+ "<ObjectId PointX PointY NormalX NormalY RayFraction ShapeIndex> <ObjectId PointX PointY NormalX NormalY RayFraction ShapeIndex> <ObjectId PointX PointY NormalX NormalY RayFraction ShapeIndex> etc.\n")
|
|
|
{
|
|
|
- // The point.
|
|
|
- Vector2 point;
|
|
|
+ // Upper left and lower right bound.
|
|
|
+ Vector2 v1, v2;
|
|
|
|
|
|
// The index of the first optional parameter.
|
|
|
U32 firstArg;
|
|
|
|
|
|
- // Grab the number of elements in the first parameter.
|
|
|
- U32 elementCount = Utility::mGetStringElementCount(argv[2]);
|
|
|
+ // Grab the number of elements in the first two parameters.
|
|
|
+ U32 elementCount1 = Utility::mGetStringElementCount(argv[2]);
|
|
|
+ U32 elementCount2 = 1;
|
|
|
+ if (argc > 3)
|
|
|
+ elementCount2 = Utility::mGetStringElementCount(argv[3]);
|
|
|
|
|
|
- // ("x y")
|
|
|
- if ((elementCount == 2) && (argc < 8))
|
|
|
+ // ("x1 y1 x2 y2")
|
|
|
+ if ((elementCount1 == 4) && (argc < 9))
|
|
|
{
|
|
|
- point = Utility::mGetStringElementVector(argv[2]);
|
|
|
+ v1 = Utility::mGetStringElementVector(argv[2]);
|
|
|
+ v2 = Utility::mGetStringElementVector(argv[2], 2);
|
|
|
firstArg = 3;
|
|
|
}
|
|
|
|
|
|
- // (x, y)
|
|
|
- else if ((elementCount == 1) && (argc > 3))
|
|
|
+ // ("x1 y1", "x2 y2")
|
|
|
+ else if ((elementCount1 == 2) && (elementCount2 == 2) && (argc > 3) && (argc < 9))
|
|
|
{
|
|
|
- point = Vector2(dAtof(argv[2]), dAtof(argv[3]));
|
|
|
+ v1 = Utility::mGetStringElementVector(argv[2]);
|
|
|
+ v2 = Utility::mGetStringElementVector(argv[3]);
|
|
|
firstArg = 4;
|
|
|
}
|
|
|
|
|
|
+ // (x1, y1, x2, y2)
|
|
|
+ else if (argc > 5)
|
|
|
+ {
|
|
|
+ v1 = Vector2(dAtof(argv[2]), dAtof(argv[3]));
|
|
|
+ v2 = Vector2(dAtof(argv[4]), dAtof(argv[5]));
|
|
|
+ firstArg = 6;
|
|
|
+ }
|
|
|
+
|
|
|
// Invalid
|
|
|
else
|
|
|
{
|
|
|
- Con::warnf("Scene::pickPoint() - Invalid number of parameters!");
|
|
|
+ Con::warnf("Scene::pickRayCollision() - Invalid number of parameters!");
|
|
|
return NULL;
|
|
|
}
|
|
|
|
|
@@ -2798,19 +2826,6 @@ ConsoleMethod(Scene, pickPoint, const char*, 3, 7, "(x / y, [sceneGroupMask], [s
|
|
|
sceneLayerMask = dAtoi(argv[firstArg + 1]);
|
|
|
}
|
|
|
|
|
|
- // Calculate pick mode.
|
|
|
- Scene::PickMode pickMode = Scene::PICK_SIZE;
|
|
|
- if ( (U32)argc > (firstArg + 2 ))
|
|
|
- {
|
|
|
- pickMode = Scene::getPickModeEnum(argv[firstArg + 2]);
|
|
|
- }
|
|
|
- if ( pickMode == Scene::PICK_INVALID )
|
|
|
- {
|
|
|
- Con::warnf("Scene::pickPoint() - Invalid pick mode of %s", argv[firstArg + 2]);
|
|
|
- pickMode = Scene::PICK_SIZE;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
// Fetch world query and clear results.
|
|
|
WorldQuery* pWorldQuery = object->getWorldQuery( true );
|
|
|
|
|
@@ -2819,22 +2834,10 @@ ConsoleMethod(Scene, pickPoint, const char*, 3, 7, "(x / y, [sceneGroupMask], [s
|
|
|
pWorldQuery->setQueryFilter( queryFilter );
|
|
|
|
|
|
// Perform query.
|
|
|
- if ( pickMode == Scene::PICK_ANY )
|
|
|
- {
|
|
|
- pWorldQuery->anyQueryPoint( point );
|
|
|
- }
|
|
|
- else if ( pickMode == Scene::PICK_SIZE )
|
|
|
- {
|
|
|
- pWorldQuery->renderQueryPoint( point );
|
|
|
- }
|
|
|
- else if ( pickMode == Scene::PICK_COLLISION )
|
|
|
- {
|
|
|
- pWorldQuery->fixtureQueryPoint( point );
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- AssertFatal( false, "Unsupported pick mode." );
|
|
|
- }
|
|
|
+ pWorldQuery->collisionQueryRay( v1, v2 );
|
|
|
+
|
|
|
+ // Sanity!
|
|
|
+ AssertFatal( pWorldQuery->getIsRaycastQueryResult(), "Invalid non-ray-cast query result returned." );
|
|
|
|
|
|
// Fetch result count.
|
|
|
const U32 resultCount = pWorldQuery->getQueryResultsCount();
|
|
@@ -2843,6 +2846,9 @@ ConsoleMethod(Scene, pickPoint, const char*, 3, 7, "(x / y, [sceneGroupMask], [s
|
|
|
if ( resultCount == 0 )
|
|
|
return NULL;
|
|
|
|
|
|
+ // Sort ray-cast result.
|
|
|
+ pWorldQuery->sortRaycastQueryResult();
|
|
|
+
|
|
|
// Fetch results.
|
|
|
typeWorldQueryResultVector& queryResults = pWorldQuery->getQueryResults();
|
|
|
|
|
@@ -2858,14 +2864,21 @@ ConsoleMethod(Scene, pickPoint, const char*, 3, 7, "(x / y, [sceneGroupMask], [s
|
|
|
// Add Picked Objects to List.
|
|
|
for ( U32 n = 0; n < resultCount; n++ )
|
|
|
{
|
|
|
- // Output Object ID.
|
|
|
- bufferCount += dSprintf( pBuffer + bufferCount, maxBufferSize-bufferCount, "%d ", queryResults[n].mpSceneObject->getId() );
|
|
|
+ // Fetch query result.
|
|
|
+ const WorldQueryResult& queryResult = queryResults[n];
|
|
|
+
|
|
|
+ bufferCount += dSprintf( pBuffer + bufferCount, maxBufferSize-bufferCount, "%d %g %g %g %g %g %d ",
|
|
|
+ queryResult.mpSceneObject->getId(),
|
|
|
+ queryResult.mPoint.x, queryResult.mPoint.y,
|
|
|
+ queryResult.mNormal.x, queryResult.mNormal.y,
|
|
|
+ queryResult.mFraction,
|
|
|
+ queryResult.mShapeIndex );
|
|
|
|
|
|
// Finish early if we run out of buffer space.
|
|
|
if ( bufferCount >= maxBufferSize )
|
|
|
{
|
|
|
// Warn.
|
|
|
- Con::warnf("Scene::pickPoint() - Too many items picked to return to scripts!");
|
|
|
+ Con::warnf("Scene::pickRayCollision() - Too many items picked to return to scripts!");
|
|
|
break;
|
|
|
}
|
|
|
}
|