void AntTweakBarWrapper::Init() { TwInit(TW_OPENGL, NULL); m_control_panel_bar = TwNewBar("Control Panel"); //TwDefine(" 'Control Panel' size='200 210' position='114 10' color='255 255 255' text=dark "); char control_bar_pos_string [255]; sprintf(control_bar_pos_string, "'Control Panel' position='%d 10' color='255 255 0' ", DEFAULT_SCREEN_WIDTH-210); TwDefine(control_bar_pos_string); TwAddVarRW(m_control_panel_bar, "Start Simulation", TwType(sizeof(bool)), &(g_start_simulation), " label='Start Simulation' key=s group='Debug Information' help='Toggle simulation mode.'"); TwAddVarRW(m_control_panel_bar, "Render FP", TwType(sizeof(bool)), &(g_show_render), " label='Render FP' key=w group='Debug Information' help='Toggle render display mode.'"); TwAddVarRW(m_control_panel_bar, "Wireframe", TwType(sizeof(bool)), &(g_show_wireframe), " label='Wireframe mode' key=w group='Debug Information' help='Toggle wireframe display mode.'"); TwAddVarRW(m_control_panel_bar, "Edge List", TwType(sizeof(bool)), &(g_show_edgelist), " label='Edgelist mode' group='Debug Information' help='Toggle edgelist display mode.'"); TwAddVarRW(m_control_panel_bar, "Line Width", TW_TYPE_FLOAT, &(g_linewidth),"label='Line Width' min=0 max=100 step=0.05 help='line width' group='Debug Information'"); TwAddVarRW(m_control_panel_bar, "Fixed Vertex", TwType(sizeof(bool)), &(g_show_fixedvertex), " label='Fixed Vertex' key=w group='Debug Information' help='Toggle fixed vertex mode.'"); TwAddVarRW(m_control_panel_bar, "Point Size", TW_TYPE_FLOAT, &(g_pointsize),"label='Point Size' min=0 max=100 step=0.05 help='Point Size' group='Debug Information'"); TwAddVarRW(m_control_panel_bar, "Zoom", TW_TYPE_FLOAT, &(cameraDistance),"label='Zoom Mode' min=-30 max=30 step=0.1 keyIncr=z keyDecr=Z help='zoom camera' group='Camera'"); m_sim_bar = TwNewBar("Simulation Control"); TwDefine("'Simulation Control' position='0 0' color='255 0 0'"); TwEnumVal shapeEV[NUM_SIMULATION] = { {PositionBasedDynamic, "Position Based Dynamic"}, {MassSpring, "Mass Spring"}, {FiniteElement, "Finite Element"}, {FastMassSpring, "Fast Mass Spring"}, {ProjectiveDynamic, "Projective Dynamic"} }; TwType simmethod = TwDefineEnum("simmethod", shapeEV, NUM_SIMULATION); TwAddVarRW(m_sim_bar, "Simulation Method", simmethod, &g_CurrentMethod, " keyIncr='<' keyDecr='>' help='Change Simulation Method.' "); }
void ParticleEditor::Initialize() { system_window_ = TwNewBar("System Editor"); TwAddVarCB(system_window_, "System Index", TW_TYPE_INT32, TweakBarParticleSetSystem, TweakBarParticleGetSystem, nullptr, ""); emitter_window_ = TwNewBar("Emitter Editor"); TwAddVarCB(emitter_window_, "Emitter Index", TW_TYPE_INT32, TweakBarParticleSetEmitter, TweakBarParticleGetEmitter, nullptr, ""); state_window_ = TwNewBar("State Editor"); TwAddVarCB(state_window_, "State Index", TW_TYPE_INT32, TweakBarParticleSetState, TweakBarParticleGetState, nullptr, ""); }
void outPut::init_Bars() { b_scene = TwNewBar("Scene"); _scene3d.distance = _dimensions.x+_dimensions.y; _scene3d.zoom = 60; _scene3d.focus = coords3d<float>::retournercoords3d(_dimensions.x/2,_dimensions.y/2,0); //_scene3d.orientation = {0, 0, 0, 1}; // direction pointing to +x and +y _scene3d.orientation[0]=_scene3d.orientation[1]=_scene3d.orientation[2]=0; _scene3d.orientation[3]=1; TwAddVarRW(b_scene, "Orientation", TW_TYPE_QUAT4F, &(_scene3d.orientation),"axisx=x axisy=y axisz=z"); TwAddVarRW(b_scene, "Distance", TW_TYPE_DOUBLE, &(_scene3d.distance),""); TwAddVarRW(b_scene, "Zoom", TW_TYPE_DOUBLE, &(_scene3d.zoom),"min = 5 max = 200"); TwAddVarRW(b_scene, "x", TW_TYPE_FLOAT, &(_scene3d.focus.x), "group = 'Focus' "); TwAddVarRW(b_scene, "y", TW_TYPE_FLOAT, &(_scene3d.focus.y), "group = 'Focus' "); TwAddVarRW(b_scene, "z", TW_TYPE_FLOAT, &(_scene3d.focus.z), "group = 'Focus'"); TwAddButton(b_scene, "Centrer", cbCenterView, this, " group = 'Focus' "); TwAddVarRW(b_scene, "Test de profondeur résultat", TW_TYPE_BOOLCPP, &(_reg.ZTEST_RESULT), "label='Z test resultat'"); TwAddVarRW(b_scene, "Temps de calcul (ms)", TW_TYPE_INT32, &(_status.drawDelay), "min=0 max=1000"); //_scene3d.lightDir = {1,1,-1}; _scene3d.lightDir[0]=_scene3d.lightDir[1]=1; _scene3d.lightDir[2]=-1; //_scene3d.lightPos = {-1,-1,1,0}; _scene3d.lightPos[0]=_scene3d.lightPos[1]=-1; _scene3d.lightPos[2]=1; _scene3d.lightPos[3]=0; TwAddVarRW(b_scene, "Direction", TW_TYPE_DIR3F, &(_scene3d.lightDir), "group = Lumiere" ); TwAddVarRW(b_scene, "Directionnelle", TW_TYPE_FLOAT, &(_scene3d.lightPos[3]), "group = Lumiere min=0 max =1" ); b_reglages = TwNewBar("Reglages"); TwAddVarRO(b_reglages, "MAX_FPS", TW_TYPE_INT32, &(_reg.MAX_FPS), "group='Window settings'"); TwAddButton(b_reglages, "Recalculer", recalculate, this, " group = Rendu "); TwAddVarRW(b_reglages, "Multiplicateur", TW_TYPE_DOUBLE, &(_reg.MULTIPLIER), "group = 'Rendu' min = 0 max = 100"); TwType colorsType; colorsType = TwDefineEnum("ColorsType", NULL, 0); //TwAddVarRW(b_reglages, "Couleurs", colorsType, &(_reg.COLORS), " enum='0 {Réelles}, 1 {Colorisé}, 2 {Uniforme}'"); TwAddVarRW(b_reglages, "Filaire", TW_TYPE_BOOLCPP, &(_reg.WIREFRAME), " group = Rendu "); TwAddVarRW(b_reglages, "Normales", TW_TYPE_BOOLCPP, &(_reg.DRAW_NORMALS), "group = 'Rendu'"); TwAddVarRW(b_reglages, "Couleur unie", TW_TYPE_COLOR3F, &(_reg.UNIFORM_COLOR), "colormode=hls group = 'Rendu'"); b_postprocess = TwNewBar("Post-processing"); _effect = 0; TwAddVarRW(b_postprocess, "Effet", TW_TYPE_INT32, &(_effect),"max=20 keyincr = p keydecr = m"); b_pathfind = TwNewBar("Pathfind"); TwAddVarRW(b_pathfind, "En cours", TW_TYPE_BOOLCPP, &(_status.running), "help='Fermer le programme' key=ESC"); TwAddVarRW(b_pathfind, "Pause", TW_TYPE_BOOLCPP, &(_status.pause), "key=t"); TwSetTopBar(b_scene); TwDefine(" Reglages iconified=true "); TwDefine(" Pathfind iconified=true "); TwDefine(" Post-processing iconified=true "); }
void initAnt() { ///@note Bad size errors will be thrown if this is not called before bar creation. TwWindowSize(g_mirrorWindowSz.x, g_mirrorWindowSz.y); TwDefine(" GLOBAL fontsize=3 "); // Create a tweak bar g_pMainTweakbar = TwNewBar("TweakBar"); g_pShaderTweakbar = TwNewBar("ShaderTweakBar"); g_gallery.m_pMainTweakbar = g_pMainTweakbar; g_gallery.m_pShaderTweakbar = g_pShaderTweakbar; TwDefine(" GLOBAL fontsize=3 "); TwDefine(" TweakBar size='300 580' "); TwDefine(" TweakBar position='10 10' "); TwDefine(" ShaderTweakBar size='300 420' "); TwDefine(" ShaderTweakBar position='290 170' "); TwAddVarRW(g_pMainTweakbar, "FBO Scale", TW_TYPE_FLOAT, &m_fboScale, " min=0.05 max=1.0 step=0.005 group='Performance' "); TwAddVarRW(g_pMainTweakbar, "Cinemascope", TW_TYPE_FLOAT, &m_cinemaScope, " min=0.05 max=1.0 step=0.005 group='Performance' "); TwAddButton(g_pMainTweakbar, "Toggle Perf HUD", TogglePerfHUDCB, NULL, " group='Performance' "); TwAddVarRW(g_pMainTweakbar, "Snap Turn", TW_TYPE_BOOLCPP, &m_snapTurn, " group='Controls' "); TwAddButton(g_pMainTweakbar, "Reset Position", ResetPositionCB, NULL, " group='Controls' "); TwAddButton(g_pMainTweakbar, "Recenter Pose", RecenterPoseCB, NULL, " group='Controls' "); TwAddButton(g_pMainTweakbar, "Hide Tweakbar", HideTweakbarCB, NULL, " group='Controls' "); TwAddVarRW(g_pMainTweakbar, "Chassis Pos X", TW_TYPE_FLOAT, &m_chassisPos.x, " min=-10 max=10 step=0.05 group='Controls' "); TwAddVarRW(g_pMainTweakbar, "Chassis Pos Y", TW_TYPE_FLOAT, &m_chassisPos.y, " min=-10 max=10 step=0.05 group='Controls' "); TwAddVarRW(g_pMainTweakbar, "Chassis Pos Z", TW_TYPE_FLOAT, &m_chassisPos.z, " min=-10 max=10 step=0.05 group='Controls' "); TwAddVarRW(g_pMainTweakbar, "Chassis Yaw", TW_TYPE_FLOAT, &m_chassisYaw, " min=-10 max=10 step=0.05 group='Controls' "); TwAddVarRW(g_pMainTweakbar, "Animated Thumbnails", TW_TYPE_BOOLCPP, &g_gallery.m_globalShadertoyState.animatedThumbnails, " group='Gallery' "); TwAddVarRW(g_pMainTweakbar, "Panes As Portals", TW_TYPE_BOOLCPP, &g_gallery.m_globalShadertoyState.panesAsPortals, " group='Gallery' "); TwAddButton(g_pMainTweakbar, "Enter/Exit Shader", ToggleShaderWorldCB, NULL, " group='Shader' "); TwAddVarRW(g_pMainTweakbar, "headSize", TW_TYPE_FLOAT, &m_headSize, " label='headSize' precision=4 min=0.0001 step=0.001 group='Shader' "); TwAddButton(g_pMainTweakbar, "Reset Timer", ResetTimerCB, &g_gallery, " label='Reset Timer' group='Shader' "); }
SceneDialog::SceneDialog() { // Create a tweak bar m_dialog = TwNewBar("Scene"); TwDefine(" GLOBAL help='This example shows how to integrate AntTweakBar into a DirectX11 application.' "); // Message added to the help bar. int barSize[2] = {200, 1060}; TwSetParam(m_dialog, NULL, "size", TW_PARAM_INT32, 2, barSize); TwDefine(" Scene position='10 10' "); TwAddButton(m_dialog, "Load Scene", LoadAGL, this, " label='Load Scene' key=c help='Load an Agile file into the editor.' group='I/O'"); TwAddButton(m_dialog, "Save Scene", SaveAGL, this, " label='Save Scene' key=c help='Save a scene into an Agile file.' group='I/O'"); TwAddVarRW(m_dialog, "Rotation", TW_TYPE_QUAT4F, Scene::GetInstance()->GetQuaternionRotation(), "opened=true axisz=-z"); TwStructMember pointMembers[] = { { "X", TW_TYPE_FLOAT, offsetof(AglVector3, x), " Step=0.01 " }, { "Y", TW_TYPE_FLOAT, offsetof(AglVector3, y), " Step=0.01 " }, { "Z", TW_TYPE_FLOAT, offsetof(AglVector3, z), " Step=0.01 " }}; TwType pointType = TwDefineStruct("POINT", pointMembers, 3, sizeof(AglVector3), NULL, NULL); TwAddVarRW(m_dialog, "Position", pointType, Scene::GetInstance()->GetPosition(), ""); TwAddVarRW(m_dialog, "ShowHideDiffuse", TW_TYPE_BOOLCPP, &DIFFUSEON, "group='Show/Hide'"); TwAddVarRW(m_dialog, "ShowHideSpec", TW_TYPE_BOOLCPP, &SPECULARON, "group='Show/Hide'"); TwAddVarRW(m_dialog, "ShowHideGlow", TW_TYPE_BOOLCPP, &GLOWON, "group='Show/Hide'"); TwAddVarRW(m_dialog, "ShowHideNormal", TW_TYPE_BOOLCPP, &NORMALON, "group='Show/Hide'"); m_meshDialog = new MeshDialog(); m_materialDialog = new MaterialDialog(); m_particleSystemDialog = new ParticleSystemDialog(); m_mergeDialog = new MergeDialog(); }
int main(int args, char **argv) { glutInit(&args, argv); glutInitWindowSize(800, 600); glutInitDisplayMode(GLUT_RGBA | GLUT_DEPTH | GLUT_DOUBLE); glutCreateWindow("simple vertex shader"); TwInit(TW_OPENGL, NULL); TwBar *bar = TwNewBar("myBar"); TwDefine("myBar size='200 400' color = '96 216 224'"); TwAddVarRW(bar, "ObjectRotate", TW_TYPE_QUAT4F, &g_Rotate, "label='Object Rotation' opened=true"); TwAddVarRW(bar, "LightDir", TW_TYPE_DIR3F, &g_lightPos, "label='light Pos' opened=true"); glutMouseFunc((GLUTmousebuttonfun)TwEventMouseButtonGLUT); glutMotionFunc((GLUTmousemotionfun)TwEventMouseMotionGLUT); glutPassiveMotionFunc((GLUTmousemotionfun)TwEventMouseMotionGLUT); glutKeyboardFunc((GLUTkeyboardfun)TwEventKeyboardGLUT); TwGLUTModifiersFunc(glutGetModifiers); glutDisplayFunc(RenderScene); glutReshapeFunc(ChangeSize); SetupRC(); glutMainLoop(); Terminate(); return 0; }
void init(void) { // Define técnica de shading: GL_FLAT, GL_SMOOTH glShadeModel(GL_SMOOTH); glPolygonMode(GL_FRONT, GL_FILL); // GL_LINE, GL_POINT, GL_FILL // Activa o teste de profundidade glEnable(GL_DEPTH_TEST); glEnable(GL_TEXTURE_2D); //glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); TwInit(TW_OPENGL, NULL); mainBar = TwNewBar("Parameters"); TwAddVarRW(mainBar, "Time Scale", TW_TYPE_FLOAT, &TimeScale, " group='Simulation' keyincr=U keydecr=I help='Simulation's time scale'"); TwAddVarRW(mainBar, "Speed", TW_TYPE_FLOAT, &camSpeed, " group='Camera' keyincr=S keydecr=X help='Camera movement speed' "); TwAddVarRW(mainBar, "Manual", TW_TYPE_BOOL16, &manualCam, " group='Camera' keyincr=C help='Toogle camera mode' "); TwAddVarRW(mainBar, "Show Orbits", TW_TYPE_BOOL16, &orbits, " group='Orbits' keyincr=O help='Toogle orbits' "); // Compila o modelo createFloorToDL(); }
void initGUI() { // Initialize AntTweakBar GUI if (!TwInit(TW_OPENGL, NULL)) { assert(0); } TwWindowSize(g_WindowWidth, g_WindowHeight); TwBar *controlBar = TwNewBar("Controls"); TwDefine(" Controls position='10 10' size='200 320' refresh=0.1 "); TwAddVarCB(controlBar, "use_shaders", TW_TYPE_BOOLCPP, cbSetShaderStatus, cbGetShaderStatus, NULL, " label='shaders' key=s help='Turn programmable pipeline on/off.' "); // Shader panel setup TwAddVarRW(controlBar, "vs", TW_TYPE_BOOLCPP, &g_UseVertexShader, " group='Shaders' label='vertex' key=v help='Toggle vertex shader.' "); TwAddVarRW(controlBar, "gs", TW_TYPE_BOOLCPP, &g_UseGeometryShader, " group='Shaders' label='geometry' key=g help='Toggle geometry shader.' "); TwAddVarRW(controlBar, "fs", TW_TYPE_BOOLCPP, &g_UseFragmentShader, " group='Shaders' label='fragment' key=f help='Toggle fragment shader.' "); TwAddButton(controlBar, "build", cbCompileShaderProgram, NULL, " group='Shaders' label='build' key=b help='Build shader program.' "); //TwDefine( " Controls/Shaders readonly=true "); // Render panel setup TwAddVarRW(controlBar, "wiremode", TW_TYPE_BOOLCPP, &g_WireMode, " group='Render' label='wire mode' key=w help='Toggle wire mode.' "); TwAddVarRW(controlBar, "face_culling", TW_TYPE_BOOLCPP, &g_FaceCulling, " group=Render label='face culling' key=c help='Toggle face culling.' "); // Scene panel setup TwEnumVal geometry_type[] = { { ELEPHANT_GEOMETRY , "Elephant"}, { CUBE_GEOMETRY , "Cube" }, }; TwType geom_type = TwDefineEnum("Model", geometry_type, NUM_GEOMETRY_TYPES); TwAddVarRW(controlBar, "model", geom_type, &g_GeometryType, " group='Scene' keyIncr=Space help='Change model.' "); TwAddVarRW(controlBar, "auto-rotation", TW_TYPE_BOOLCPP, &g_SceneRotEnabled, " group='Scene' label='rotation' key=r help='Toggle scene rotation.' "); TwAddVarRW(controlBar, "Translate", TW_TYPE_FLOAT, &g_SceneTraZ, " group='Scene' label='translate' min=1 max=1000 step=0.5 keyIncr=t keyDecr=T help='Scene translation.' "); TwAddVarRW(controlBar, "SceneRotation", TW_TYPE_QUAT4F, &g_SceneRot, " group='Scene' label='rotation' open help='Toggle scene orientation.' "); }
void SSAO::BuildUI() { TwInit(TW_DIRECT3D11, _device); TwWindowSize(_screenWidth, _screenHeight); _bar = TwNewBar("AmbientOcclusion"); TwDefine(" GLOBAL help='This example shows how to integrate AntTweakBar into a DirectX11 application.' "); // Message added to the help bar. int barSize[2] = {300, 375}; TwSetParam(_bar, NULL, "size", TW_PARAM_INT32, 2, barSize); TwAddVarCB(_bar, "Rad", TW_TYPE_FLOAT, SSAO::SetRad, SSAO::GetRad, this, "group=ShaderParams min=0 max=20 step=0.001 keyincr=+ keydecr=-"); TwAddVarCB(_bar, "TotalStr", TW_TYPE_FLOAT, SSAO::SetTotStr, SSAO::GetTotStr, this, "group=ShaderParams min=0 max=50 step=0.1 keyincr=+ keydecr=-"); TwAddVarCB(_bar, "Strength", TW_TYPE_FLOAT, SSAO::SetStrength, SSAO::GetStrength, this, "group=ShaderParams min=0.1 max=100 step=0.1 keyincr=+ keydecr=-"); TwAddVarCB(_bar, "Offset", TW_TYPE_FLOAT, SSAO::SetOffset, SSAO::GetOffset, this, "group=ShaderParams min=0 max=100 step=0.5 keyincr=+ keydecr=-"); TwAddVarCB(_bar, "Falloff", TW_TYPE_FLOAT, SSAO::SetFalloff, SSAO::GetFalloff, this, "group=ShaderParams min=0 max=0.01 step=0.00001 keyincr=+ keydecr=-"); TwAddVarCB(_bar, "BlurSize", TW_TYPE_FLOAT, SSAO::SetBlur, SSAO::GetBlur, this, "group=ShaderParams min=1 max=16 step=1 keyincr=+ keydecr=-"); TwAddButton(_bar, "Reset", SSAO::ResetButton, this, ""); TwAddButton(_bar, "ShowDebug", SSAO::ShowDebug, this, ""); TwEnumVal* a = new TwEnumVal[3]; a[0].Value = 0; a[0].Label = "buddha"; a[1].Value = 1; a[1].Label = "hairball"; a[2].Value = 2; a[2].Label = "sib"; _index = 0; TwType actMesh = TwDefineEnum("mesh", a, 3); TwAddVarCB(_bar, "ActiveVol", actMesh, SSAO::SetMesh, SSAO::GetMesh, this, " group='Mesh' keyIncr=Backspace keyDecr=SHIFT+Backspace help='Stop or change the rotation mode.' "); }
void DemoWindow::initTWBar() { glutCreateMenu(NULL); // Initialize AntTweakBar TwInit(TW_OPENGL, NULL); //// Set GLUT event callbacks // // - Directly redirect GLUT mouse button events to AntTweakBar // glutMouseFunc((GLUTmousebuttonfun)TwEventMouseButtonGLUT); // // - Directly redirect GLUT mouse motion events to AntTweakBar // glutMotionFunc((GLUTmousemotionfun)TwEventMouseMotionGLUT); // // - Directly redirect GLUT mouse "passive" motion events to AntTweakBar (same as MouseMotion) // glutPassiveMotionFunc((GLUTmousemotionfun)TwEventMouseMotionGLUT); // // - Directly redirect GLUT key events to AntTweakBar // glutKeyboardFunc((GLUTkeyboardfun)TwEventKeyboardGLUT); // // - Directly redirect GLUT special key events to AntTweakBar // glutSpecialFunc((GLUTspecialfun)TwEventSpecialGLUT); // - Send 'glutGetModifers' function pointer to AntTweakBar; // required because the GLUT key event functions do not report key modifiers states. TwGLUTModifiersFunc(glutGetModifiers); bar = TwNewBar("TweakBar"); TwWindowSize(100, 100); TwDefine(" GLOBAL help='This example shows how to integrate AntTweakBar with GLUT and OpenGL.' "); // Message added to the help bar. TwDefine(" TweakBar size='200 400' color='96 216 224' "); // change default tweak bar size and color }
ModelLightingClass::ModelLightingClass(string barName, bool p_quad, const XMFLOAT3 & postion):Entity(), Position(postion), Rotation(0.0f, 0.0f, 0.0f), Scale(1.0f, 1.0f, 1.0f), Quaternion(XMQuaternionIdentity()) { m_vertexBuffer = 0; m_indexBuffer = 0; m_model = 0; m_bar = TwNewBar(barName.c_str()); string define = barName + " iconified=true alpha=200"; string group = barName + "/Rotation opened = false"; TwDefine(define.c_str()); TwAddVarRW(m_bar, "XRotation", TW_TYPE_FLOAT, &Rotation.x, " step=0.01 group=Rotation"); TwAddVarRW(m_bar, "YRotation", TW_TYPE_FLOAT, &Rotation.y, " step=0.01 group=Rotation"); TwAddVarRW(m_bar, "ZRotation", TW_TYPE_FLOAT, &Rotation.z, "min=0 max=6.28 step=0.01 group=Rotation"); TwDefine(group.c_str()); TwAddVarRW(m_bar, "XPosition", TW_TYPE_FLOAT, &Position.x, " step=0.1 group=Position"); TwAddVarRW(m_bar, "YPosition", TW_TYPE_FLOAT, &Position.y, " step=0.1 group=Position"); TwAddVarRW(m_bar, "ZPosition", TW_TYPE_FLOAT, &Position.z, " step=0.1 group=Position"); group = barName + "/Position opened = false"; TwDefine(group.c_str()); TwAddVarRW(m_bar, "XScale", TW_TYPE_FLOAT, &Scale.x, " step=0.01 group=Scale"); TwAddVarRW(m_bar, "YScale", TW_TYPE_FLOAT, &Scale.y, " step=0.01 group=Scale"); TwAddVarRW(m_bar, "ZScale", TW_TYPE_FLOAT, &Scale.z, " step=0.01 group=Scale"); group = barName + "/Scale opened = false"; TwDefine(group.c_str()); }
void RotationsViewer::initializeGui() { glutPassiveMotionFunc((GLUTmousemotionfun)TwEventMouseMotionGLUT); TwGLUTModifiersFunc(glutGetModifiers); TwInit(TW_OPENGL, NULL); TwWindowSize(mWindowWidth, mWindowHeight); TwCopyStdStringToClientFunc(onCopyStdStringToClient); mDemoBar = TwNewBar("Demo controls"); TwDefine(" 'Demo controls' size='200 175' position='5 5' iconified=false fontresizable=false alpha=200"); TwEnumVal modeTypeEV[] = { { DEMO1, "Convert" }, { DEMO2, "Curve" } }; modeType = TwDefineEnum("ModeType", modeTypeEV, 2); TwAddVarRW(mDemoBar, "Demo", modeType, &mMode, NULL); TwAddVarRW(mDemoBar, "X Angle", TW_TYPE_DOUBLE, &mXAngle, " group='Convert params' "); TwAddVarRW(mDemoBar, "Y Angle", TW_TYPE_DOUBLE, &mYAngle, " group='Convert params' "); TwAddVarRW(mDemoBar, "Z Angle", TW_TYPE_DOUBLE, &mZAngle, " group='Convert params' "); TwEnumVal rooTypeEV[] = { { XYZ, "XYZ" }, { XZY, "XZY" }, { YXZ, "YXZ" }, { YZX, "YZX" }, { ZXY, "ZXY" }, { ZYX, "ZYX" } }; rooType = TwDefineEnum("RooType", rooTypeEV, 6); TwAddVarRW(mDemoBar, "Rot Order", rooType, &mRotOrder, " group='Convert params' "); TwEnumVal splineTypeEV[] = { { ASplineQuat::LINEAR, "Linear" }, { ASplineQuat::CUBIC, "Cubic" } }; splineType = TwDefineEnum("SplineType", splineTypeEV, 2); TwAddVarCB(mDemoBar, "Spline type", splineType, onSetStyleCb, onGetStyleCb, this, " group='Curve params'"); }
/** Initializes GUI - only AntweakBar menu creation */ void initGUI() { // Initialize AntTweakBar GUI if (!TwInit(TW_OPENGL, NULL)) { assert(0); } TwWindowSize(g_WindowWidth, g_WindowHeight); TwBar *controlBar = TwNewBar("Controls"); TwDefine("Controls position='10 10' size='200 300' refresh=0.1 color='130 140 150'"); TwAddVarCB(controlBar, "gpu", TW_TYPE_BOOLCPP, cbSetGPUUsage, cbGetGPUUsage, NULL, " group='CUDA' label='Compute on:' true='GPU' false='CPU' "); //TwAddVarRW(controlBar, "restart", TW_TYPE_BOOLCPP, &g_initData, " group='PROGRAM' label='Restart: ' true='' false='restart' "); TwAddVarRW(controlBar, "melt", TW_TYPE_BOOLCPP, &g_melt, " group='Render' label='Melt' key=m help='Start melting' "); TwAddVarRW(controlBar, "wiremode", TW_TYPE_BOOLCPP, &g_WireMode, " group='Render' label='Wire mode' key=w help='Toggle wire mode.' "); TwAddVarRW(controlBar, "march", TW_TYPE_BOOLCPP, &g_useMarchingCubes, " group='Render' label='March. Cubes' help='Toggle marching cubes.' "); TwAddVarRW(controlBar, "auto-rotation", TW_TYPE_BOOLCPP, &g_SceneRotEnabled, " group='Scene' label='rotation' key=r help='Toggle scene rotation.' "); TwAddVarRW(controlBar, "Translate", TW_TYPE_FLOAT, &g_SceneTraZ, " group='Scene' label='translate' min=1 max=1000 step=10 keyIncr=t keyDecr=T help='Scene translation.' "); TwAddVarRW(controlBar, "SceneRotation", TW_TYPE_QUAT4F, &g_SceneRot, " group='Scene' label='rotation' open help='Toggle scene orientation.' "); TwAddVarRO(controlBar, "fps", TW_TYPE_FLOAT, &g_fps, " group='INFO' label='Current fps' "); TwAddVarRO(controlBar, "ice", TW_TYPE_FLOAT, &g_iceParticles, " group='INFO' label='Ice particles' "); }
void BasicTriangleScene::init(GLFWwindow* window) { Scene::init(window); tweakBar = TwNewBar("settings"); vertexBuffer = new Buffer(3); colorBuffer = new Buffer(3); vertexBuffer->addVertexAttribPointer(0,3,0); colorBuffer->addVertexAttribPointer(1,3,0); vertexBuffer->addData(vertices,sizeof(vertices) / sizeof(GLfloat)); colorBuffer->addData(colors,sizeof(colors) / sizeof(GLfloat)); shader = new Shader(PathFind::getAsset("shd/triangle.vert"), PathFind::getAsset("shd/triangle.frag")); shader->bind(); glGenVertexArrays(1,&VAO); glBindVertexArray(VAO); vertexBuffer->init(); colorBuffer->init(); glBindVertexArray(0); TwAddVarRW(tweakBar, "Background Color", TW_TYPE_COLOR3F, &bgcolor, " label='Background Color' "); glfwSetMouseButtonCallback(window, (GLFWmousebuttonfun)TwEventMouseButtonGLFW3); glfwSetKeyCallback(window, (GLFWkeyfun)TwEventKeyGLFW3); glfwSetCharModsCallback(window, (GLFWcharmodsfun) TwEventCharModsGLFW3); glfwSetCursorPosCallback(window,(GLFWcursorposfun)TwEventCursorPosGLFW3); glfwSetScrollCallback(window,(GLFWscrollfun)TwEventScrollGLFW3); }
Gui::Gui(Scene& scene, Game& game, Camera& camera, Input& input, Timer& timer) : m_game(game), m_camera(camera), m_scene(scene), m_timer(timer) { TwInit(TW_OPENGL_CORE, nullptr); TwWindowSize(WINDOW_WIDTH, WINDOW_HEIGHT); const std::string barname = "GraphicsTweaker"; m_tweakbar = TwNewBar(barname.c_str()); m_tweaker = std::make_unique<Tweaker>(m_tweakbar); const int border = 10; std::ostringstream stream; stream << barname << " label='Graphics Tweaker' " << "position='" << border << " " << border << "' " << "size='250 " << WINDOW_HEIGHT-border*2 << "' " << "alpha=180 text=light valueswidth=80 color='0 0 0' " << "refresh=0.05 iconified=false resizable=true " << "fontsize=2 fontresizable=false "; TwDefine(stream.str().c_str()); FillTweakBar(); auto AddKeyCallback = [&input](unsigned int key, unsigned int code) { input.AddCallback(key, false, [code]() { TwKeyPressed(code, 0); }); }; // Keys required for modifying entries in the tweak bar AddKeyCallback(GLFW_KEY_0, '0'); AddKeyCallback(GLFW_KEY_1, '1'); AddKeyCallback(GLFW_KEY_2, '2'); AddKeyCallback(GLFW_KEY_3, '3'); AddKeyCallback(GLFW_KEY_4, '4'); AddKeyCallback(GLFW_KEY_5, '5'); AddKeyCallback(GLFW_KEY_6, '6'); AddKeyCallback(GLFW_KEY_7, '7'); AddKeyCallback(GLFW_KEY_8, '8'); AddKeyCallback(GLFW_KEY_9, '9'); AddKeyCallback(GLFW_KEY_PERIOD, '.'); AddKeyCallback(GLFW_KEY_MINUS, '-'); AddKeyCallback(GLFW_KEY_ENTER, TW_KEY_RETURN); AddKeyCallback(GLFW_KEY_LEFT, TW_KEY_LEFT); AddKeyCallback(GLFW_KEY_RIGHT, TW_KEY_RIGHT); AddKeyCallback(GLFW_KEY_TAB, TW_KEY_TAB); AddKeyCallback(GLFW_KEY_END, TW_KEY_END); AddKeyCallback(GLFW_KEY_HOME, TW_KEY_HOME); AddKeyCallback(GLFW_KEY_BACKSPACE, TW_KEY_BACKSPACE); LogInfo("GUI: Tweak bar initialised"); }
// Callback function to create a bar with a given title void TW_CALL CreateBarCB(void *clientData) { const std::string *title = (const std::string *)(clientData); // Create a unique bar name int barIndex = (int)g_BarTitles.size(); std::stringstream name; name << "bar_" << barIndex; g_BarTitles.push_back(*title); // Create bar TwBar *bar = TwNewBar(name.str().c_str()); TwAddButton(bar, "Info", NULL, NULL, " label='std::string variable:' "); // Set bar label (ie. the title) std::stringstream def; def << name.str() << " label=`" << *title << "` "; TwDefine(def.str().c_str()); // Cast barNum as void* to use it as clientData // (doing so it could be directly sent through the get/set callbacks) void *barIndexAsVoidPtr = *(void **)&barIndex; // Add a std::string variable to the bar to edit its title, // The variable will be accessed through callbacks TwAddVarCB(bar, "EditTitle", TW_TYPE_STDSTRING, SetBarTitleCB, GetBarTitleCB, barIndexAsVoidPtr, " label='Edit bar title' help='Edit this string to change the tweak bar title.' "); }
//---------------CPU Functions---------------// void initTweakMenu() { if(!TwInit(TW_OPENGL, NULL)) { fprintf(stderr, "AntTwekBar fails to initialize! Info: %s\n", TwGetLastError()); exit(0); } bar = TwNewBar("Scene Parameters"); //Camera attributes TwAddVarRW(bar, "View Direction", TW_TYPE_DIR3F, &viewdir, "group = 'Camera Attribute'"); TwAddVarRW(bar, "Move Speed", TW_TYPE_UINT8, &movespeed, " min = 0 max = 25 step = 1 group = 'Camera Attribute' "); TwAddVarRW(bar, "Position x", TW_TYPE_FLOAT, &camera.getPosition().x, " min = -100 max = 100 step = 0.01 group = 'Camera Attribute' "); TwAddVarRW(bar, "Position y", TW_TYPE_FLOAT, &camera.getPosition().y, " min = -100 max = 100 step = 0.01 group = 'Camera Attribute' "); TwAddVarRW(bar, "Position z", TW_TYPE_FLOAT, &camera.getPosition().z, " min = -100 max = 100 step = 0.01 group = 'Camera Attribute' "); TwAddVarRW(bar, "Aperture", TW_TYPE_FLOAT, &aperture, " min = 0.001 max = 10 step = 0.001 group = 'Camera Attribute' "); TwAddVarRW(bar, "Focal", TW_TYPE_FLOAT, &focal, " min = 0.0001 max = 0.9999 step = 0.0001 group = 'Camera Attribute' "); /*//Light attributes TwAddVarRW(bar, "position x", TW_TYPE_FLOAT, &light.getPosition().x, " min = -100 max = 100 step = 0.01 group = 'Light Attribute' "); TwAddVarRW(bar, "position y", TW_TYPE_FLOAT, &light.getPosition().y, " min = -100 max = 100 step = 0.01 group = 'Light Attribute' "); TwAddVarRW(bar, "position z", TW_TYPE_FLOAT, &light.getPosition().z, " min = -100 max = 100 step = 0.01 group = 'Light Attribute' "); //Light color TwAddVarRW(bar, "Color", TW_TYPE_COLOR3F, &light.getColor(), "group = 'Light Attribute'");//*/ }
fractal_t::fractal_t() : pos_(0.5, 0), scale_factor_(1) { #ifdef USE_CORE_OPENGL TwInit(TW_OPENGL_CORE, NULL); #else TwInit(TW_OPENGL, NULL); #endif // Определение "контролов" GUI TwBar *bar = TwNewBar("Parameters"); TwDefine(" Parameters size='300 50' color='70 100 120' valueswidth=220 iconpos=topleft"); TwAddButton(bar, "Fullscreen toggle", toggle_fullscreen_callback, NULL, " label='Toggle fullscreen mode' key=f"); // Создание шейдеров vs_ = create_shader(GL_VERTEX_SHADER , "shaders//fractal.glslvs"); fs_ = create_shader(GL_FRAGMENT_SHADER, "shaders//fractal.glslfs"); // Создание программы путём линковки шейдерова program_ = create_program(vs_, fs_); // Создание буфера с вершинными данными init_buffer(); // Создание VAO init_vertex_array(); }
void CGUI::Initialize() { TwInit(TW_DIRECT3D9, g_Device); m_pGUI = TwNewBar("SA::Render"); TwAddButton(m_pGUI, "ReloadShaders", ReloadShaders, NULL, "group=Global"); }
InterfaceGl::InterfaceGl( const std::string &title, const Vec2i &size, const ColorA color ) { initAntGl(); mBar = shared_ptr<TwBar>( TwNewBar( title.c_str() ), TwDeleteBar ); char optionsStr[1024]; sprintf( optionsStr, "%s size='%d %d' color='%d %d %d' alpha=%d", title.c_str(), size.x, size.y, (int)(color.r * 255), (int)(color.g * 255), (int)(color.b * 255), (int)(color.a * 255) ); TwDefine( optionsStr ); }
void MaterialDialog::setMaterial(int pIndex) { if (m_dialog) TwDeleteBar(m_dialog); // Create a tweak bar m_dialog = TwNewBar("Material"); int barSize[2] = {200, 1060}; TwDefine(" Material position='1710 10' "); TwSetParam(m_dialog, NULL, "size", TW_PARAM_INT32, 2, barSize); m_material = Scene::GetInstance()->GetMaterial(pIndex); TwAddVarCB(m_dialog, "MaterialName", TW_TYPE_CDSTRING, SetName, GetName, (void*)this, " label='Name: '"); TwAddVarRW(m_dialog, "Ambient", TW_TYPE_COLOR3F, (void*)&m_material->ambient, " help='Light color.' group='Properties'"); TwAddVarRW(m_dialog, "Diffuse", TW_TYPE_COLOR3F, (void*)&m_material->diffuse, " help='Light color.' group='Properties'"); TwAddVarRW(m_dialog, "Specular", TW_TYPE_COLOR3F, (void*)&m_material->specular, " help='Light color.' group='Properties'"); TwAddVarRW(m_dialog, "Emissive", TW_TYPE_COLOR3F, (void*)&m_material->emissive, " help='Light color.' group='Properties'"); TwAddVarRW(m_dialog, "Opacity", TW_TYPE_FLOAT, (void*)&m_material->opacity, " help='Light color.' group='Properties' min=0.0 max=1.0 step=0.01"); TwAddVarRW(m_dialog, "Reflectivity", TW_TYPE_FLOAT, (void*)&m_material->reflectivity, " help='Light color.' group='Properties' min=0.0 max=1.0 step=0.01"); TwAddVarRW(m_dialog, "Shininess", TW_TYPE_FLOAT, (void*)&m_material->shininess, " help='Light color.' group='Properties' min=0.0 max=100.0 step=1.0"); TwAddVarRW(m_dialog, "Texture Scale", TW_TYPE_FLOAT, (void*)&m_material->textureScale, " help='Light color.' group='Properties' min=0.0 max=10.0 step=0.01"); TwAddButton(m_dialog, "Load Diffuse Texture", LoadDiffuse, this, " label='Diffuse Texture' key=c help='Load an Agile file into the editor.' group='Load'"); TwAddButton(m_dialog, "Load Specular Texture", LoadSpecular, this, " label='Specular Texture' key=c help='Load an Agile file into the editor.' group='Load'"); TwAddButton(m_dialog, "Load Glow Texture", LoadGlow, this, " label='Glow Texture' key=c help='Load an Agile file into the editor.' group='Load'"); TwAddButton(m_dialog, "Load Normal Texture", LoadNormal, this, " label='Normal Texture' key=c help='Load an Agile file into the editor.' group='Load'"); TwAddButton(m_dialog, "Load Displacement Texture", LoadDisplacement, this, " label='Displacement Texture' key=c help='Load an Agile file into the editor.' group='Load'"); TwAddButton(m_dialog, "Load Gradient Texture", LoadGradient, this, " label='Gradient Texture' key=c help='Load an Agile file into the editor.' group='Load'"); TwStructMember tessMembers[] = { { "Edge1", TW_TYPE_FLOAT, offsetof(AglVector4, x), " Step=0.1 min=1.0 max=64.0" }, { "Edge2", TW_TYPE_FLOAT, offsetof(AglVector4, y), " Step=0.1 min=1.0 max=64.0" }, { "Edge3", TW_TYPE_FLOAT, offsetof(AglVector4, z), " Step=0.1 min=1.0 max=64.0" }, { "Internal", TW_TYPE_FLOAT, offsetof(AglVector4, w), " Step=0.1 min=1.0 max=64.0" }}; TwType tessType = TwDefineStruct("TESSELATIONFACTORS", tessMembers, 4, sizeof(AglVector4), NULL, NULL); TwAddVarRW(m_dialog, "Tess", tessType, &m_material->tesselationFactor, " group='Properties' "); TwAddVarRW(m_dialog, "Displacement", TW_TYPE_FLOAT, (void*)&m_material->displacement, " group='Properties' min=0.0 max=10.0 step=0.01"); TwAddButton(m_dialog, "Add Layer", AddLayer, this, " label='Add Layer' key=c help='Load an Agile file into the editor.' group='Gradient Mapping'"); TwAddButton(m_dialog, "Delete", Delete, this, ""); if (m_material->gradientDataIndex >= 0) { AglGradient* g = Scene::GetInstance()->GetGradient(m_material->gradientDataIndex); vector<AglGradientMaterial*> layers = g->getLayers(); for (unsigned int i = 0; i < layers.size(); i++) { AddLayer(g, layers[i], i); } } show(); }
void CompleteBoxPruningTest::Select() { // Create a tweak bar { mBar = TwNewBar("OPC_CompleteBoxPruning"); TwAddVarRW(mBar, "Speed", TW_TYPE_FLOAT, &mSpeed, " min=0.0 max=0.01 step=0.00001"); TwAddVarRW(mBar, "Amplitude", TW_TYPE_FLOAT, &mAmplitude, " min=10.0 max=200.0 step=0.1"); } }
/** Returns the bar of the given name. Creates one if not present */ TwBar* RTweakBar::GetBarByName(const char* name) { if(BarMap[std::string(name)]) return BarMap[std::string(name)]; BarMap[std::string(name)] = TwNewBar(name); return BarMap[std::string(name)]; }
static void setupAntTweakBar() { g_bar = TwNewBar("TweakBar"); TwDefine(" TweakBar size='320 640' "); // resize bar TwDefine(" GLOBAL help='Simulation control.' "); // Message added to the help bar. /*TwAddVarRW(g_bar, "TD", TW_TYPE_FLOAT, &var_TIME_DELTA, " label='Time delta' precision=5 min=0 max=1 step=0.01 ");*/ TwAddVarRW(g_bar, "FPS", TW_TYPE_DOUBLE, &g_twVar.info_fps, " group=INFO label='Frame rate:' precision=1 "); TwAddSeparator(g_bar, "SEP0", 0); /*TwAddVarRW(g_bar, "ANIMATION_SPEED", TW_TYPE_FLOAT, &var_ANIMATION_SPEED, " group=ANIMATION label='Speed' precision=1 min=0 max=10 step=0.1 ");*/ TwAddVarRW(g_bar, "GRAVITY", TW_TYPE_FLOAT, &g_twVar.sim_gravity, " group=SIMULATION label='Gravity' precision=10 min=-1 max=1 step=0.0001 "); TwAddVarRW(g_bar, "SIMULATE", TW_TYPE_BOOL8, &g_twVar.sim_enable, " group=SIMULATION label='Run simulation' "); TwAddButton(g_bar, "SIMULATION_STEP", [](void*) { g_twVar.sim_step = true; }, NULL, " group=SIMULATION label='Step simulation' key=N "); TwAddButton(g_bar, "SIMULATION_RESET", [](void*) { g_ball->reset(false); s_model->resetAnimation(); }, NULL, " group=SIMULATION label='Reset' "); TwAddSeparator(g_bar, "SEP1", 0); TwAddVarRW(g_bar, "BLEND_VERT_STIFF", TW_TYPE_BOOL8, &g_twVar.blend_useWeights, " group=BLEND label='Use skin weights' "); TwAddVarRW(g_bar, "BLEND_STIFF_MULT", TW_TYPE_FLOAT, &g_twVar.blend_multiplier, " group=BLEND label='Multiplier' precision=4 min=0 max=1 step=0.0001 "); TwAddVarRW(g_bar, "BLEND_CONST_STIFF", TW_TYPE_FLOAT, &g_twVar.constraint_stiffness, " group=BLEND label='Stiffness k' precision=4 min=0 max=1 step=0.0001 "); TwAddSeparator(g_bar, "SEP2", 0); TwAddVarRW(g_bar, "RENDER_FILL", TW_TYPE_BOOL8, &g_twVar.render_fill, " group=RENDER label='Fill' "); TwAddVarRW(g_bar, "RENDER_WIREFRAME", TW_TYPE_BOOL8, &g_twVar.render_wireframe, " group=RENDER label='Wireframe' "); TwAddVarRW(g_bar, "RENDER_DISTMAG", TW_TYPE_BOOL8, &g_twVar.render_distMag, " group=RENDER label='Distortion magnitude' "); TwAddVarRW(g_bar, "rec_record", TW_TYPE_BOOL8, ffmpegRec(), " group=RECORD label='Record' "); TwAddSeparator(g_bar, "SEP3", 0); TwAddButton(g_bar, "BALL_RESET", [](void*) { g_ball->reset(); }, NULL, " label='Throw ball' "); }
void GLFW_App::create_tweakbar_from_component(const Component::Ptr &the_component) { if(!the_component) return; m_tweakBars.push_back(TwNewBar(the_component->getName().c_str())); setBarColor(glm::vec4(0, 0, 0, .5), m_tweakBars.back()); setBarSize(glm::ivec2(250, 500)); glm::ivec2 offset(10); setBarPosition(glm::ivec2(offset.x + 260 * (m_tweakBars.size() - 1), offset.y), m_tweakBars.back()); addPropertyListToTweakBar(the_component->getPropertyList(), "", m_tweakBars.back()); }
void CreateBar() { TwBar *waspskeletonBar = TwNewBar("WaspSkeletonBar"); TwDefine(" GLOBAL help='This is to rotate a single bone.' "); TwDefine(" WaspSkeletonBar size='200 400' color='96 216 224' "); CreateBarLabels(waspskeletonBar, skeletonWasp); }
void CubeGui::v_init(int sw, int sh) { TwInit(TW_OPENGL_CORE, NULL); TwWindowSize(sw, sh); m_pBar = TwNewBar("CubeGui"); TwDefine(" CubeGui label='CubeGui' position='1300 10' alpha=30 help='Use this bar to edit the tess.' "); //TwAddVarRW(m_pBar, "speed",); }
void Toolbar::init() { glm::ivec2 pos(4096); glm::ivec2 size(200, 1); tweakBar = TwNewBar(toolbarTitle); TwSetParam(tweakBar, nullptr, "help", TW_PARAM_CSTRING, 1, "Toggles the visibilty of other tweak bars"); TwSetParam(tweakBar, nullptr, "position", TW_PARAM_INT32, 2, &pos); TwSetParam(tweakBar, nullptr, "size", TW_PARAM_INT32, 2, &size); }
void Game::Initialise(HINSTANCE hinstance, HWND hwnd, int screenWidth, int screenHeight) { //Initialise Input m_Input = new Input; m_Input->Initialise(hinstance,hwnd,screenWidth,screenHeight); //Initialise Graphics m_Graphics = new GameRenderer; m_Graphics->Initialise(screenWidth, screenHeight, hwnd); //Initialise AntTweakBar TwInit(TW_DIRECT3D11, m_Graphics->GetDevice()); TwWindowSize(screenWidth, screenHeight); //Create the camera m_Camera = new Camera; m_Camera->SetPosition(0, 25, -75); m_Camera->SetRotation(10, 0, 0); //Create the skybox m_sky = new Skybox; m_sky->Initialise(m_Graphics->GetDevice(), hwnd); m_sky->SetPosition(XMFLOAT3(0, 0, 0)); //Create the ant tweak bar m_gameTweakBar = TwNewBar("Water Wave Simulation"); int barSize[2] = { 200, 680 }; TwSetParam(m_gameTweakBar, NULL, "size", TW_PARAM_INT32, 2, barSize); //Toggle wireframe on/off TwAddButton(m_gameTweakBar, "comment1", Callback, m_Graphics, " label='Toggle Wireframe' "); //Create the wave manager m_waveManager = new WaveManager; TwAddButton(m_gameTweakBar, "comment2", NextPreset, m_waveManager, " label='Next Preset' "); m_waveManager->Initialise(m_Graphics->GetDevice(), m_Graphics->GetDeviceContext(), m_gameTweakBar); m_waveManager->CreateWater(XMFLOAT3(-480, 0, -480), m_Graphics->GetDevice(), m_Graphics->GetDeviceContext(), hwnd); m_hwnd = hwnd; //Create terrain Mesh* terrainMesh = new Mesh; terrainMesh->Initialise(m_Graphics->GetDevice(), m_Graphics->GetDeviceContext(), "terrain.txt", "../WaveSim/Data/Textures/sand.tga"); //Use same mesh for multiple instances CreateGameobject(new GameObject, terrainMesh, XMFLOAT3(1500, -10, 2000)); CreateGameobject(new GameObject, terrainMesh, XMFLOAT3(10, -10, 1000)); CreateGameobject(new GameObject, terrainMesh, XMFLOAT3(-1000, -10, 0)); Console::Log("Terrain Initalised..."); //Create directional light CreateLight(); }
void BipartiteBoxPruningTest::Select() { // Create a tweak bar #ifdef USE_ANTTWEAKBAR { mBar = TwNewBar("BipartiteBoxPruning"); TwAddVarRW(mBar, "Speed", TW_TYPE_FLOAT, &mSpeed, " min=0.0 max=0.01 step=0.00001"); TwAddVarRW(mBar, "Amplitude", TW_TYPE_FLOAT, &mAmplitude, " min=10.0 max=200.0 step=0.1"); } #endif //USE_ANTTWEAKBAR }