コード例 #1
0
void TileCollisionDock::applyChanges()
{
    if (mSynchronizing)
        return;

    ObjectGroup *objectGroup = static_cast<ObjectGroup*>(mDummyMapDocument->map()->layerAt(1));
    ObjectGroup *clonedGroup = objectGroup->clone();

    QUndoStack *undoStack = mTilesetDocument->undoStack();
    mApplyingChanges = true;
    undoStack->push(new ChangeTileObjectGroup(mTilesetDocument, mTile, clonedGroup));
    mApplyingChanges = false;
}
コード例 #2
0
ファイル: my_scene.cpp プロジェクト: philou/philou
/**
 * Init the scene and OpenGL state
 *
 */
void MyScene::init()
{
    _objects[CUBE].load("./data/cube.off");
    _objects[PYRAMID].load("./data/pyramid.off");
    _objects[DISK].load("./data/disk.off");
    _objects[DISKHOLE].load("./data/diskhole.off");
    _objects[CYLINDER].load("./data/cylinder.off");
    _objects[CONE].load("./data/cone.off");
    _objects[SPHERE].load("./data/sphere.off");
    _objects[AIRCRAFT].load("./data/aircraft.off");
    _objects[VENUS].load("./data/venus.off");
    _objects[NEFERTITI].load("./data/nefertiti.off");

    Mesh* cone = new Mesh();
    cone->load("./data/cone.off");
    cone->addTransformation(glTranslatef,0.0,0.0,_radius);
    cone->addTransformation(glScalef,0.1, 0.1, 0.5);

    Mesh* cylinder = new Mesh();
    cylinder->load("./data/cylinder.off");
    cylinder->addTransformation(glScalef,0.01, 0.01, 1.0);

    ObjectGroup* zArrow = new ObjectGroup();
    zArrow->add(cone);
    zArrow->add(cylinder);
    //zArrow->addTransformation(glScalef, _radius/2, _radius/2, _radius/2);
    zArrow->addTransformation(glColor3f, 0, 0, 0.5);

    ObjectGroup* xArrow = zArrow->clone();
    xArrow->addTransformation(glRotatef, 90, 0, 1, 0);
    xArrow->addTransformation(glColor3f, 0.5, 0, 0);

    ObjectGroup* yArrow = zArrow->clone();
    yArrow->addTransformation(glRotatef, -90, 1, 0, 0);
    yArrow->addTransformation(glColor3f, 0, 0.5, 0);

    Mesh* centerSphere = new Mesh();
    centerSphere->load("./data/sphere.off");
    centerSphere->addTransformation(glScalef,0.05, 0.05, 0.05);
    centerSphere->addTransformation(glColor3f, 0.5, 0.5, 0.5);

    _allObjects = new ObjectGroup();
    _allObjects->add(centerSphere);
    _allObjects->add(xArrow);
    _allObjects->add(yArrow);
    _allObjects->add(zArrow);

    Mesh* sun = new Mesh();
    sun->load("./data/sphere.off");
    sun->addTransformation(glScalef, 0.3, 0.3, 0.3);
    sun->addTransformation(glColor3f, 0.9, 0.2, 0.0);
    _allObjects->add(sun);

    ObjectGroup* earthAndMoon = new ObjectGroup();
    _earthAndMoonRotator = new ParametrizedRotator(0,0,1);
    earthAndMoon->addTransformation(_earthAndMoonRotator);
    earthAndMoon->addTransformation(glTranslatef, 2, 0.0, 0.0);

    Mesh* earth = new Mesh();
    earth->load("./data/sphere.off");
    earth->addTransformation(glScalef, 0.1, 0.1, 0.1);
    earth->addTransformation(glColor3f, 0.0, 0.2, 0.9);
    earthAndMoon->add(earth);

    Mesh* moon = new Mesh();
    moon->load("./data/sphere.off");
    _moonRotator = new ParametrizedRotator(0,0,1);
    moon->addTransformation(_moonRotator);
    moon->addTransformation(glTranslatef, 0.5, 0.0, 0.0);
    moon->addTransformation(glScalef, 0.04, 0.04, 0.04);
    moon->addTransformation(glColor3f, 0.3, 0.3, 0.3);
    earthAndMoon->add(moon);

    _allObjects->add(earthAndMoon);

    setDayOfYear(0);

    // set antialiased lines
    //glEnable(GL_LINE_SMOOTH);	// FIXME current MESA driver messes up with antialiasing ...
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    glHint(GL_LINE_SMOOTH_HINT, GL_NICEST);
    glLineWidth(1.5);
}