当前位置: 首页>>代码示例>>C++>>正文


C++ idLexer类代码示例

本文整理汇总了C++中idLexer的典型用法代码示例。如果您正苦于以下问题:C++ idLexer类的具体用法?C++ idLexer怎么用?C++ idLexer使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了idLexer类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: ParsePlanes

/*
================
idAASFileLocal::ParsePlanes
================
*/
bool idAASFileLocal::ParsePlanes( idLexer &src )
{
    int numPlanes, i;
    idPlane plane;
    idVec4 vec;

    numPlanes = src.ParseInt();
    planeList.Resize( numPlanes );
    if ( !src.ExpectTokenString( "{" ) )
    {
        return false;
    }
    for ( i = 0; i < numPlanes; i++ )
    {
        src.ParseInt();
        if ( !src.Parse1DMatrix( 4, vec.ToFloatPtr() ) )
        {
            return false;
        }
        plane.SetNormal( vec.ToVec3() );
        plane.SetDist( vec[3] );
        planeList.Append( plane );
    }
    if ( !src.ExpectTokenString( "}" ) )
    {
        return false;
    }
    return true;
}
开发者ID:revelator,项目名称:Revelator-Doom3,代码行数:34,代码来源:AASFile.cpp

示例2: ParseReachabilities

/*
================
idAASFileLocal::ParseReachabilities
================
*/
bool idAASFileLocal::ParseReachabilities( idLexer &src, int areaNum )
{
    int num, j;
    aasArea_t *area;
    idReachability reach, *newReach;
    idReachability_Special *special;

    area = &areas[areaNum];

    num = src.ParseInt();
    src.ExpectTokenString( "{" );
    area->reach = NULL;
    area->rev_reach = NULL;
    area->travelFlags = AreaContentsTravelFlags( areaNum );
    for ( j = 0; j < num; j++ )
    {
        Reachability_Read( src, &reach );
        switch( reach.travelType )
        {
        case TFL_SPECIAL:
            newReach = special = new idReachability_Special();
            Reachability_Special_Read( src, special );
            break;
        default:
            newReach = new idReachability();
            break;
        }
        newReach->CopyBase( reach );
        newReach->fromAreaNum = areaNum;
        newReach->next = area->reach;
        area->reach = newReach;
    }
    src.ExpectTokenString( "}" );
    return true;
}
开发者ID:revelator,项目名称:Revelator-Doom3,代码行数:40,代码来源:AASFile.cpp

示例3: ParseFloat

/*
============
idAASSettings::ParseFloat
============
*/
bool idAASSettings::ParseFloat( idLexer &src, float &f ) {
	if ( !src.ExpectTokenString( "=" ) ) {
		return false;
	}
	f = src.ParseFloat();
	return true;
}
开发者ID:MSylvia,项目名称:iod3,代码行数:12,代码来源:AASFile.cpp

示例4: ParseClusters

/*
================
idAASFileLocal::ParseClusters
================
*/
bool idAASFileLocal::ParseClusters( idLexer &src )
{
    int numClusters, i;
    aasCluster_t cluster;

    numClusters = src.ParseInt();
    clusters.Resize( numClusters );
    if ( !src.ExpectTokenString( "{" ) )
    {
        return false;
    }
    for ( i = 0; i < numClusters; i++ )
    {
        src.ParseInt();
        src.ExpectTokenString( "(" );
        cluster.numAreas = src.ParseInt();
        cluster.numReachableAreas = src.ParseInt();
        cluster.firstPortal = src.ParseInt();
        cluster.numPortals = src.ParseInt();
        src.ExpectTokenString( ")" );
        clusters.Append( cluster );
    }
    if ( !src.ExpectTokenString( "}" ) )
    {
        return false;
    }
    return true;
}
开发者ID:revelator,项目名称:Revelator-Doom3,代码行数:33,代码来源:AASFile.cpp

示例5: ParseBool

/*
============
idAASSettings::ParseBool
============
*/
bool idAASSettings::ParseBool( idLexer &src, bool &b ) {
	if ( !src.ExpectTokenString( "=" ) ) {
		return false;
	}
	b = src.ParseBool();
	return true;
}
开发者ID:MSylvia,项目名称:iod3,代码行数:12,代码来源:AASFile.cpp

