• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ setMatrix函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: setName

CSulScreenAlignedQuad::CSulScreenAlignedQuad( float fViewW, float fViewH, const CSulString& fileTexture )
{
	setName( "CSulScreenAlignedQuad" );

	osg::ref_ptr<osg::Image> image = osgDB::readImageFile( osgDB::findDataFile(fileTexture.c_str()) );

	float x = 0.0f;
	float y = 0.0f;
	float w = image->s();
	float h = image->t();

	m_rGeomQuad = new CSulGeomQuad( osg::Vec3( x + w/2.0f, fViewH - (y+h/2.0f) , 0 ), w, h, CSulGeomQuad::PLANE_XY );
	m_rGeomQuad->setTexture( image );

	m_geodeQuad = new CSulGeode;
	m_geodeQuad->addDrawable( m_rGeomQuad );

	osg::Matrixd mOrtho = osg::Matrix::ortho2D( 0, fViewW, 0, fViewH );
	setMatrix( mOrtho );

	initConstructor();
}
开发者ID:Crisium,项目名称:sigmaosg,代码行数:22,代码来源:SulScreenAlignedQuad.cpp


示例2: displayResearchButton

// Render a research item given a BASE_STATS structure.
//
void displayResearchButton(BASE_STATS *Stat, Vector3i *Rotation, Vector3i *Position, BOOL RotXYZ, SDWORD scale)
{
	iIMDShape *ResearchIMD = ((RESEARCH *)Stat)->pIMD;
	iIMDShape *MountIMD = ((RESEARCH *)Stat)->pIMD2;

	if(ResearchIMD)
	{
		setMatrix(Position, Rotation, RotXYZ);
		pie_MatScale(scale / 100.f);

		if(MountIMD) {
			pie_Draw3DShape(MountIMD, 0, getPlayerColour(selectedPlayer), WZCOL_WHITE, WZCOL_BLACK, pie_BUTTON, 0);
		}
		pie_Draw3DShape(ResearchIMD, 0, getPlayerColour(selectedPlayer), WZCOL_WHITE, WZCOL_BLACK, pie_BUTTON, 0);

		unsetMatrix();
	}
	else
	{
		debug(LOG_ERROR, "ResearchIMD == NULL");
	}
}
开发者ID:blezek,项目名称:warzone2100,代码行数:24,代码来源:component.c


示例3: S

//==============================================================================
void EllipsoidShapeNode::extractData(bool firstTime)
{
  if(   mShape->checkDataVariance(dart::dynamics::Shape::DYNAMIC_TRANSFORM)
     || mShape->checkDataVariance(dart::dynamics::Shape::DYNAMIC_PRIMITIVE)
     || firstTime )
  {
    Eigen::Matrix4d S(Eigen::Matrix4d::Zero());
    const Eigen::Vector3d& s =
       mEllipsoidShape->getSize()/smallestComponent(mEllipsoidShape->getSize());
    S(0,0) = s[0]; S(1,1) = s[1]; S(2,2) = s[2]; S(3,3) = 1.0;
    setMatrix(eigToOsgMatrix(S));
  }

  if(nullptr == mGeode)
  {
    mGeode = new EllipsoidShapeGeode(mEllipsoidShape.get(), mParentShapeFrameNode, this);
    addChild(mGeode);
    return;
  }

  mGeode->refresh();
}
开发者ID:jslee02,项目名称:wafr2016,代码行数:23,代码来源:EllipsoidShapeNode.cpp


示例4: matrix

