コード例 #1
0
ファイル: SceneXMLParser.cpp プロジェクト: breazelee/Rainborg
void SceneXMLParser::loadSimulation(const std::string& file_name,
                                    bool rendering_enabled,
                                    bool gpu_enabled,
                                    openglframework::GLFWViewer* viewer,
                                    Simulation** sim,
                                    scalar& dt,
                                    scalar& max_time,
                                    scalar& steps_per_sec_cap,
                                    openglframework::Color& bgcolor,
                                    std::string& description) {

    // Load the xml document
    std::vector<char> xmlchars;
    rapidxml::xml_document<> doc;
    loadXMLFile( file_name, xmlchars, doc );

    // Attempt to locate the root node
    rapidxml::xml_node<>* node = doc.first_node("scene");
    if( node == NULL )
    {
      std::cerr << outputmod::startred << "ERROR IN XMLSCENEPARSER:" << outputmod::endred
            << "Failed to parse xml scene file. Failed to locate root <scene> node. Exiting." << std::endl;
      exit(1);
    }

    loadMaxTime(node, max_time);
    loadMaxSimFrequency(node, steps_per_sec_cap);

    if (rendering_enabled) {
        loadCamera(node, viewer);
        loadViewport(node, viewer);
    }

    Stepper* stepper = NULL;
    loadStepper(node, dt, &stepper);
    loadBackgroundColor(node, bgcolor);
    loadSceneDescriptionString(node, description);

    Scene* scene = new Scene();

    loadSimpleGravityForces(node, *scene);

    loadFluids(node, *scene, gpu_enabled);

    SceneRenderer *renderer = NULL;
    if (rendering_enabled)
        renderer = new SceneRenderer(scene);

    *sim = new Simulation(scene, stepper, renderer);
}
コード例 #2
0
ファイル: gl-graphics-context.cpp プロジェクト: cjhoward/ogf
GLGraphicsContext::GLGraphicsContext()
{
	loadViewport();
	loadCapabilities();
}