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


C++ IVP_U_Float_Point::set_negative方法代码示例

本文整理汇总了C++中IVP_U_Float_Point::set_negative方法的典型用法代码示例。如果您正苦于以下问题:C++ IVP_U_Float_Point::set_negative方法的具体用法?C++ IVP_U_Float_Point::set_negative怎么用?C++ IVP_U_Float_Point::set_negative使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IVP_U_Float_Point的用法示例。


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

示例1: DoSimulationDrag

//-----------------------------------------------------------------------------
// Purpose: Water drag.
//-----------------------------------------------------------------------------
void IVP_Controller_Raycast_Airboat::DoSimulationDrag( IVP_Raycast_Airboat_Pontoon_Temp *pTempPontoons, 
													   IVP_Event_Sim *pEventSim, IVP_Core *pAirboatCore )
{
	// Get the forward vector in world-space.
	IVP_U_Float_Point vecForwardWS; 
    const IVP_U_Matrix *matWorldFromCore = pAirboatCore->get_m_world_f_core_PSI();
	matWorldFromCore->get_col( IVP_COORDINATE_INDEX( index_z ), &vecForwardWS );

	// Get the airboat speed and direction.
	IVP_U_Float_Point vecAirboatDir = pAirboatCore->speed;
	vecAirboatDir.normize();

	IVP_FLOAT flSpeed = ( IVP_FLOAT )pAirboatCore->speed.real_length();
	IVP_FLOAT flSpeed2 = flSpeed * flSpeed;

	// Increase drag the more perpendicular the airboat gets to the direction of motion.
//	IVP_FLOAT flDragTurnScale = vecAirboatDir.dot_product( &vecForwardWS );
//	flDragTurnScale = ( 1.0f - flDragTurnScale ) + 1.0f;

	// Calculate the drag.
	IVP_FLOAT flDragScale = 0.5f * AIRBOAT_DRAG_COEFFICIENT * AIRBOAT_WATER_DENSITY * AIRBOAT_DRAG_SURFACE_AREA;
//	flDragScale *= flDragTurnScale;
	IVP_FLOAT flDrag = flSpeed2 * flDragScale;

	// Apply the drag force opposite to the direction of motion.
	IVP_U_Float_Point vecAirboatNegDir;
	vecAirboatNegDir.set_negative( &vecAirboatDir );

	// Apply the drag force.
	IVP_U_Float_Point vecImpulse; 
	vecImpulse.set_multiple( &vecAirboatNegDir, flDrag * pEventSim->delta_time );
	pAirboatCore->center_push_core_multiple_ws( &vecImpulse );
}
开发者ID:RaisingTheDerp,项目名称:raisingthebar,代码行数:36,代码来源:ivp_controller_airboat.cpp


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