void SchematicSceneViewer::zoomQt(bool zoomin, bool resetZoom) {
#if QT_VERSION >= 0x050000
  double scale2 = matrix().determinant();
#else
  double scale2 = matrix().det();
#endif
  if (resetZoom ||
      ((scale2 < 100000 || !zoomin) && (scale2 > 0.001 * 0.05 || zoomin))) {
    double oldZoomScale = sqrt(scale2);
    double zoomScale    = resetZoom ? 1 : ImageUtils::getQuantizedZoomFactor(
                                           oldZoomScale, zoomin);
    QMatrix scale =
        QMatrix().scale(zoomScale / oldZoomScale, zoomScale / oldZoomScale);

    // See QGraphicsView::mapToScene()'s doc for details
    QRect rect(0, 0, width(), height());
    QRectF sceneCenterRect(
        mapToScene(QRect(rect.center(), QSize(2, 2))).boundingRect());
    setMatrix(scale, true);
    centerOn(sceneCenterRect.center());
  }
}
开发者ID:opentoonz,项目名称:opentoonz,代码行数:22,代码来源:schematicviewer.cpp


示例5: SwkMatrix3x3

  SwkMatrix3x3 (const GenericPointT& p1, const GenericPointT& p2, const GenericPointT& p3,
		const GenericPointT& pt)
  {
    /*
    // sort the points first
    //
    GenericPointT pos[3];
    pos[0] = p1;
    if (p2 < pos[0])
      {
 	pos[1] = pos[0];
 	pos[0] = p2;
      }
    else
      {
 	pos[1] = p2;
      }
    if (p3 < pos[0])
      {
 	pos[2] = pos[1];
 	pos[1] = pos[0];
 	pos[0] = p3;
      }
    else if (p3 < pos[1])
      {
 	pos[2] = pos[1];
  	pos[1] = p3;
      }
    else
      {
 	pos[2] = p3;
      }
    
    setMatrix(pos[0], pos[1], pos[2], pt);
    */

    setMatrix(p1, p2, p3, pt);
  }
开发者ID:AlexanderToifl,项目名称:viennamesh-dev,代码行数:38,代码来源:orient_geometric_objects.hpp


示例6: skew

void
CQIllustratorShape::
skew(double dx, double dy)
{
  checkoutShape(CQIllustratorData::ChangeType::GEOMETRY);

  CMatrix2D m;

  m.setSkew(dx, dy);

  CMatrix2D m1, m2;

  CPoint2D rc = getRotateCenter();

  m1.setTranslation(-rc.x, -rc.y);
  m2.setTranslation( rc.x,  rc.y);

  CMatrix2D mm = m2*m*m1;

  setMatrix(mm*m_);

  checkinShape(CQIllustratorData::ChangeType::GEOMETRY);
}
开发者ID:colinw7,项目名称:CQIllustrator,代码行数:23,代码来源:CQIllustratorShape.cpp


示例7: loop

void loop() {
  time_t rawtime; // raw time
  struct tm *ptime; // time struct holder
  // nyble vector for matrix columns
  // [hour/10, hour/1, minute/10, minute/1]
  uint8_t bTime[4] = {0b0000};
  // row/column inc.
  uint8_t x = 0;
  uint8_t y = 0;

  // get the time from system
  time(&rawtime);
  // load into the tm struct
  ptime = localtime(&rawtime);

  // convert the time to nybles for the matrix
  pixelTime(ptime, bTime);

  // quarter hour indicator
  if ( (ptime->tm_min % 15 == 0) && ptime->tm_sec == 0) {
    quarterHour(ptime->tm_hour, ptime->tm_min, QUARTER_WAIT);
  }

  if (pulse_second) {
    for (x = 0; x < PIXEL_ROW; x += width) {
      for (y = 0; y < PIXEL_COLUMN; y += height) {
        setPixelColorT(pixelMap[x][y],Color(0,0,0));
      }
    }
    show();
    usleep(100*100);
  }

  // set the matrix to the binary time
  setMatrix(bTime, sizeof(bTime)/sizeof(bTime[1]), Color(255,255,255), Color(255,0,0));

}
开发者ID:tuna-f1sh,项目名称:wooden-bits,代码行数:37,代码来源:bClock.c