示例6: ParseInt

/*
============
idAASSettings::ParseInt
============
*/
bool idAASSettings::ParseInt( idLexer &src, int &i ) {
	if ( !src.ExpectTokenString( "=" ) ) {
		return false;
	}
	i = src.ParseInt();
	return true;
}
开发者ID:MSylvia,项目名称:iod3,代码行数:12,代码来源:AASFile.cpp

示例7: ParseVertices

/*
================
idAASFileLocal::ParseVertices
================
*/
bool idAASFileLocal::ParseVertices( idLexer &src )
{
    int numVertices, i;
    idVec3 vec;

    numVertices = src.ParseInt();
    vertices.Resize( numVertices );
    if ( !src.ExpectTokenString( "{" ) )
    {
        return false;
    }
    for ( i = 0; i < numVertices; i++ )
    {
        src.ParseInt();
        if ( !src.Parse1DMatrix( 3, vec.ToFloatPtr() ) )
        {
            return false;
        }
        vertices.Append( vec );
    }
    if ( !src.ExpectTokenString( "}" ) )
    {
        return false;
    }
    return true;
}
开发者ID:revelator,项目名称:Revelator-Doom3,代码行数:31,代码来源:AASFile.cpp

示例8:

/*
====================
idRenderModelMD5::ParseJoint
====================
*/
void idRenderModelMD5::ParseJoint( idLexer& parser, idMD5Joint* joint, idJointQuat* defaultPose )
{
	//
	// parse name
	//
	idToken	token;
	parser.ReadToken( &token );
	joint->name = token;
	
	//
	// parse parent
	//
	int num = parser.ParseInt();
	if( num < 0 )
	{
		joint->parent = NULL;
	}
	else
	{
		if( num >= joints.Num() - 1 )
		{
			parser.Error( "Invalid parent for joint '%s'", joint->name.c_str() );
		}
		joint->parent = &joints[ num ];
	}
	
	//
	// parse default pose
	//
	parser.Parse1DMatrix( 3, defaultPose->t.ToFloatPtr() );
	parser.Parse1DMatrix( 3, defaultPose->q.ToFloatPtr() );
	defaultPose->q.w = defaultPose->q.CalcW();
}
开发者ID:BielBdeLuna,项目名称:StormEngine2,代码行数:38,代码来源:Model_md5.cpp

示例9: ParseVector

/*
============
idAASSettings::ParseVector
============
*/
bool idAASSettings::ParseVector( idLexer &src, idVec3 &vec )
{
    if ( !src.ExpectTokenString( "=" ) )
    {
        return false;
    }
    return ( src.Parse1DMatrix( 3, vec.ToFloatPtr() ) != 0 );
}
开发者ID:revelator,项目名称:Revelator-Doom3,代码行数:13,代码来源:AASFile.cpp

示例10: ParsePortals

/*
================
idAASFileLocal::ParsePortals
================
*/
bool idAASFileLocal::ParsePortals( idLexer &src )
{
    int numPortals, i;
    aasPortal_t portal;

    numPortals = src.ParseInt();
    portals.Resize( numPortals );
    if ( !src.ExpectTokenString( "{" ) )
    {
        return false;
    }
    for ( i = 0; i < numPortals; i++ )
    {
        src.ParseInt();
        src.ExpectTokenString( "(" );
        portal.areaNum = src.ParseInt();
        portal.clusters[0] = src.ParseInt();
        portal.clusters[1] = src.ParseInt();
        portal.clusterAreaNum[0] = src.ParseInt();
        portal.clusterAreaNum[1] = src.ParseInt();
        src.ExpectTokenString( ")" );
        portals.Append( portal );
    }
    if ( !src.ExpectTokenString( "}" ) )
    {
        return false;
    }
    return true;
}
开发者ID:revelator,项目名称:Revelator-Doom3,代码行数:34,代码来源:AASFile.cpp

示例11: Reachability_Special_Read

