本文整理汇总了C++中dUASSERT函数的典型用法代码示例。如果您正苦于以下问题:C++ dUASSERT函数的具体用法?C++ dUASSERT怎么用?C++ dUASSERT使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了dUASSERT函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: dJointSetUniversalParam
void dJointSetUniversalParam( dJointID j, int parameter, dReal value )
{
dxJointUniversal* joint = ( dxJointUniversal* )j;
dUASSERT( joint, "bad joint argument" );
checktype( joint, Universal );
if (( parameter & 0xff00 ) == 0x100 )
{
joint->limot2.set( parameter & 0xff, value );
}
else
{
joint->limot1.set( parameter, value );
}
}
开发者ID:EdgarSun,项目名称:opende,代码行数:14,代码来源:universal.cpp
示例2: dJointGetUniversalParam
dReal dJointGetUniversalParam( dJointID j, int parameter )
{
dxJointUniversal* joint = ( dxJointUniversal* )j;
dUASSERT( joint, "bad joint argument" );
checktype( joint, Universal );
if (( parameter & 0xff00 ) == 0x100 )
{
return joint->limot2.get( parameter & 0xff );
}
else
{
return joint->limot1.get( parameter );
}
}
开发者ID:EdgarSun,项目名称:opende,代码行数:14,代码来源:universal.cpp
示例3: dGeomRaySetParams
void dGeomRaySetParams (dxGeom *g, int FirstContact, int BackfaceCull)
{
dUASSERT (g && g->type == dRayClass,"argument not a ray");
if (FirstContact){
g->gflags |= RAY_FIRSTCONTACT;
}
else g->gflags &= ~RAY_FIRSTCONTACT;
if (BackfaceCull){
g->gflags |= RAY_BACKFACECULL;
}
else g->gflags &= ~RAY_BACKFACECULL;
}
开发者ID:4nakin,项目名称:awesomeball,代码行数:14,代码来源:ray.cpp
示例4: dJointGetGearboxParam
dReal dJointGetGearboxParam( dJointID j, int parameter )
{
dxJointGearbox* joint = static_cast<dxJointGearbox*>(j);
dUASSERT( joint, "bad joint argument" );
switch ( parameter ) {
case dParamCFM:
return joint->cfm;
case dParamERP:
return joint->erp;
default:
return 0;
}
}
开发者ID:arpg,项目名称:Gazebo,代码行数:14,代码来源:gearbox.cpp
示例5: dJointGetUniversalAngles
void dJointGetUniversalAngles( dJointID j, dReal *angle1, dReal *angle2 )
{
dxJointUniversal* joint = ( dxJointUniversal* )j;
dUASSERT( joint, "bad joint argument" );
checktype( joint, Universal );
if ( joint->flags & dJOINT_REVERSE )
{
joint->getAngles( angle2, angle1 );
*angle2 = -(*angle2);
return;
}
else
return joint->getAngles( angle1, angle2 );
}
开发者ID:EdgarSun,项目名称:opende,代码行数:14,代码来源:universal.cpp
示例6: dJointSetGearboxReferenceBody2
void dJointSetGearboxReferenceBody2( dJointID j, dBodyID b )
{
dxJointGearbox* joint = dynamic_cast<dxJointGearbox*>(j);
dUASSERT( joint, "bad joint argument" );
dUASSERT( b, "bad body argument" );
joint->refBody2 = b;
if ( joint->node[1].body )
{
if ( b )
dQMultiply1( joint->qrel2, joint->refBody2->q, joint->node[1].body->q );
else
{
// set qrel1 to the transpose of the first body q
joint->qrel2[0] = joint->node[1].body->q[0];
joint->qrel2[1] = joint->node[1].body->q[1];
joint->qrel2[2] = joint->node[1].body->q[2];
joint->qrel2[3] = joint->node[1].body->q[3];
}
}
else
{
if ( b )
{
// set qrel2 to the transpose of the second body q
joint->qrel2[0] = joint->refBody2->q[0];
joint->qrel2[1] = - joint->refBody2->q[1];
joint->qrel2[2] = - joint->refBody2->q[2];
joint->qrel2[3] = - joint->refBody2->q[3];
}
else
{
// both refBody2 and node[1].body are null, nothing happens
}
}
}
开发者ID:arpg,项目名称:Gazebo,代码行数:37,代码来源:gearbox.cpp
示例7: dGeomTriMeshDataSet
void dGeomTriMeshDataSet(dTriMeshDataID g, int data_id, void* in_data)
{
dUASSERT(g, "argument not trimesh data");
double *elem;
switch (data_id) {
case TRIMESH_FACE_NORMALS:
g->Normals = (dReal *) in_data;
break;
case TRIMESH_LAST_TRANSFORMATION:
elem = (double *) in_data;
for (int i=0; i<16; i++)
g->last_trans[i] = (dReal) elem[i];
break;
default:
dUASSERT(data_id, "invalid data type");
break;
}
return;
}
开发者ID:xuebai5,项目名称:TheZombieEngine,代码行数:24,代码来源:collision_trimesh.cpp
示例8: dCreateGeomClass
int dCreateGeomClass (const dGeomClass *c)
{
dUASSERT(c && c->bytes >= 0 && c->collider && c->aabb,"bad geom class");
if (num_user_classes >= dMaxUserClasses) {
dDebug (0,"too many user classes, you must increase the limit and "
"recompile ODE");
}
user_classes[num_user_classes] = *c;
int class_number = num_user_classes + dFirstUserClass;
setAllColliders (class_number,&dCollideUserGeomWithGeom);
num_user_classes++;
return class_number;
}
开发者ID:JohnCrash,项目名称:ode,代码行数:15,代码来源:collision_kernel.cpp
示例9: dJointGetScrewParam
dReal dJointGetScrewParam( dJointID j, int parameter )
{
dxJointScrew* joint = ( dxJointScrew* )j;
dUASSERT( joint, "bad joint argument" );
checktype( joint, Screw );
switch (parameter)
{
case dParamERP:
return joint->erp;
case dParamCFM:
return joint->cfm;
default:
return joint->limot.get( parameter );
}
}
开发者ID:mylxiaoyi,项目名称:gazebo,代码行数:15,代码来源:screw.cpp
示例10: dGeomGetQuaternion
void dGeomGetQuaternion (dxGeom *g, dQuaternion quat)
{
dAASSERT (g);
dUASSERT (g->gflags & GEOM_PLACEABLE,"geom must be placeable");
if (g->body) {
const dReal * body_quat = dBodyGetQuaternion (g->body);
quat[0] = body_quat[0];
quat[1] = body_quat[1];
quat[2] = body_quat[2];
quat[3] = body_quat[3];
}
else {
dRtoQ (g->R, quat);
}
}
开发者ID:aliverobotics,项目名称:Pumas-SmallSize,代码行数:15,代码来源:collision_kernel.cpp
示例11: dGeomCopyRotation
void dGeomCopyRotation(dxGeom *g, dMatrix3 R)
{
dAASSERT (g);
dUASSERT (g->gflags & GEOM_PLACEABLE,"geom must be placeable");
const dMatrix3 &src = g->buildUpdatedRotation();
R[0] = src[dM3E_XX];
R[1] = src[dM3E_XY];
R[2] = src[dM3E_XZ];
R[4] = src[dM3E_YX];
R[5] = src[dM3E_YY];
R[6] = src[dM3E_YZ];
R[8] = src[dM3E_ZX];
R[9] = src[dM3E_ZY];
R[10] = src[dM3E_ZZ];
}
开发者ID:weilandetian,项目名称:Yoyo,代码行数:16,代码来源:collision_kernel.cpp
示例12: dJointGetHinge2Param
dReal dJointGetHinge2Param( dJointID j, int parameter )
{
dxJointHinge2* joint = ( dxJointHinge2* )j;
dUASSERT( joint, "bad joint argument" );
checktype( joint, Hinge2 );
if (( parameter & 0xff00 ) == 0x100 )
{
return joint->limot2.get( parameter & 0xff );
}
else
{
if ( parameter == dParamSuspensionERP ) return joint->susp_erp;
else if ( parameter == dParamSuspensionCFM ) return joint->susp_cfm;
else return joint->limot1.get( parameter );
}
}
开发者ID:emperorstarfinder,项目名称:opensim-libs,代码行数:16,代码来源:hinge2.cpp
示例13: dGeomGetQuaternion
void dGeomGetQuaternion (dxGeom *g, dQuaternion quat)
{
dAASSERT (g);
dUASSERT (g->gflags & GEOM_PLACEABLE,"geom must be placeable");
if (g->body && !g->offset_posr) {
const dReal * body_quat = dBodyGetQuaternion (g->body);
quat[0] = body_quat[0];
quat[1] = body_quat[1];
quat[2] = body_quat[2];
quat[3] = body_quat[3];
}
else {
g->recomputePosr();
dRtoQ (g->final_posr->R, quat);
}
}
开发者ID:JohnCrash,项目名称:ode,代码行数:16,代码来源:collision_kernel.cpp
示例14: dGeomSetPosition
void dGeomSetPosition (dxGeom *g, dReal x, dReal y, dReal z)
{
dAASSERT (g);
dUASSERT (g->gflags & GEOM_PLACEABLE,"geom must be placeable");
CHECK_NOT_LOCKED (g->parent_space);
if (g->body) {
// this will call dGeomMoved (g), so we don't have to
dBodySetPosition (g->body,x,y,z);
}
else {
g->pos[0] = x;
g->pos[1] = y;
g->pos[2] = z;
dGeomMoved (g);
}
}
开发者ID:aliverobotics,项目名称:Pumas-SmallSize,代码行数:16,代码来源:collision_kernel.cpp
示例15: dGeomCopyRotation
void dGeomCopyRotation(dxGeom *g, dMatrix3 R)
{
dAASSERT (g);
dUASSERT (g->gflags & GEOM_PLACEABLE,"geom must be placeable");
g->recomputePosr();
const dReal* src = g->final_posr->R;
R[0] = src[0];
R[1] = src[1];
R[2] = src[2];
R[4] = src[4];
R[5] = src[5];
R[6] = src[6];
R[8] = src[8];
R[9] = src[9];
R[10] = src[10];
}
开发者ID:JohnCrash,项目名称:ode,代码行数:16,代码来源:collision_kernel.cpp
示例16: dJointGetHinge2Angle2Rate
dReal dJointGetHinge2Angle2Rate( dJointID j )
{
dxJointHinge2* joint = ( dxJointHinge2* )j;
dUASSERT( joint, "bad joint argument" );
checktype( joint, Hinge2 );
if ( joint->node[0].body && joint->node[1].body )
{
dVector3 axis;
dMultiply0_331( axis, joint->node[1].body->posr.R, joint->axis2 );
dReal rate = dCalcVectorDot3( axis, joint->node[0].body->avel );
if ( joint->node[1].body )
rate -= dCalcVectorDot3( axis, joint->node[1].body->avel );
return rate;
}
else return 0;
}
开发者ID:emperorstarfinder,项目名称:opensim-libs,代码行数:16,代码来源:hinge2.cpp
示例17: dJointSetHinge2Param
void dJointSetHinge2Param( dJointID j, int parameter, dReal value )
{
dxJointHinge2* joint = ( dxJointHinge2* )j;
dUASSERT( joint, "bad joint argument" );
checktype( joint, Hinge2 );
if (( parameter & 0xff00 ) == 0x100 )
{
joint->limot2.set( parameter & 0xff, value );
}
else
{
if ( parameter == dParamSuspensionERP ) joint->susp_erp = value;
else if ( parameter == dParamSuspensionCFM ) joint->susp_cfm = value;
else joint->limot1.set( parameter, value );
}
}
开发者ID:emperorstarfinder,项目名称:opensim-libs,代码行数:16,代码来源:hinge2.cpp
示例18: dGeomTriMeshEnableTC
void dGeomTriMeshEnableTC(dGeomID g, int geomClass, int enable)
{
dUASSERT(g && g->type == dTriMeshClass, "argument not a trimesh");
switch (geomClass)
{
case dSphereClass:
((dxTriMesh*)g)->doSphereTC = (1 == enable);
break;
case dBoxClass:
((dxTriMesh*)g)->doBoxTC = (1 == enable);
break;
case dCCylinderClass:
((dxTriMesh*)g)->doCCylinderTC = (1 == enable);
break;
}
}
开发者ID:Sean3Don,项目名称:opentribot,代码行数:17,代码来源:collision_trimesh.cpp
示例19: dGeomClearOffset
void dGeomClearOffset(dxGeom *g)
{
dAASSERT (g);
dUASSERT (g->gflags & GEOM_PLACEABLE,"geom must be placeable");
if (g->offset_posr)
{
dIASSERT(g->body);
// no longer need an offset posr
dFreePosr(g->offset_posr);
g->offset_posr = 0;
// the geom will now share the position of the body
dFreePosr(g->final_posr);
g->final_posr = &g->body->posr;
// geom has moved
g->gflags &= ~GEOM_POSR_BAD;
dGeomMoved (g);
}
}
开发者ID:JohnCrash,项目名称:ode,代码行数:18,代码来源:collision_kernel.cpp
示例20: CHECK_NOT_LOCKED
void dxQuadTreeSpace::add(dxGeom* g){
CHECK_NOT_LOCKED (this);
dAASSERT(g);
dUASSERT(g->parent_space == 0 && g->next == 0, "geom is already in a space");
g->gflags |= GEOM_DIRTY | GEOM_AABB_BAD;
DirtyList.push(g);
// add
g->parent_space = this;
Blocks[0].GetBlock(g->aabb)->AddObject(g); // Add to best block
count++;
// enumerator has been invalidated
current_geom = 0;
dGeomMoved(this);
}
开发者ID:Ricku34,项目名称:ODE.js,代码行数:18,代码来源:collision_quadtreespace.cpp
注:本文中的dUASSERT函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论