예제 #1
0
void GameObjectManager::insert(int index, GameObject* object)
{
    if (contains(object))
        return;

    if (index < 0)
        index = 0;
    else if (index > mGameObjects.size())
        index = mGameObjects.size();

    prepareObject(object);
    mGameObjects.insert(index, object);
    emit objectInserted(index, object);
}
bool SimpleDataAccessObject<T>::insert(T * const object)
{
    resetLastError();
    QVariant key = m_metaObject.primaryKeyProperty().read(object);
    if(m_objects.contains(key)) {
        setLastError(QDataSuite::Error("An object with this key already exists.",
                                       QDataSuite::Error::StorageError));
        return false;
    }

    m_objects.insert(key, object);
    emit objectInserted(object);
    return true;
}
예제 #3
0
파일: Scene.cpp 프로젝트: HonghuaLi/stacker
void Scene::setActiveObject(QSegMesh* newMesh)
{
	// Delete the original object
	if (activeMesh)
		emit( objectDiscarded( activeMesh->objectName() ) );
		
	// Setup the new object
	activeMesh = newMesh;

	// Controller
	if (!activeMesh->ptr.contains("controller"))
		activeMesh->ptr["controller"] = new Controller(activeMesh);

	// Change title of scene
	setWindowTitle(activeMesh->objectName());

	// Set camera
	resetView();

	// Update the object
	updateActiveObject();

	emit(gotFocus(this));
	emit(objectInserted());

	this->selectMode = CONTROLLER;

	// Check if normalizedf
	double thresh = 1e-6;

	if (abs(newMesh->scaleFactor - 1.0) > thresh || newMesh->translation.norm() > thresh)
	{
		QString message = "WARNING: EXPORT THE (! normalized !) MESH AND RELOAD AGAIN!!!!";
		for(int i = 0; i < 5;i++) print(message);
		displayMessage(message, 5000);
		updateGL();
	}
}