void zerokernel::VariableListEntry::setVariable(settings::IVariable *variable) { switch (variable->getType()) { case settings::VariableType::BOOL: control = std::move(createCheckbox(variable)); break; case settings::VariableType::INT: case settings::VariableType::FLOAT: control = std::move(createSpinner(variable)); break; case settings::VariableType::STRING: control = std::move(createTextInput(variable)); break; case settings::VariableType::COLOR: control = std::move(createColorPicker(variable)); break; case settings::VariableType::KEY: control = std::move(createKeyInput(variable)); break; } if (control) { control->setParent(this); control->bb.setMargin(0, 0, 0, 4); } }
void menuSetup(void) { mEnvironmentTexture = SGET("cubemap.dds"); mStartup = true; AddToken("FractalCoordinates",MC_FRACTAL_COORDINATES); createButton("Default Mandelbrot", MC_DEFAULT_MANDELBROT, "DefaultMandelbrot"); createButton("Filter Fractal", MC_FILTER_FRACTAL, "FilterFractal"); createButton("Optimize Mesh", MC_OPTIMIZE_MESH, "OptimizeMesh"); createCheckbox("Preview Only", MC_PREVIEW_ONLY, "PreviewOnly", false ); createCheckbox("Use Rectangle Subdivision", MC_RECTANGLE_SUBDIVISION,"RectangleSubdivision",true); createCheckbox("Use Multi-Threading", MC_USE_THREADING,"UseThreading",false); createCheckbox("View3D", MC_VIEW3D,"View3d",false); createCheckbox("Wireframe Overlay", MC_WIREFRAME_OVERLAY,"WireframeOverlay",false); createCheckbox("Show Normals", MC_SHOW_NORMALS,"ShowNormals",false); createSlider("Color Scale", MC_SMOOTH_COLOR, "SmoothColor", 1, 32, 16, true ); createSlider("Iteration Count", MC_ITERATION_COUNT, "IterationCount", 40, 100000, 1024, true ); createSlider("Clock Cycles Per Frame Mhz", MC_CLOCK_CYCLES, "ClockCycles", 20, 1000, 100, true ); createSlider("Clamp Low", MC_CLAMP_LOW, "ClampLow", 0.0f, 1, 0.0f, false ); createSlider("Clamp High", MC_CLAMP_HIGH, "ClampHigh", 0.001f, 0.3f, 0.3f, false ); createSlider("Clamp Scale", MC_CLAMP_SCALE, "ClampScale", 0.1f, 8, 1.0f, false ); createSlider("Rotation Speed", MC_ROTATION_SPEED, "RotationSpeed", -10, 10, 0.0f, false ); CPARSER.Parse("TuiComboBegin ColorPalette"); CPARSER.Parse("TuiName \"Color Palette\""); { WildCard *wc = createWildCard("*.pal"); FileFind ff(wc,0); StringVector list; ff.GetFiles(list); StringVector::iterator i; for (i=list.begin(); i!=list.end(); i++) { CPARSER.Parse("TuiChoice \"%s\"", (*i).c_str() ); } releaseWildCard(wc); } CPARSER.Parse("TuiArg default.pal"); CPARSER.Parse("TuiScript ColorPalette %%1"); CPARSER.Parse("TuiEnd"); AddToken("ColorPalette", MC_COLOR_PALETTE ); CPARSER.Parse("TuiComboBegin FloatingPointResolution"); CPARSER.Parse("TuiName \"Float Resolution\""); CPARSER.Parse("TuiChoices SMALL MEDIUM BIGFLOAT FIXED32"); CPARSER.Parse("TuiArg SMALL"); CPARSER.Parse("TuiScript FloatingPointResolution %%1"); CPARSER.Parse("TuiEnd"); AddToken("FloatingPointResolution", MC_FLOATING_POINT_RESOLUTION ); CPARSER.Parse("TuiComboBegin EnvironmentTexture"); CPARSER.Parse("TuiName \"Environment Texture\""); { WildCard *wc = createWildCard("cubemap*.dds"); FileFind ff(wc,"..\\..\\media\\CodeSuppository"); StringVector list; ff.GetFiles(list); StringVector::iterator i; for (i=list.begin(); i!=list.end(); i++) { CPARSER.Parse("TuiChoice \"%s\"", (*i).c_str() ); } releaseWildCard(wc); } CPARSER.Parse("TuiArg %s", mEnvironmentTexture.Get()); CPARSER.Parse("TuiScript EnvironmentTexture %%1"); CPARSER.Parse("TuiEnd"); AddToken("EnvironmentTexture", MC_ENVIRONMENT_TEXTURE ); createButton("Memory Report", MC_MEMORY_REPORT, "MemoryReport"); CPARSER.Parse("TuiPageBegin MainMenu"); CPARSER.Parse("TuiElement DefaultMandelbrot"); CPARSER.Parse("TuiElement PreviewOnly"); CPARSER.Parse("TuiElement RectangleSubdivision"); CPARSER.Parse("TuiElement FloatingPointResolution"); CPARSER.Parse("TuiElement UseThreading"); CPARSER.Parse("TuiElement View3d"); CPARSER.Parse("TuiElement WireframeOverlay"); CPARSER.Parse("TuiElement ShowNormals"); CPARSER.Parse("TuiElement FilterFractal"); CPARSER.Parse("TuiElement OptimizeMesh"); CPARSER.Parse("TuiElement SmoothColor"); CPARSER.Parse("TuiElement IterationCount"); CPARSER.Parse("TuiElement ClockCycles"); CPARSER.Parse("TuiElement ClampLow"); CPARSER.Parse("TuiElement ClampHigh"); CPARSER.Parse("TuiElement ClampScale"); CPARSER.Parse("TuiElement RotationSpeed"); CPARSER.Parse("TuiElement ColorPalette"); CPARSER.Parse("TuiElement EnvironmentTexture"); CPARSER.Parse("TuiElement FractalCoordinates"); CPARSER.Parse("TuiElement MemoryReport"); CPARSER.Parse("TuiPageEnd"); CPARSER.Parse("TuiPage MainMenu"); // AddToken("CreateDynamics", MC_CREATE_DYNAMICS ); AddToken("PsScript", MC_PSSCRIPT); AddToken("PsLookAt", MC_PSLOOKAT); CPARSER.Parse("TuiLoad ThreadFrac.psc"); CPARSER.Parse("TuiPageExecute MainMenu"); mStartup = false; }
int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH); glutInitWindowSize(800, 600); mainWindow = glutCreateWindow("Heightmaps"); /*std::cout << "P2" << std::endl; std::cout << map->width << std::endl; std::cout << map->height << std::endl; std::cout << map->depth << std::endl; for(int i = 0; i < map->width * map->height; i++) { std::cout << map->data[i] << std::endl; }*/ sceneTransform = Transformation( Vector3(0, 0, -100), Vector3(0.3, 0.3, 0.3), Vector3(0, 0, 0) ); light = Light(Vector4(10, 10, -10, 0)); prepareScene(); sceneTransform.rotation.data[0] = -35; // Enable depth checking. glEnable(GL_DEPTH_TEST); glutIdleFunc(idle); glutTimerFunc(10, animate, 1); glutReshapeFunc(reshape); glutDisplayFunc(display); glutKeyboardFunc(keyboard); glui = GLUI_Master.create_glui("Heightmap Controls", 0, 800, 50); GLUI_Panel* mainPan = new GLUI_Panel(glui, "", GLUI_PANEL_NONE); GLUI_Panel* pan; createStaticText(mainPan, "Heightmap Utility"); createStaticText(mainPan, "by Andrew Crowell"); createStaticText(mainPan, "for CIS*4800 A4, 2010"); createStaticText(mainPan, ""); createStaticText(mainPan, "The W and A keys rotate the map."); pan = new GLUI_Panel(mainPan, "Heightmap"); createTextField(pan, "Filename", mapFilename, loadMap); createFloatSpinner(pan, "R", &mapColor.data[Color::RedChannel], refreshGeometry)->set_float_limits(0, 1); createFloatSpinner(pan, "G", &mapColor.data[Color::GreenChannel], refreshGeometry)->set_float_limits(0, 1); createFloatSpinner(pan, "B", &mapColor.data[Color::BlueChannel], refreshGeometry)->set_float_limits(0, 1); createFloatSpinner(pan, "Z Scale", &mapScaleZ, refreshGeometry); createCheckbox(pan, "Randomize", &mapRandomize, refreshGeometry); pan = new GLUI_Panel(mainPan, "Message"); errorMessageLabel = createStaticText(pan, " "); createExitButton(glui, "Exit"); glui->set_main_gfx_window(mainWindow); GLUI_Master.set_glutIdleFunc(idle); loadMap(0); glutMainLoop(); return 0; }