/*
================
Reachability_Special_Read
================
*/
bool Reachability_Special_Read( idLexer &src, idReachability_Special *reach ) {
	idToken key, value;

	src.ExpectTokenString( "{" );
	while( src.ReadToken( &key ) ) {
		if ( key == "}" ) {
			return true;
		}
		src.ExpectTokenType( TT_STRING, 0, &value );
		reach->dict.Set( key, value );
	}
	return false;
}
开发者ID:MSylvia,项目名称:iod3,代码行数:18,代码来源:AASFile.cpp

示例12: ParseNodes

/*
================
idAASFileLocal::ParseNodes
================
*/
bool idAASFileLocal::ParseNodes( idLexer &src )
{
    int numNodes, i;
    aasNode_t node;

    numNodes = src.ParseInt();
    nodes.Resize( numNodes );
    if ( !src.ExpectTokenString( "{" ) )
    {
        return false;
    }
    for ( i = 0; i < numNodes; i++ )
    {
        src.ParseInt();
        src.ExpectTokenString( "(" );
        node.planeNum = src.ParseInt();
        node.children[0] = src.ParseInt();
        node.children[1] = src.ParseInt();
        src.ExpectTokenString( ")" );
        nodes.Append( node );
    }
    if ( !src.ExpectTokenString( "}" ) )
    {
        return false;
    }
    return true;
}
开发者ID:revelator,项目名称:Revelator-Doom3,代码行数:32,代码来源:AASFile.cpp

示例13: ParseContents

/*
================
idDeclAF::ParseContents
================
*/
bool idDeclAF::ParseContents( idLexer &src, int &c ) const {
	idToken token;
	idStr str;

	while( src.ReadToken( &token ) ) {
		str += token;
		if ( !src.CheckTokenString( "," ) ) {
			break;
		}
		str += ",";
	}
	c = ContentsFromString( str );
	return true;
}
开发者ID:anonreclaimer,项目名称:morpheus,代码行数:19,代码来源:DeclAF.cpp

示例14: ParseInOutStruct

/*
========================
ParseInOutStruct
========================
*/
void ParseInOutStruct( idLexer & src, int attribType, idList< inOutVariable_t > & inOutVars ) {
	src.ExpectTokenString( "{" );

	while( !src.CheckTokenString( "}" ) ) {
		inOutVariable_t var;

		idToken token;
		src.ReadToken( &token );
		var.type = token;
		src.ReadToken( &token );
		var.nameCg = token;

		if ( !src.CheckTokenString( ":" ) ) {
			src.SkipUntilString( ";" );
			continue;
		}

		src.ReadToken( &token );
		var.nameGLSL = token;
		src.ExpectTokenString( ";" );

		// convert the type
		for ( int i = 0; typeConversion[i].typeCG != NULL; i++ ) {
			if ( var.type.Cmp( typeConversion[i].typeCG ) == 0 ) {
				var.type = typeConversion[i].typeGLSL;
				break;
			}
		}

		// convert the semantic to a GLSL name
		for ( int i = 0; attribsPC[i].semantic != NULL; i++ ) {
			if ( ( attribsPC[i].flags & attribType ) != 0 ) {
				if ( var.nameGLSL.Cmp( attribsPC[i].semantic ) == 0 ) {
					var.nameGLSL = attribsPC[i].glsl;
					break;
				}
			}
		}

		// check if it was defined previously
		var.declareInOut = true;
		for ( int i = 0; i < inOutVars.Num(); i++ ) {
			if ( var.nameGLSL == inOutVars[i].nameGLSL ) {
				var.declareInOut = false;
				break;
			}
		}

		inOutVars.Append( var );
	}

	src.ExpectTokenString( ";" );
}
开发者ID:MWisBest,项目名称:idTech4Prime,代码行数:58,代码来源:RenderProgs_GLSL.cpp

示例15: MatchAndAppendToken

/*
===================
MatchAndAppendToken
===================
*/
static void MatchAndAppendToken( idLexer &src, const char *match ) {
	if ( !src.ExpectTokenString( match ) ) {
		return;
	}
	// a matched token won't need a leading space
	idStr::Append( parseBuffer, MAX_IMAGE_NAME, match );
}
开发者ID:Justasic,项目名称:DOOM-3,代码行数:12,代码来源:Image_program.cpp


注:本文中的idLexer类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。