示例8: resizeEvent

	virtual void resizeEvent(QResizeEvent *event) {
		QGraphicsView::resizeEvent(event);
		setSceneRect(Config.Rect);
		if(Config.FitInView)
			fitInView(sceneRect(), Qt::KeepAspectRatio);
		if(matrix().m11() > 1)
			setMatrix(QMatrix());

		MainWindow *main_window = qobject_cast<MainWindow *>(parentWidget());
		if(scene()->inherits("RoomScene")){
			RoomScene *room_scene = qobject_cast<RoomScene *>(scene());
			QRectF newSceneRect(0, 0, event->size().width(), event->size().height());
			room_scene->setSceneRect(newSceneRect);
			room_scene->adjustItems();
			setSceneRect(room_scene->sceneRect());
			if(Config.FitInView)
				fitInView(room_scene->sceneRect(), Qt::KeepAspectRatio);
			main_window->setBackgroundBrush(false);
			return;
		}

		if(main_window)
			main_window->setBackgroundBrush(true);
	}
开发者ID:takashiro,项目名称:OnePieceBang,代码行数:24,代码来源:mainwindow.cpp


示例9: RobotOnPlane

Khepera::Khepera(World* world, SharedDataWrapper<Shared> shared, ConfigurationManager& params)
	: RobotOnPlane(params)
	, PhyKhepera(world, shared)
{
	setName(m_initialName);
	setMatrix(m_initialTm);

	doKinematicSimulation(ConfigurationHelper::getBool(configurationManager(), confPath() + "kinematicRobot"));

	const bool enableWheels = ConfigurationHelper::getBool(configurationManager(), confPath() + "enableWheels");
	const bool enableProximityIR = ConfigurationHelper::getBool(configurationManager(), confPath() + "enableProximityIR");
	const bool drawProximityIR = ConfigurationHelper::getBool(configurationManager(), confPath() + "drawProximityIR");
	const bool drawIRRays = ConfigurationHelper::getBool(configurationManager(), confPath() + "drawIRRays");
	const bool drawIRRaysRange = ConfigurationHelper::getBool(configurationManager(), confPath() + "drawIRRaysRange");

	wheelsController()->setEnabled(enableWheels);
	proximityIRSensorController()->setEnabled(enableProximityIR);
	setProximityIRSensorsGraphicalProperties(drawProximityIR, drawIRRays, drawIRRaysRange);

	setDrawFrontMarker(true);

	// Setting the color of the robot
	setColor(configuredRobotColor());
}
开发者ID:S-A-L-S-A,项目名称:salsa,代码行数:24,代码来源:robots.cpp


示例10: setMatrix

AffineTransform::AffineTransform(const CGAffineTransform& t)
{
    setMatrix(t.a, t.b, t.c, t.d, t.tx, t.ty);
}
开发者ID:AndriyKalashnykov,项目名称:webkit,代码行数:4,代码来源:TransformationMatrixCG.cpp


示例11: PROFILE_SCOPE

