本文整理汇总了C++中idVec2类的典型用法代码示例。如果您正苦于以下问题:C++ idVec2类的具体用法?C++ idVec2怎么用?C++ idVec2使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了idVec2类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: GetFirstBlockingObstacle
/*
============
GetFirstBlockingObstacle
============
*/
bool GetFirstBlockingObstacle( const obstacle_t *obstacles, int numObstacles, int skipObstacle, const idVec2 &startPos, const idVec2 &delta, float &blockingScale, int &blockingObstacle, int &blockingEdgeNum ) {
int i, edgeNums[2];
float dist, scale1, scale2;
idVec2 bounds[2];
// get bounds for the current movement delta
bounds[0] = startPos - idVec2( CM_BOX_EPSILON, CM_BOX_EPSILON );
bounds[1] = startPos + idVec2( CM_BOX_EPSILON, CM_BOX_EPSILON );
bounds[FLOATSIGNBITNOTSET(delta.x)].x += delta.x;
bounds[FLOATSIGNBITNOTSET(delta.y)].y += delta.y;
// test for obstacles blocking the path
blockingScale = idMath::INFINITY;
dist = delta.Length();
for ( i = 0; i < numObstacles; i++ ) {
if ( i == skipObstacle ) {
continue;
}
if ( bounds[0].x > obstacles[i].bounds[1].x || bounds[0].y > obstacles[i].bounds[1].y ||
bounds[1].x < obstacles[i].bounds[0].x || bounds[1].y < obstacles[i].bounds[0].y ) {
continue;
}
if ( obstacles[i].winding.RayIntersection( startPos, delta, scale1, scale2, edgeNums ) ) {
if ( scale1 < blockingScale && scale1 * dist > -0.01f && scale2 * dist > 0.01f ) {
blockingScale = scale1;
blockingObstacle = i;
blockingEdgeNum = edgeNums[0];
}
}
}
return ( blockingScale < 1.0f );
}
开发者ID:0culus,项目名称:Doom3-for-MacOSX-,代码行数:37,代码来源:AI_pathing.cpp
示例2: GetString
/*
================
idDict::GetVec2
================
*/
bool idDict::GetVec2( const char *key, const char *defaultString, idVec2 &out ) const {
bool found;
const char *s;
if( !defaultString ) {
defaultString = "0 0";
}
found = GetString( key, defaultString, &s );
out.Zero();
sscanf( s, "%f %f", &out.x, &out.y );
return found;
}
开发者ID:revelator,项目名称:Revelation,代码行数:16,代码来源:Dict.cpp
示例3: Init
void pathNode_s::Init() {
dir = 0;
pos.Zero();
delta.Zero();
obstacle = -1;
edgeNum = -1;
numNodes = 0;
parent = children[0] = children[1] = next = NULL;
}
开发者ID:0culus,项目名称:Doom3-for-MacOSX-,代码行数:9,代码来源:AI_pathing.cpp
注:本文中的idVec2类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论