Ejemplo n.º 1
0
void MainWindowApplication::on_action_Add_PDF_Document_triggered()
{
    if (ui->mdiArea->activeSubWindow() == NULL)
        return;
    ProjectWindow *w = qobject_cast<ProjectWindow *>(ui->mdiArea->activeSubWindow()->widget());
    if (w != NULL)
    {
        QString filename = QFileDialog::getOpenFileName(this,
                                                        tr("Include PDF Document"), ".",
                                                        tr("Adobe Acrobat pdf files (*.pdf)"));

        if (!filename.isEmpty())
        {
            QString projectName = w->getProjectName();
            proyecto::Proyecto *p = DataStore::getInstance()->getProject(projectName);
            p->addPDFToProject(filename);


            wndPDFViewer *newPDF = new wndPDFViewer(projectName, filename, this);
            connect(newPDF, SIGNAL(createNewElement()), w, SLOT(createNewElement()));
            ui->mdiArea->addSubWindow(newPDF);
            newPDF->show();
            newPDF->activateWindow();
        }
    }
}
void keyboard(unsigned char c, int iXPos, int iYPos)
{
	switch(c)
	{
	case 'w':
		camInputTravel(g_Input, tri_pos);
		break;
	case 's':
		camInputTravel(g_Input, tri_neg);
		break;
	case 'a':
		pushTail(seedPlanetValues(createNewElement()));
		break;
	case 'd': {
		jrPlanet* pDel = popTail();

		if (pDel == g_pFollowing) {
			resetFollow();
		}

		destroy(pDel);
		break; }
	case 'q':
		g_bMaintainPlanets = !g_bMaintainPlanets;
		break;

	}
}
void reset() {
	resetFollow();
	while (g_pHead != 0) {
		destroy(popTail());
	}
	pushTail(initSun(createNewElement())); //init sun
}
Ejemplo n.º 4
0
EntityTree::EntityTree(bool shouldReaverage) : 
    Octree(shouldReaverage), 
    _fbxService(NULL),
    _simulation(NULL)
{
    _rootElement = createNewElement();
}
Ejemplo n.º 5
0
void MainWindowApplication::on_actionOpen_PDF_triggered()
{
    if (ui->mdiArea->activeSubWindow() == NULL)
        return;
    ProjectWindow *w = qobject_cast<ProjectWindow *>(ui->mdiArea->activeSubWindow()->widget());
    if (w != NULL)
    {
        dlgListSelector dlg(this);
        QString projectName = w->getProjectName();
        dlg.addElements(*DataStore::getInstance()->getProject(projectName)->getAllPDFNames());
        if (dlg.exec() == QDialog::Accepted)
        {
            wndPDFViewer *pdf = new wndPDFViewer(projectName, dlg.selectedElement(), this);
            connect(pdf, SIGNAL(createNewElement()), w, SLOT(createNewElement()));
            ui->mdiArea->addSubWindow(pdf);
            pdf->show();
            pdf->activateWindow();
        }
    }
}
/// @return true si l'etape en cours est validee, false sinon
bool NewElementWizard::validateCurrentPage() {
	WizardState wizard_state = static_cast<WizardState>(currentPage() -> property("WizardState").toInt());
	if      (wizard_state == Category) return(validStep1());
	else if (wizard_state == Filename) return(validStep2());
	else if (wizard_state == Names) {
		// must have one name minimum
		if (element_names -> checkOneName())
			createNewElement();
		return true;

	}
	else return(true);
}
Ejemplo n.º 7
0
void addElementToHead(int value, List *list)
{
	Position element = createNewElement();
	if (!list->tail)
	{
		list->tail = element;
		list->head = element;
		element->value = value;
		return;
	}
	list->head->previous = element;
	element->next = list->head;
	element->value = value;
	list->head = element;
}
Ejemplo n.º 8
0
void insert(List *list, TypeOfWord word)
{
	if (existInList(list, word))
	{
		returnPos(list, word)->value->countOfWord++;
	}
	else
	{
		ElementOfList *element = new ElementOfList;
		element->value = createNewElement();
		element->value->word = word;
		element->value->countOfWord = 1;
		element->next = list->head;
		list->head = element;
	}
}
void myInit()
{
	initMaths();
	camInit(g_Camera);
	camInputInit(g_Input);
	camInputExplore(g_Input, true);

	glClearColor(0.01f, 0.01f, 0.01f, 0.0f); //sets the colour values to use when clearing the colours, essentially sets the canvas colour
	glEnable(GL_DEPTH_TEST);
	glEnable(GL_LIGHT0); //sets the colour of the light (0 == white)
	glEnable(GL_LIGHTING); //allows GL to make lighting calculations
	glEnableClientState(GL_VERTEX_ARRAY);

	pushTail(initSun(createNewElement())); //init sun

	loadTextures();
}
Ejemplo n.º 10
0
OctreeElement* OctreeElement::addChildAtIndex(int childIndex) {
    OctreeElement* childAt = getChildAtIndex(childIndex);
    if (!childAt) {
        // before adding a child, see if we're currently a leaf
        if (isLeaf()) {
            _voxelNodeLeafCount--;
        }

        unsigned char* newChildCode = childOctalCode(getOctalCode(), childIndex);
        childAt = createNewElement(newChildCode);
        setChildAtIndex(childIndex, childAt);

        _isDirty = true;
        markWithChangedTime();
    }
    return childAt;
}
Ejemplo n.º 11
0
void EntityTree::createRootElement() {
    _rootElement = createNewElement();
}
void rightClickMenu(int iCommand) {


	switch (iCommand) { //change to constants

	case PAUSE:
		g_bPlaying = false;
		break;
	case PLAY:
		g_bPlaying = true;
		break;
	case RESET:
		reset();
		break;
	case LONG_TRAILS: {
		resetTrails();
		g_iHistoryVariableLength = iHistoryMax;
		break; }
	case SHORT_TRAILS: {
		resetTrails();
		g_iHistoryVariableLength = g_iHistoryVariableLength / 3;

		if (g_iHistoryVariableLength < 300) {
			g_iHistoryVariableLength = 300; //with alpha, any shorter and they are basically off
		}

		break; }
	case TRAILS_OFF:
		g_bTrailsOn = false;
		break;
	case TRAILS_ON:
		g_bTrailsOn = true;
		break;
	case INCREASE_FPS:
		g_fFPSMultiplier += 0.2f;
		break;
	case DECREASE_FPS: {
		g_fFPSMultiplier -= 0.2f;

		if (g_fFPSMultiplier < 0.2f) { //stops it from having 0 fps, which currently would cause a crash
			g_fFPSMultiplier = 0.2f;
		}
		break; }
	case SAVE:
		saveFile();
		break;
	case LOAD:
		loadFile();
		break;
	case INCREASE_POPCAP:
		g_iMaintainPlanetNumber = g_iMaintainPlanetNumber * 2;
		break;
	case DECREASE_POPCAP:
		g_iMaintainPlanetNumber = g_iMaintainPlanetNumber / 2;
		break;
	case TEXTURES_ON:
		g_bTexturesOn = true;
		break;
	case TEXTURES_OFF:
		g_bTexturesOn = false;
		break;
	case PARTICLES_ON:
		g_bParticlesOn = true;
		break;
	case PARTICLES_OFF:
		g_bParticlesOn = false;
		break;
	case INCREASE_VELOCITY: 
		g_fVelocityMultiplier *= 2.0f;
		break;
	case DECREASE_VELOCITY:
		g_fVelocityMultiplier /= 2.0f;
		break; 
	case REVERSE_VELOCITY:
		g_fVelocityMultiplier *= -1.0f;
		break;
	case INCREASE_SIZE: {
		if (g_pFollowing) {
			g_pFollowing->fMass *= 2.0f;
			g_pFollowing->fSize *= 2.0f;
			g_pFollowing->iSlices += 5;
			g_pFollowing->iSegments += 5;
		}
		break; }
	case DECREASE_SIZE: {
		if (g_pFollowing) {
			g_pFollowing->fMass /= 2.0f;
			g_pFollowing->fSize /= 2.0f;
			g_pFollowing->iSlices = 20;
			g_pFollowing->iSegments = 20;
		}
		break; }
	case REMOVE_VELOCITY: {
		if (g_pFollowing) {
			vecInitDVec(g_pFollowing->afVelocity);
			vecInitDVec(g_pFollowing->afAcceleration);
		}
		break; }
	case CHANGE_COLOUR: {
		if (g_pFollowing) {
			g_pFollowing->afDiffuse[0] = randFloat(0.3f, 0.8f);
			g_pFollowing->afDiffuse[1] = randFloat(0.3f, 0.8f);
			g_pFollowing->afDiffuse[2] = randFloat(0.3f, 0.8f);
			g_pFollowing->afAmbient[0] = g_pFollowing->afDiffuse[0] / 2.0f;
			g_pFollowing->afAmbient[1] = g_pFollowing->afDiffuse[1] / 2.0f;
			g_pFollowing->afAmbient[2] = g_pFollowing->afDiffuse[2] / 2.0f;
		}
		break; }
	case STOP_FOLLOWING: 
		resetFollow();
		break;
	case SPHERE:
		pushTail(seedPlanetValues(createNewElement()));
		break;
	case CUBE:
		pushTail(seedCubeValues(createNewElement()));
		break;
	case CONE:
		pushTail(seedConeValues(createNewElement()));
		break;
	case TEAPOT:
		pushTail(seedTeapotValues(createNewElement()));
		break;
	case VERY_LARGE_SPHERE: {
		jrPlanet* pPlanet = seedPlanetValues(createNewElement()); 
		pPlanet->fSize = randFloat(50.0f, 100.0f);
		pPlanet->fMass = pPlanet->fSize * 20;
		pPlanet->iSegments = 30;
		pPlanet->iSlices = 30;
		pushTail(pPlanet);
		break; }
	case COMET: {
		jrPlanet* pPlanet = seedPlanetValues(createNewElement()); 
		pPlanet->fSize = pPlanet->fSize / 2;
		pPlanet->fMass = pPlanet->fSize * 20;
		pPlanet->m_bParticles = true;
		pushTail(pPlanet);
		break; }
	case SUN: {
		jrPlanet* pSun = initSun(createNewElement());
		pSun->afPosition[0] = randFloat(-3000.0f, 3000.0f);
		pSun->afPosition[1] = randFloat(-3000.0f, 3000.0f);
		pSun->afPosition[2] = randFloat(-3000.0f, 3000.0f);
		pushTail(pSun);
		break; }
	case EARTH: {
		jrPlanet* pPlanet = seedPlanetValues(createNewElement());
		pPlanet->fMass *= 1.5f;
		pPlanet->fSize *= 1.5f;

		pPlanet->iSegments = 20;
		pPlanet->iSlices = 20;

		pPlanet->afDiffuse[0] = 0.2f;
		pPlanet->afDiffuse[1] = 0.4f;
		pPlanet->afDiffuse[2] = 0.8f;

		pPlanet->afAmbient[0] = pPlanet->afDiffuse[0] / 2.0f;
		pPlanet->afAmbient[1] = pPlanet->afDiffuse[0] / 2.0f;
		pPlanet->afAmbient[2] = pPlanet->afDiffuse[0] / 2.0f;

		pPlanet->iType = EARTH;
		pushTail(pPlanet);
		break; }
	case MOON: {
		jrPlanet* pPlanet = seedPlanetValues(createNewElement());
		pPlanet->fMass *= 1.5f;
		pPlanet->fSize *= 1.5f;

		pPlanet->iSegments = 20;
		pPlanet->iSlices = 20;

		pPlanet->afDiffuse[0] = 0.8f;
		pPlanet->afDiffuse[1] = 0.8f;
		pPlanet->afDiffuse[2] = 0.8f;

		pPlanet->afAmbient[0] = pPlanet->afDiffuse[0] / 2.0f;
		pPlanet->afAmbient[1] = pPlanet->afDiffuse[0] / 2.0f;
		pPlanet->afAmbient[2] = pPlanet->afDiffuse[0] / 2.0f;

		pPlanet->iType = MOON;
		pushTail(pPlanet);
		break; }
	case MARS: {
		jrPlanet* pPlanet = seedPlanetValues(createNewElement());
		pPlanet->fMass *= 1.5f;
		pPlanet->fSize *= 1.5f;

		pPlanet->iSegments = 20;
		pPlanet->iSlices = 20;

		pPlanet->afDiffuse[0] = 0.8f;
		pPlanet->afDiffuse[1] = 0.3f;
		pPlanet->afDiffuse[2] = 0.3f;

		pPlanet->afAmbient[0] = pPlanet->afDiffuse[0] / 2.0f;
		pPlanet->afAmbient[1] = pPlanet->afDiffuse[0] / 2.0f;
		pPlanet->afAmbient[2] = pPlanet->afDiffuse[0] / 2.0f;

		pPlanet->iType = MARS;
		pushTail(pPlanet);
		break; }
	case DEATH_STAR: {
		jrPlanet* pPlanet = seedPlanetValues(createNewElement());
		pPlanet->fMass *= 1.5f;
		pPlanet->fSize *= 1.5f;

		pPlanet->iSegments = 20;
		pPlanet->iSlices = 20;

		pPlanet->afDiffuse[0] = 0.2f;
		pPlanet->afDiffuse[1] = 0.2f;
		pPlanet->afDiffuse[2] = 0.2f;

		pPlanet->afAmbient[0] = pPlanet->afDiffuse[0] / 2.0f;
		pPlanet->afAmbient[1] = pPlanet->afDiffuse[0] / 2.0f;
		pPlanet->afAmbient[2] = pPlanet->afDiffuse[0] / 2.0f;

		pPlanet->iType = DEATH_STAR;
		pushTail(pPlanet);
		break; }
	}
}
void loadFile() {

	g_bMaintainPlanets = false; //create a blank canvas
	reset();
	popTail();

	char sFileName[512];
	strcpy(sFileName, "savefile.sav\0");
	printf("Loading %s\n", sFileName);

	FILE *pFile = fopen(sFileName, "r");
	if (pFile) {
		while(!feof(pFile)) {
			char sFileContents[32768];
			fscanf(pFile, " %s ", sFileContents);

			char *cToken = strtok(sFileContents, ",");

			while(cToken != '\0') {

				jrPlanet* pPlanet = createNewElement();

				pPlanet->fSize = atof(cToken);
				cToken = strtok(0, ",");

				pPlanet->fMass = atof(cToken);
				cToken = strtok(0, ",");

				pPlanet->fRotationAngle = atof(cToken);
				cToken = strtok(0, ",");

				pPlanet->afPosition[0] = atof(cToken);
				cToken = strtok(0, ",");
				pPlanet->afPosition[1] = atof(cToken);
				cToken = strtok(0, ",");
				pPlanet->afPosition[2] = atof(cToken);
				cToken = strtok(0, ",");
				pPlanet->afPosition[3] = atof(cToken);
				cToken = strtok(0, ",");

				pPlanet->iHistoryCount = 0;

				pPlanet->afAmbient[0] = atof(cToken);
				cToken = strtok(0, ",");
				pPlanet->afAmbient[1] = atof(cToken);
				cToken = strtok(0, ",");
				pPlanet->afAmbient[2] = atof(cToken);
				cToken = strtok(0, ",");
				pPlanet->afAmbient[3] = atof(cToken);
				cToken = strtok(0, ",");

				pPlanet->afDiffuse[0] = atof(cToken);
				cToken = strtok(0, ",");
				pPlanet->afDiffuse[1] = atof(cToken);
				cToken = strtok(0, ",");
				pPlanet->afDiffuse[2] = atof(cToken);
				cToken = strtok(0, ",");
				pPlanet->afDiffuse[3] = atof(cToken);
				cToken = strtok(0, ",");

				pPlanet->afVelocity[0] = atof(cToken);
				cToken = strtok(0, ",");
				pPlanet->afVelocity[1] = atof(cToken);
				cToken = strtok(0, ",");
				pPlanet->afVelocity[2] = atof(cToken);
				cToken = strtok(0, ",");
				pPlanet->afVelocity[3] = atof(cToken);
				cToken = strtok(0, ",");

				pPlanet->afAcceleration[0] = atof(cToken);
				cToken = strtok(0, ",");
				pPlanet->afAcceleration[1] = atof(cToken);
				cToken = strtok(0, ",");
				pPlanet->afAcceleration[2] = atof(cToken);
				cToken = strtok(0, ",");
				pPlanet->afAcceleration[3] = atof(cToken);
				cToken = strtok(0, ",");

				pPlanet->afForce[0] = atof(cToken);
				cToken = strtok(0, ",");
				pPlanet->afForce[1] = atof(cToken);
				cToken = strtok(0, ",");
				pPlanet->afForce[2] = atof(cToken);
				cToken = strtok(0, ",");
				pPlanet->afForce[3] = atof(cToken);
				cToken = strtok(0, ",");

				pPlanet->iSegments = atoi(cToken);
				cToken = strtok(0, ",");

				pPlanet->iSlices = atoi(cToken);
				cToken = strtok(0, ",");

				for (int i = 0; i < iHistoryMax; i++) {
					pPlanet->afPositionHistory[i] = pPlanet->afPosition[0];
					i++;
					pPlanet->afPositionHistory[i] = pPlanet->afPosition[1];
					i++;
					pPlanet->afPositionHistory[i] = pPlanet->afPosition[2];
				}

				pPlanet->iType = atof(cToken);
				cToken = strtok(0, ",");

				pPlanet->m_bParticles = !!atoi(cToken);
				cToken = strtok(0, ",");

				pPlanet->m_bFixed = !!atoi(cToken);
				cToken = strtok(0, ",");

				pushTail(pPlanet);
			}
		}

		fclose(pFile);
	}

}
void maintainPlanetNumber() {
	if (getNumberOfPlanets() < g_iMaintainPlanetNumber) {
		pushTail(seedPlanetValues(createNewElement()));
	}
}
Ejemplo n.º 15
0
VoxelTree::VoxelTree(bool shouldReaverage) : Octree(shouldReaverage) {
    _rootNode = createNewElement();
}
Ejemplo n.º 16
0
EntityTree::EntityTree(bool shouldReaverage) : Octree(shouldReaverage) {
    _rootElement = createNewElement();
}