void GFXDevice::updateStates(bool forceSetAll /*=false*/)
{
   PROFILE_SCOPE(GFXDevice_updateStates);

   if(forceSetAll)
   {
      bool rememberToEndScene = false;
      if(!canCurrentlyRender())
      {
         if (!beginScene())
         {
            AssertFatal(false, "GFXDevice::updateStates:  Unable to beginScene!");
         }
         rememberToEndScene = true;
      }

      setMatrix( GFXMatrixProjection, mProjectionMatrix );
      setMatrix( GFXMatrixWorld, mWorldMatrix[mWorldStackSize] );
      setMatrix( GFXMatrixView, mViewMatrix );

      setVertexDecl( mCurrVertexDecl );

      for ( U32 i=0; i < VERTEX_STREAM_COUNT; i++ )
      {
         setVertexStream( i, mCurrentVertexBuffer[i] );
         setVertexStreamFrequency( i, mVertexBufferFrequency[i] );
      }

      if( mCurrentPrimitiveBuffer.isValid() ) // This could be NULL when the device is initalizing
         mCurrentPrimitiveBuffer->prepare();

      /// Stateblocks
      if ( mNewStateBlock )
         setStateBlockInternal(mNewStateBlock, true);
      mCurrentStateBlock = mNewStateBlock;

      for(U32 i = 0; i < getNumSamplers(); i++)
      {
         switch (mTexType[i])
         {
            case GFXTDT_Normal :
               {
                  mCurrentTexture[i] = mNewTexture[i];
                  setTextureInternal(i, mCurrentTexture[i]);
               }  
               break;
            case GFXTDT_Cube :
               {
                  mCurrentCubemap[i] = mNewCubemap[i];
                  if (mCurrentCubemap[i])
                     mCurrentCubemap[i]->setToTexUnit(i);
                  else
                     setTextureInternal(i, NULL);
               }
               break;
            default:
               AssertFatal(false, "Unknown texture type!");
               break;
         }
      }

      // Set our material
      setLightMaterialInternal(mCurrentLightMaterial);

      // Set our lights
      for(U32 i = 0; i < LIGHT_STAGE_COUNT; i++)
      {
         setLightInternal(i, mCurrentLight[i], mCurrentLightEnable[i]);
      }

       _updateRenderTargets();

      if(rememberToEndScene)
         endScene();

      return;
   }

   if (!mStateDirty)
      return;

   // Normal update logic begins here.
   mStateDirty = false;

   // Update Projection Matrix
   if( mProjectionMatrixDirty )
   {
      setMatrix( GFXMatrixProjection, mProjectionMatrix );
      mProjectionMatrixDirty = false;
   }
   
   // Update World Matrix
   if( mWorldMatrixDirty )
   {
      setMatrix( GFXMatrixWorld, mWorldMatrix[mWorldStackSize] );
      mWorldMatrixDirty = false;
   }
   
   // Update View Matrix
   if( mViewMatrixDirty )
//.........这里部分代码省略.........
开发者ID:1414648814,项目名称:Torque3D,代码行数:101,代码来源:gfxDevice.cpp


示例12: setMatrix

AffineTransform::AffineTransform(double a, double b, double c, double d, double e, double f)
{
    setMatrix(a, b, c, d, e, f);
}
开发者ID:rmacnak-google,项目名称:engine,代码行数:4,代码来源:AffineTransform.cpp


示例13: switch

void GraphicsView::wheelEvent(QWheelEvent *event) {
    int zoomType = event->delta();
    QMatrix m = matrixImage;

    switch (zoom) {
        case -3:
            if (zoomType > 0) {
                m.scale(0.5, 0.5);
                zoom = -2;
                setMatrix(m);
            }
            break;
        case -2:
            if (zoomType < 0) {
                m.scale(0.25, 0.25);
                zoom = -3;
            } else {
                m.scale(0.75, 0.75);
                zoom = -1;
            }
            setMatrix(m);
            break;
        case -1:
            if (zoomType < 0) {
                m.scale(0.5, 0.5);
                zoom = -2;
            } else {
                m.scale(1, 1);
                zoom = 0;
            }
            setMatrix(m);
            break;
        case 0:
            if (zoomType < 0) {
                m.scale(0.75, 0.75);
                zoom = -1;
            } else {
                m.scale(1.25, 1.25);
                zoom = 1;
            }
            setMatrix(m);
            break;
        case 1:
            if (zoomType < 0) {
                m.scale(1, 1);
                zoom = 0;
            } else {
                m.scale(1.5, 1.5);
                zoom = 2;
            }
            setMatrix(m);
            break;
        case 2:
            if (zoomType < 0) {
                m.scale(1.25, 1.25);
                zoom = 1;
            } else {
                m.scale(1.75, 1.75);
                zoom = 3;
            }
            setMatrix(m);
            break;
        case 3:
            if (zoomType < 0) {
                m.scale(1.5, 1.5);
                zoom = 2;

            } else {
                m.scale(2, 2);
                zoom = 4;
            }
            setMatrix(m);
            break;
        case 4:
            if (zoomType < 0) {
                m.scale(1.75, 1.75);
                zoom = 3;
            } else {
                m.scale(2.25, 2.25);
                zoom = 5;
            }
            setMatrix(m);
            break;
        case 5:
            if (zoomType < 0) {
                m.scale(2, 2);
                zoom = 4;
                setMatrix(m);
            }
            break;
    }
}
开发者ID:adonaicanez,项目名称:gps2jpeg,代码行数:92,代码来源:GraphicsView.cpp


示例14: main

int main(int argc, char** argv)
{
    osg::ArgumentParser arguments( &argc, argv );

    std::string dbPath;
    arguments.read("--db_path", dbPath);

    std::srand ( unsigned ( std::time(0) ) );

    auto board = Board(boardDefinition, boardSizeX, boardSizeY, dbPath);
    auto ghostFactory = GhostFactory();

    auto main_obj = make_ref<osg::Group>();
    main_obj->addChild(board.draw().get());

    auto ghostModel = osgDB::readNodeFile(dbPath + "/cow.osg");
    auto ghostCount = 16;
    while(ghostCount--)
    {
        main_obj->addChild(ghostFactory.drawGhost(board, ghostModel).get());
    }

    // init rotate
    auto init_rotate = make_ref<osg::MatrixTransform>();
    init_rotate->setMatrix( osg::Matrix::rotate(osg::PI * 2, osg::Vec3(1.0f, 0.0f, 0.0f)) );

    // chain rotates
    init_rotate->addChild(main_obj);

    // Root group
    auto root = make_ref<osg::Group>();
    root->addChild(init_rotate);

    // Setup fog
    if(FogEnabled) {
        osg::ref_ptr<osg::Fog> fog = new osg::Fog;
        fog->setMode( osg::Fog::EXP2 );
        fog->setStart( 0.0f );
        fog->setEnd(board.getFieldSizeX() * 20);
        fog->setDensity(0.0135);
        fog->setColor( osg::Vec4(0., 0., 0., 1.0) );

        root->getOrCreateStateSet()->setAttributeAndModes(fog.get());
    }

    // Start viewer
    osgViewer::Viewer viewer;

    // Set up flashlight
    auto lightSource = make_ref<osg::LightSource>();
    lightSource->setReferenceFrame(osg::LightSource::ABSOLUTE_RF);
    auto light = lightSource->getLight();
    const osg::Vec3 lightPosition{1.5, -1, -1}; // right, down, front
    light->setPosition(osg::Vec4{lightPosition, 1});
    light->setDirection(osg::Vec3{0, 0, -1} * 30 - lightPosition);
    light->setSpotExponent(60);
    light->setSpotCutoff(90);
    light->setDiffuse(osg::Vec4(1, 1, 1, 1));
    light->setAmbient(osg::Vec4(0.6, 0.6, 0.6, 1));
    light->setSpecular(osg::Vec4(1, 1, 1, 1));
    light->setLinearAttenuation(0.001);
    light->setConstantAttenuation(0.5);
    root->addChild(lightSource);

    double height = std::min(board.getFieldSizeX(), board.getFieldSizeY()) / 1.5;

    auto fpsManipulator = make_ref<FPSManipulator>(board, viewer, *light);
    fpsManipulator->setHomePosition(
        osg::Vec3d(board.getFieldCenterX(1), board.getFieldCenterY(10), height),
        osg::Vec3d(0.0f, 0.0f, height),
        osg::Vec3d(0.0f, 0.0f, 1.0f)
    );


    auto keySwitch = make_ref<osgGA::KeySwitchMatrixManipulator>();
    keySwitch->addNumberedMatrixManipulator(make_ref<osgGA::OrbitManipulator>());
    keySwitch->addNumberedMatrixManipulator(fpsManipulator);
    viewer.setCameraManipulator(keySwitch);

    viewer.home();
    viewer.setSceneData( root );

    osgViewer::Viewer::Windows windows;
    viewer.getWindows(windows);
    viewer.getCamera()->setClearColor(osg::Vec4{0, 0, 0, 0});

    viewer.getCamera()->getView()->setLightingMode(osg::View::HEADLIGHT);
    auto defaultLight = viewer.getCamera()->getView()->getLight();
    defaultLight->setDiffuse(osg::Vec4(0, 0, 0, 1));
    defaultLight->setAmbient(osg::Vec4(0, 0, 0, 1));
    defaultLight->setSpecular(osg::Vec4(0, 0, 0, 1));

    // Shaders
    auto program = make_ref<osg::Program>();
    auto fragmentObject = make_ref<osg::Shader>(osg::Shader::FRAGMENT);
    loadShaderSource(fragmentObject, dbPath + "/shader.frag");
    auto vertexObject = make_ref<osg::Shader>(osg::Shader::VERTEX);
    loadShaderSource(vertexObject, dbPath + "/shader.vert");
    program->addShader(vertexObject);
    program->addShader(fragmentObject);
//.........这里部分代码省略.........
开发者ID:RoXeon,项目名称:Pacman3D,代码行数:101,代码来源:main.cpp


示例15: setMatrix

//////////////////////////////////////////////////////////////////////////
//	setMatirx
//	(desc) call by outside
//		set transformation matrix
//////////////////////////////////////////////////////////////////////////
bool ZShadow::setMatrix(ZCharacterObject& char_, float size_  )
{
	return setMatrix( *char_.m_pVMesh ,size_);
}
开发者ID:Kallontz,项目名称:gunz-the-tps-mmorpg,代码行数:9,代码来源:ZShadow.cpp


示例16: loadMatrix

void 
loadMatrix(e2dMatrix* mat)  {
    static float matrix[16];
    setMatrix(matrix, mat);
    glLoadMatrixf(matrix);
}
开发者ID:catdawg,项目名称:Ez2DS,代码行数:6,代码来源:Ez2DSDebugDraw.c


示例17: multMatrix

void 
multMatrix(e2dMatrix* mat)  {
    static float matrix[16];
    setMatrix(matrix, mat);
    glMultMatrixf(matrix);
}
开发者ID:catdawg,项目名称:Ez2DS,代码行数:6,代码来源:Ez2DSDebugDraw.c


示例18: setButtons


//.........这里部分代码省略.........
		w = 0;
		emit setRgb(rgb);
	}*/

	//QVector3D normalisedAcc = d.accelerometer / 32768;
	//QVector3D normalisedMag = d.mag / 32768;
	//normalisedAcc.normalize();
	//normalisedMag = QVector3D::crossProduct(normalisedMag.normalized(), normalisedAcc).normalized();
	//QVector3D north = QVector3D::crossProduct(normalisedMag, normalisedAcc).normalized();

	bool movePressedB = d.buttons.buttonsPressed.contains(MoveButtons::Move);
	if (!mPrevMovePressed && movePressedB) {

		//mOne = normalisedAcc;
		//mTwo = normalisedMag;
		//mThree = north;

		qDebug() << "acc:" << d.accelerometer;
		qDebug() << "mag:" << d.mag;
		emit movePressed();
	}
	mPrevMovePressed = movePressedB;
	/*float one = std::acos(QVector3D::dotProduct(normalisedAcc, mOne));
	float two = std::acos(QVector3D::dotProduct(normalisedMag, mTwo));
	float three = std::acos(QVector3D::dotProduct(north, mThree));*/
	//qDebug() << QString::number(one, 'g', 4) << QString::number(two, 'g', 4) << QString::number(three, 'g', 4);
	/*ui->accXProgressBar->setValue(one * 180 / M_PI);
	ui->accYProgressBar->setValue(two * 180 / M_PI);
	ui->accZProgressBar->setValue(three * 180 / M_PI);*/

	if (ui->accGroupBox->isChecked()) {
		ui->accXProgressBar->setValue(d.accelerometer.x());
		ui->accYProgressBar->setValue(d.accelerometer.y());
		ui->accZProgressBar->setValue(d.accelerometer.z());
	}

	if (ui->gyroGroupBox->isChecked()) {
		ui->gyroXProgressBar->setValue(d.gyro.x());
		ui->gyroYProgressBar->setValue(d.gyro.y());
		ui->gyroZProgressBar->setValue(d.gyro.z());
	}

	if (ui->magGroupBox->isChecked()) {
		ui->magXProgressBar->setValue(d.mag.x());
		ui->magYProgressBar->setValue(d.mag.y());
		ui->magZProgressBar->setValue(d.mag.z());
	}

	bool triPressed = d.buttons.buttonsPressed.contains(MoveButtons::Triangle);
	if (triPressed && !mPrevTriPressed) {
		emit setTopRightCorner();
	}
	mPrevTriPressed = triPressed;

	bool squPressed = d.buttons.buttonsPressed.contains(MoveButtons::Square);
	if (squPressed && !mPrevSquPressed) {
		emit setBottomLeftCorner();
	}
	mPrevSquPressed = squPressed;
#if 0
	QVector3D acc = d.accelerometer;
	QVector3D mag = d.mag;
	acc.normalize();
	mag.normalize();
	QMatrix4x4 m;
	m.setRow(2, acc);
	QVector3D east = QVector3D::crossProduct(acc, -mag);
	m.setRow(0, east);
	QVector3D north = QVector3D::crossProduct(acc, -mag);
	m.setRow(1, north);
	//qDebug() << mag;

//    QVector3D gyro = d.gyro / 32768;
//    acc.setX(mAccFilters[0]->step(acc.x()));
//    acc.setY(mAccFilters[1]->step(acc.y()));
//    acc.setZ(mAccFilters[2]->step(acc.z()));

//    mag.setX(mMagFilters[0]->step(mag.x()));
//    mag.setY(mMagFilters[1]->step(mag.y()));
//    mag.setZ(mMagFilters[2]->step(mag.z()));

	QVector3D newY = acc;
	QVector3D newZ = mag;
	newZ.setZ(-newZ.z());
	QVector3D newX = QVector3D::crossProduct(newZ, newY).normalized();
	QMatrix4x4 newMat;
	newMat.setRow(0, newX);
	newMat.setRow(1, newY);
	newMat.setRow(2, newZ);
	newMat.setRow(3, QVector4D(0, 0, 0, 1));
	float qq1 = q0;
	float qq2 = q1;
	float qq3 = q2;
	float qq4 = q3;
	QQuaternion quat(qq1, qq2, qq3, qq4);
	QVector3D vec(1, 1, 1);
	emit setMatrix(newMat);
	//emit setVector(quat.rotatedVector(vec));
#endif
}
开发者ID:janisozaur,项目名称:ve,代码行数:101,代码来源:PSMoveForm.cpp


示例19: setMatrix

void QtWebPageSGNode::setScale(float scale)
{
    QMatrix4x4 matrix;
    matrix.scale(scale);
    setMatrix(matrix);
}
开发者ID:3163504123,项目名称:phantomjs,代码行数:6,代码来源:QtWebPageSGNode.cpp


示例20: setMatrix

void EnlightedNode::updateMatrix(QFixture* fixture) {
  setMatrix(fixture->body()->matrix() * fixture->matrix());
}
开发者ID:Hakiko,项目名称:GameEngine,代码行数:3,代码来源:EnlightedItems.cpp



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ setMaximumSize函数代码示例发布时间:2022-05-30
下一篇:
C++ setMaterial函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap