/* * main * main function of the robot */ task main(){ initFlags(); initClamp(); initHitch(); startTask(task_run_drivemode); while(true){ //Check if we should drive with slow sleeds. slow_multiplier = 1.0 - (vexRT[JOY_BTN_SLOW] * SLOW_SPEED_MULTIPLIER); //Check if we should switch the drivemode checkSwitchDrivemode(); checkSwitchFlagMode(); //Call the Arm control method runArm(); //Call the Claw control method runClamp(); //Call the Hitch control method runHitch(); //Call the task handling method checkRunModeTask(); } }
int main(int argc, char *argv[]) { startCatchingSignals(); { astlocMarker markAstLoc(0, "<internal>"); initFlags(); initChplProgram(); initPrimitive(); initPrimitiveTypes(); initTheProgram(); setupOrderedGlobals(argv[0]); compute_program_name_loc(argv[0], &(arg_state.program_name), &(arg_state.program_loc)); process_args(&arg_state, argc, argv); initCompilerGlobals(); // must follow argument parsing setupDependentVars(); setupModulePaths(); recordCodeGenStrings(argc, argv); } // astlocMarker scope printStuff(argv[0]); if (rungdb) runCompilerInGDB(argc, argv); if (fdump_html || strcmp(log_flags, "")) init_logs(); compile_all(); if (fEnableTimers) { printf("timer 1: %8.3lf\n", timer1.elapsed()); printf("timer 2: %8.3lf\n", timer2.elapsed()); printf("timer 3: %8.3lf\n", timer3.elapsed()); printf("timer 4: %8.3lf\n", timer4.elapsed()); printf("timer 5: %8.3lf\n", timer5.elapsed()); } free_args(&arg_state); clean_exit(0); return 0; }
Shape::Shape(ShapeTree *tree, Shape *parent, const Value &name, const Config &config) : tree_(tree), parent_(parent), name_(name), firstChild_(nullptr), nextSibling_(nullptr) { WH_ASSERT(tree); WH_ASSERT(IsNormalizedPropertyId(name)); WH_ASSERT_IF(config.hasValue, !config.hasGetter && !config.hasSetter); WH_ASSERT_IF(!config.hasValue, !config.isWritable); uint32_t flags = 0; if (config.hasValue) flags |= HasValue; if (config.hasGetter) flags |= HasGetter; if (config.hasSetter) flags |= HasSetter; if (config.isConfigurable) flags |= IsConfigurable; if (config.isEnumerable) flags |= IsEnumerable; if (config.isWritable) flags |= IsWritable; initFlags(flags); }
// --------------------------------------------------------------------- // Constructor // // Note that imageSize_ and versionIDArray_ are only filled in at // packing time. These values are not useful on the source platform // where the objects are constructed. They are only useful at the // destination while the objects are unpacked. Before the objects are // packed, drivePack() will make sure their values are correctly set. // This arrangement avoids the dependence on the constructors of sub- // classes of NAVersionedObject on setting these values correctly. // --------------------------------------------------------------------- NA_EIDPROC NAVersionedObject::NAVersionedObject(Int16 classID) : classID_(classID), reallocatedAddress_(NULL), imageSize_(0) { clearFillers(); initFlags(); // set to state of "not packed". clearVersionIDArray(); str_cpy_all(eyeCatcher_,VOBJ_EYE_CATCHER,VOBJ_EYE_CATCHER_SIZE); }
static void initInternal() { SanitizerToolName = "Scudo"; CHECK(!ScudoInitIsRunning && "Scudo init calls itself!"); ScudoInitIsRunning = true; initFlags(); AllocatorOptions Options; Options.setFrom(getFlags(), common_flags()); initAllocator(Options); ScudoInitIsRunning = false; }
int main(int argc, char* argv[]) { PhaseTracker tracker; startCatchingSignals(); { astlocMarker markAstLoc(0, "<internal>"); tracker.StartPhase("init"); init_args(&sArgState, argv[0]); fDocs = (strcmp(sArgState.program_name, "chpldoc") == 0) ? true : false; fUseIPE = (strcmp(sArgState.program_name, "chpl-ipe") == 0) ? true : false; // Initialize the arguments for argument state. If chpldoc, use the docs // specific arguments. Otherwise, use the regular arguments. if (fDocs) { init_arg_desc(&sArgState, docs_arg_desc); } else { init_arg_desc(&sArgState, arg_desc); } initFlags(); initRootModule(); initPrimitive(); initPrimitiveTypes(); DefExpr* objectClass = defineObjectClass(); initChplProgram(objectClass); initStringLiteralModule(); process_args(&sArgState, argc, argv); setupChplGlobals(argv[0]); postprocess_args(); initCompilerGlobals(); // must follow argument parsing setupModulePaths(); recordCodeGenStrings(argc, argv); } // astlocMarker scope if (fUseIPE == false) printStuff(argv[0]); if (fRungdb) runCompilerInGDB(argc, argv); if (fRunlldb) runCompilerInLLDB(argc, argv); addSourceFiles(sArgState.nfile_arguments, sArgState.file_argument); if (fUseIPE == false) { runPasses(tracker, fDocs); } else { ipeRun(); } tracker.StartPhase("driverCleanup"); free_args(&sArgState); tracker.Stop(); if (printPasses == true || printPassesFile != NULL) { tracker.ReportPass(); tracker.ReportTotal(); tracker.ReportRollup(); } if (printPassesFile != NULL) { fclose(printPassesFile); } clean_exit(0); return 0; }
int main(int argc, char* argv[]) { PhaseTracker tracker; startCatchingSignals(); { astlocMarker markAstLoc(0, "<internal>"); tracker.StartPhase("init"); initFlags(); initChplProgram(); initPrimitive(); initPrimitiveTypes(); initTheProgram(); setupOrderedGlobals(argv[0]); compute_program_name_loc(argv[0], &(arg_state.program_name), &(arg_state.program_loc)); process_args(&arg_state, argc, argv); initCompilerGlobals(); // must follow argument parsing setupDependentVars(); setupModulePaths(); recordCodeGenStrings(argc, argv); } // astlocMarker scope printStuff(argv[0]); if (rungdb) runCompilerInGDB(argc, argv); if (runlldb) runCompilerInLLDB(argc, argv); testInputFiles(arg_state.nfile_arguments, arg_state.file_argument); if (strcmp(chplBinaryName, "chpldoc") == 0) fDocs = true; runPasses(tracker); tracker.StartPhase("driverCleanup"); if (fEnableTimers) { printf("timer 1: %8.3lf\n", timer1.elapsedSecs()); printf("timer 2: %8.3lf\n", timer2.elapsedSecs()); printf("timer 3: %8.3lf\n", timer3.elapsedSecs()); printf("timer 4: %8.3lf\n", timer4.elapsedSecs()); printf("timer 5: %8.3lf\n", timer5.elapsedSecs()); } free_args(&arg_state); tracker.Stop(); if (printPasses == true || printPassesFile != NULL) { tracker.ReportPass(); tracker.ReportTotal(); tracker.ReportRollup(); } if (printPassesFile != NULL) { fclose(printPassesFile); } clean_exit(0); return 0; }
void OvrSliderComponent::GetVerticalSliderParms( VRMenu & menu, VRMenuId_t const parentId, VRMenuId_t const rootId, Posef const & rootLocalPose, VRMenuId_t const scrubberId, VRMenuId_t const bubbleId, float const sliderFrac, Vector3f const & localSlideDelta, float const minValue, float const maxValue, float const sensitivityScale, Array< VRMenuObjectParms const* > & parms ) { Vector3f const fwd( 0.0f, 0.0f, -1.0f ); Vector3f const right( 1.0f, 0.0f, 0.0f ); Vector3f const up( 0.0f, 1.0f, 0.0f ); // would be nice to determine these sizes from the images, but we do not load // images until much later, meaning we'd need to do the positioning after creation / init. float const SLIDER_BUBBLE_WIDTH = 59.0f * VRMenuObject::DEFAULT_TEXEL_SCALE; float const SLIDER_BUBBLE_CENTER = 33.0f * VRMenuObject::DEFAULT_TEXEL_SCALE; float const SLIDER_TRACK_WIDTH = 9.0f * VRMenuObject::DEFAULT_TEXEL_SCALE; float const TRACK_OFFSET = 35.0f * VRMenuObject::DEFAULT_TEXEL_SCALE; float const vertical = true; // add parms for the root object that holds all the slider components { Array< VRMenuComponent* > comps; comps.PushBack( new OvrSliderComponent( menu, sliderFrac, localSlideDelta, minValue, maxValue, sensitivityScale, rootId, scrubberId, VRMenuId_t(), bubbleId ) ); Array< VRMenuSurfaceParms > surfParms; char const * text = "slider_root"; Vector3f scale( 1.0f ); Posef pose( rootLocalPose ); Posef textPose( Quatf(), Vector3f( 0.0f ) ); Vector3f textScale( 1.0f ); VRMenuFontParms fontParms; VRMenuObjectFlags_t objectFlags; VRMenuObjectInitFlags_t initFlags( VRMENUOBJECT_INIT_FORCE_POSITION ); VRMenuObjectParms * itemParms = new VRMenuObjectParms( VRMENU_CONTAINER, comps, surfParms, text, pose, scale, textPose, textScale, fontParms, rootId, objectFlags, initFlags ); itemParms->ParentId = parentId; parms.PushBack( itemParms ); } // add parms for the base image that underlays the whole slider { Array< VRMenuComponent* > comps; Array< VRMenuSurfaceParms > surfParms; VRMenuSurfaceParms baseParms( "base", GetSliderImage( SLIDER_IMAGE_BASE, vertical ), SURFACE_TEXTURE_DIFFUSE, NULL, SURFACE_TEXTURE_MAX, NULL, SURFACE_TEXTURE_MAX ); surfParms.PushBack( baseParms ); char const * text = "base"; Vector3f scale( 1.0f ); Posef pose( Quatf(), Vector3f() + fwd * 0.1f ); Posef textPose( Quatf(), Vector3f( 0.0f ) ); Vector3f textScale( 1.0f ); VRMenuFontParms fontParms; VRMenuObjectFlags_t objectFlags( VRMENUOBJECT_DONT_RENDER_TEXT ); VRMenuObjectInitFlags_t initFlags( VRMENUOBJECT_INIT_FORCE_POSITION ); VRMenuObjectParms * itemParms = new VRMenuObjectParms( VRMENU_BUTTON, comps, surfParms, text, pose, scale, textPose, textScale, fontParms, VRMenuId_t(), objectFlags, initFlags ); itemParms->ParentId = rootId; parms.PushBack( itemParms ); } // add parms for the track image { Array< VRMenuComponent* > comps; Array< VRMenuSurfaceParms > surfParms; VRMenuSurfaceParms baseParms( "track", GetSliderImage( SLIDER_IMAGE_TRACK, vertical ), SURFACE_TEXTURE_DIFFUSE, NULL, SURFACE_TEXTURE_MAX, NULL, SURFACE_TEXTURE_MAX ); surfParms.PushBack( baseParms ); char const * text = "track"; Vector3f scale( 1.0f ); Posef pose( Quatf(), up * TRACK_OFFSET + fwd * 0.09f ); Posef textPose( Quatf(), Vector3f( 0.0f ) ); Vector3f textScale( 1.0f ); VRMenuFontParms fontParms; VRMenuObjectFlags_t objectFlags( VRMENUOBJECT_DONT_RENDER_TEXT ); VRMenuObjectInitFlags_t initFlags( VRMENUOBJECT_INIT_FORCE_POSITION ); VRMenuObjectParms * itemParms = new VRMenuObjectParms( VRMENU_BUTTON, comps, surfParms, text, pose, scale, textPose, textScale, fontParms, VRMenuId_t(), objectFlags, initFlags ); itemParms->ParentId = rootId; parms.PushBack( itemParms ); } // add parms for the filled track image { Array< VRMenuComponent* > comps; Array< VRMenuSurfaceParms > surfParms; VRMenuSurfaceParms baseParms( "track_full", GetSliderImage( SLIDER_IMAGE_TRACK_FULL, vertical ), SURFACE_TEXTURE_DIFFUSE, NULL, SURFACE_TEXTURE_MAX, NULL, SURFACE_TEXTURE_MAX ); surfParms.PushBack( baseParms ); char const * text = "track_full"; Vector3f scale( 1.0f ); Posef pose( Quatf(), up * TRACK_OFFSET + fwd * 0.08f ); Posef textPose( Quatf(), Vector3f( 0.0f ) ); Vector3f textScale( 1.0f ); VRMenuFontParms fontParms; VRMenuObjectFlags_t objectFlags( VRMENUOBJECT_DONT_RENDER_TEXT ); VRMenuObjectInitFlags_t initFlags( VRMENUOBJECT_INIT_FORCE_POSITION ); VRMenuObjectParms * itemParms = new VRMenuObjectParms( VRMENU_BUTTON, comps, surfParms, text, pose, scale, textPose, textScale, fontParms, VRMenuId_t(), objectFlags, initFlags ); itemParms->ParentId = rootId; parms.PushBack( itemParms ); } // add parms for the scrubber { Array< VRMenuComponent* > comps; Array< VRMenuSurfaceParms > surfParms; VRMenuSurfaceParms baseParms( "scrubber", GetSliderImage( SLIDER_IMAGE_SCRUBBER, vertical ), SURFACE_TEXTURE_DIFFUSE, NULL, SURFACE_TEXTURE_MAX, NULL, SURFACE_TEXTURE_MAX ); surfParms.PushBack( baseParms ); char const * text = "scrubber"; Vector3f scale( 1.0f ); Posef pose( Quatf(), up * TRACK_OFFSET + fwd * 0.07f ); Posef textPose( Quatf(), Vector3f( 0.0f ) ); Vector3f textScale( 1.0f ); VRMenuFontParms fontParms; VRMenuObjectFlags_t objectFlags( VRMENUOBJECT_DONT_RENDER_TEXT ); VRMenuObjectInitFlags_t initFlags( VRMENUOBJECT_INIT_FORCE_POSITION ); VRMenuObjectParms * itemParms = new VRMenuObjectParms( VRMENU_BUTTON, comps, surfParms, text, pose, scale, textPose, textScale, fontParms, scrubberId, objectFlags, initFlags ); itemParms->ParentId = rootId; parms.PushBack( itemParms ); } // add parms for the bubble { Array< VRMenuComponent* > comps; Array< VRMenuSurfaceParms > surfParms; VRMenuSurfaceParms baseParms( "bubble", GetSliderImage( SLIDER_IMAGE_BUBBLE, vertical ), SURFACE_TEXTURE_DIFFUSE, NULL, SURFACE_TEXTURE_MAX, NULL, SURFACE_TEXTURE_MAX ); surfParms.PushBack( baseParms ); char const * text = NULL; Vector3f scale( 1.0f ); Posef pose( Quatf(), right * ( SLIDER_TRACK_WIDTH + SLIDER_BUBBLE_CENTER ) + fwd * 0.06f ); const float bubbleTextScale = 0.66f; const float bubbleTextCenterOffset = SLIDER_BUBBLE_CENTER - ( SLIDER_BUBBLE_WIDTH * 0.5f ); const Vector3f textPosition = right * bubbleTextCenterOffset; Posef textPose( Quatf(), textPosition ); Vector3f textScale( 1.0f ); VRMenuFontParms fontParms( true, true, false, false, true, bubbleTextScale ); VRMenuObjectFlags_t objectFlags; VRMenuObjectInitFlags_t initFlags( VRMENUOBJECT_INIT_FORCE_POSITION ); VRMenuObjectParms * itemParms = new VRMenuObjectParms( VRMENU_BUTTON, comps, surfParms, text, pose, scale, textPose, textScale, fontParms, bubbleId, objectFlags, initFlags ); itemParms->ParentId = scrubberId; parms.PushBack( itemParms ); } }
void OvrScrollBarComponent::GetScrollBarParms( VRMenu & menu, float scrollBarLength, const VRMenuId_t parentId, const VRMenuId_t rootId, const VRMenuId_t xformId, const VRMenuId_t baseId, const VRMenuId_t thumbId, const Posef & rootLocalPose, const Posef & xformPose, const int startElementIndex, const int numElements, const bool verticalBar, const Vector4f & thumbBorder, Array< const VRMenuObjectParms* > & parms ) { // Build up the scrollbar parms OvrScrollBarComponent * scrollComponent = new OvrScrollBarComponent( rootId, baseId, thumbId, startElementIndex, numElements ); scrollComponent->SetIsVertical( verticalBar ); // parms for the root object that holds all the scrollbar components { Array< VRMenuComponent* > comps; comps.PushBack( scrollComponent ); Array< VRMenuSurfaceParms > surfParms; char const * text = "scrollBarRoot"; Vector3f scale( 1.0f ); Posef pose( rootLocalPose ); Posef textPose( Quatf(), Vector3f( 0.0f ) ); Vector3f textScale( 1.0f ); VRMenuFontParms fontParms; VRMenuObjectFlags_t objectFlags( VRMENUOBJECT_DONT_HIT_ALL ); objectFlags |= VRMENUOBJECT_DONT_RENDER_TEXT; VRMenuObjectInitFlags_t initFlags( VRMENUOBJECT_INIT_FORCE_POSITION ); VRMenuObjectParms * itemParms = new VRMenuObjectParms( VRMENU_CONTAINER, comps, surfParms, text, pose, scale, textPose, textScale, fontParms, rootId, objectFlags, initFlags ); itemParms->ParentId = parentId; parms.PushBack( itemParms ); } // add parms for the object that serves as a transform { Array< VRMenuComponent* > comps; Array< VRMenuSurfaceParms > surfParms; char const * text = "scrollBarTransform"; Vector3f scale( 1.0f ); Posef pose( xformPose ); Posef textPose( Quatf(), Vector3f( 0.0f ) ); Vector3f textScale( 1.0f ); VRMenuFontParms fontParms; VRMenuObjectFlags_t objectFlags( VRMENUOBJECT_DONT_HIT_ALL ); objectFlags |= VRMENUOBJECT_DONT_RENDER_TEXT; VRMenuObjectInitFlags_t initFlags( VRMENUOBJECT_INIT_FORCE_POSITION ); VRMenuObjectParms * itemParms = new VRMenuObjectParms( VRMENU_CONTAINER, comps, surfParms, text, pose, scale, textPose, textScale, fontParms, xformId, objectFlags, initFlags ); itemParms->ParentId = rootId; parms.PushBack( itemParms ); } // add parms for the base image that underlays the whole scrollbar { int sbWidth, sbHeight = 0; GLuint sbTexture = OVR::LoadTextureFromApplicationPackage( GetImage( SCROLLBAR_IMAGE_BASE, verticalBar ).ToCStr(), TextureFlags_t( TEXTUREFLAG_NO_DEFAULT ), sbWidth, sbHeight ); if ( verticalBar ) { scrollComponent->SetScrollBarBaseWidth( static_cast<float>( sbWidth ) ); scrollComponent->SetScrollBarBaseHeight( scrollBarLength ); } else { scrollComponent->SetScrollBarBaseWidth( scrollBarLength ); scrollComponent->SetScrollBarBaseHeight( static_cast<float>( sbHeight ) ); } Array< VRMenuComponent* > comps; Array< VRMenuSurfaceParms > surfParms; char const * text = "scrollBase"; VRMenuSurfaceParms baseParms( text, sbTexture, sbWidth, sbHeight, SURFACE_TEXTURE_DIFFUSE, 0, 0, 0, SURFACE_TEXTURE_MAX, 0, 0, 0, SURFACE_TEXTURE_MAX ); surfParms.PushBack( baseParms ); Vector3f scale( 1.0f ); Posef pose( Quatf(), Vector3f( 0.0f ) ); Posef textPose( Quatf(), Vector3f( 0.0f ) ); Vector3f textScale( 1.0f ); VRMenuFontParms fontParms; VRMenuObjectFlags_t objectFlags( VRMENUOBJECT_DONT_HIT_ALL ); objectFlags |= VRMENUOBJECT_DONT_RENDER_TEXT; VRMenuObjectInitFlags_t initFlags( VRMENUOBJECT_INIT_FORCE_POSITION ); VRMenuObjectParms * itemParms = new VRMenuObjectParms( VRMENU_BUTTON, comps, surfParms, text, pose, scale, textPose, textScale, fontParms, baseId, objectFlags, initFlags ); itemParms->ParentId = xformId; parms.PushBack( itemParms ); } // add parms for the thumb image of the scrollbar { int stWidth, stHeight = 0; GLuint stTexture = OVR::LoadTextureFromApplicationPackage( GetImage( SCROLLBAR_IMAGE_THUMB, verticalBar ).ToCStr(), TextureFlags_t( TEXTUREFLAG_NO_DEFAULT ), stWidth, stHeight ); scrollComponent->SetScrollBarThumbWidth( (float)( stWidth ) ); scrollComponent->SetScrollBarThumbHeight( (float)( stHeight ) ); Array< VRMenuComponent* > comps; Array< VRMenuSurfaceParms > surfParms; char const * text = "scrollThumb"; VRMenuSurfaceParms thumbParms( text, stTexture, stWidth, stHeight, SURFACE_TEXTURE_DIFFUSE, 0, 0, 0, SURFACE_TEXTURE_MAX, 0, 0, 0, SURFACE_TEXTURE_MAX ); //thumbParms.Border = thumbBorder; surfParms.PushBack( thumbParms ); Vector3f scale( 1.0f ); Posef pose( Quatf(), -FWD * THUMB_FROM_BASE_OFFSET ); // Since we use left aligned anchors on the base and thumb, we offset the root once to center the scrollbar Posef textPose( Quatf(), Vector3f( 0.0f ) ); Vector3f textScale( 1.0f ); VRMenuFontParms fontParms; VRMenuObjectFlags_t objectFlags( VRMENUOBJECT_DONT_HIT_ALL ); objectFlags |= VRMENUOBJECT_DONT_RENDER_TEXT; objectFlags |= VRMENUOBJECT_FLAG_POLYGON_OFFSET; VRMenuObjectInitFlags_t initFlags( VRMENUOBJECT_INIT_FORCE_POSITION ); VRMenuObjectParms * itemParms = new VRMenuObjectParms( VRMENU_BUTTON, comps, surfParms, text, pose, scale, textPose, textScale, fontParms, thumbId, objectFlags, initFlags ); itemParms->ParentId = xformId; parms.PushBack( itemParms ); } }
void initFlagSpawner(int *argc, const char ***argv) { initFlags(argc, argv, fignore); }
void OvrSliderComponent::GetVerticalSliderParms( VRMenu & menu, VRMenuId_t const parentId, VRMenuId_t const rootId, imageInfo_t const & iconImage, imageInfo_t const & baseImage, imageInfo_t const & trackImage, imageInfo_t const & trackFullImage, imageInfo_t const & scrubberImage, imageInfo_t const & bubbleImage, VRMenuId_t const scrubberId, VRMenuId_t const bubbleId, VRMenuId_t const fillId, float const sliderFrac, float const minValue, float const maxValue, float const sensitivityScale, Array< VRMenuObjectParms const* > & parms ) { Vector3f const fwd( 0.0f, 0.0f, -1.0f ); Vector3f const right( 1.0f, 0.0f, 0.0f ); Vector3f const up( 0.0f, 1.0f, 0.0f ); float const BASE_FWD_OFFSET = 0.033f; float const FWD_INC = 0.01f; //float TRACK_UP_OFFSET = ( baseImage.h - trackImage.h - iconImage.h ) * 0.5f; // offset track just above the button image float TRACK_UP_OFFSET = ( baseImage.h * 0.5f ) - ( trackImage.h * 0.5f + iconImage.h ); // offset track just above the button image Vector3f const localSlideDelta( MakePosition( 0.0f, trackImage.h, 0.0f ) ); bool const vertical = true; // add parms for the root object that holds all the slider components { Array< VRMenuComponent* > comps; comps.PushBack( new OvrSliderComponent( menu, sliderFrac, localSlideDelta, minValue, maxValue, sensitivityScale, rootId, scrubberId, VRMenuId_t(), bubbleId, fillId ) ); Array< VRMenuSurfaceParms > surfParms; char const * text = "slider_root"; Vector3f scale( 1.0f ); Posef pose( MakePose( Quatf(), 0.0f, ( baseImage.h * 0.5f ) - ( iconImage.h * 0.5f ), 0.0f ) ); Posef textPose( Quatf(), Vector3f( 0.0f ) ); Vector3f textScale( 1.0f ); VRMenuFontParms fontParms; VRMenuObjectFlags_t objectFlags( VRMENUOBJECT_RENDER_HIERARCHY_ORDER ); VRMenuObjectInitFlags_t initFlags( VRMENUOBJECT_INIT_FORCE_POSITION ); VRMenuObjectParms * itemParms = new VRMenuObjectParms( VRMENU_CONTAINER, comps, surfParms, text, pose, scale, textPose, textScale, fontParms, rootId, objectFlags, initFlags ); itemParms->ParentId = parentId; parms.PushBack( itemParms ); } // add parms for the base image that underlays the whole slider { Array< VRMenuComponent* > comps; Array< VRMenuSurfaceParms > surfParms; VRMenuSurfaceParms baseParms( "base", GetSliderImage( baseImage, vertical ).ToCStr(), SURFACE_TEXTURE_DIFFUSE, NULL, SURFACE_TEXTURE_MAX, NULL, SURFACE_TEXTURE_MAX ); surfParms.PushBack( baseParms ); char const * text = "base"; Vector3f scale( 1.0f ); Posef pose( MakePose( Quatf(), BASE_FWD_OFFSET, 0.0f, 0.0f ) ); Posef textPose( Quatf(), Vector3f( 0.0f ) ); Vector3f textScale( 1.0f ); VRMenuFontParms fontParms; VRMenuObjectFlags_t objectFlags( VRMENUOBJECT_DONT_RENDER_TEXT ); objectFlags |= VRMENUOBJECT_FLAG_NO_DEPTH; VRMenuObjectInitFlags_t initFlags( VRMENUOBJECT_INIT_FORCE_POSITION ); VRMenuObjectParms * itemParms = new VRMenuObjectParms( VRMENU_BUTTON, comps, surfParms, text, pose, scale, textPose, textScale, fontParms, VRMenuId_t(), objectFlags, initFlags ); itemParms->ParentId = rootId; parms.PushBack( itemParms ); } // add parms for the track image { Array< VRMenuComponent* > comps; Array< VRMenuSurfaceParms > surfParms; VRMenuSurfaceParms baseParms( "track", GetSliderImage( trackImage, vertical ).ToCStr(), SURFACE_TEXTURE_DIFFUSE, NULL, SURFACE_TEXTURE_MAX, NULL, SURFACE_TEXTURE_MAX ); surfParms.PushBack( baseParms ); char const * text = "track"; Vector3f scale( 1.0f ); Posef pose( MakePose( Quatf(), BASE_FWD_OFFSET - FWD_INC * 1, -TRACK_UP_OFFSET, 0.0f ) ); Posef textPose( Quatf(), Vector3f( 0.0f ) ); Vector3f textScale( 1.0f ); VRMenuFontParms fontParms; VRMenuObjectFlags_t objectFlags( VRMENUOBJECT_DONT_RENDER_TEXT ); VRMenuObjectInitFlags_t initFlags( VRMENUOBJECT_INIT_FORCE_POSITION ); VRMenuObjectParms * itemParms = new VRMenuObjectParms( VRMENU_BUTTON, comps, surfParms, text, pose, scale, textPose, textScale, fontParms, VRMenuId_t(), objectFlags, initFlags ); itemParms->ParentId = rootId; parms.PushBack( itemParms ); } // add parms for the filled track image { Array< VRMenuComponent* > comps; Array< VRMenuSurfaceParms > surfParms; VRMenuSurfaceParms baseParms( "track_full", GetSliderImage( trackFullImage, vertical ).ToCStr(), SURFACE_TEXTURE_DIFFUSE, NULL, SURFACE_TEXTURE_MAX, NULL, SURFACE_TEXTURE_MAX ); surfParms.PushBack( baseParms ); char const * text = "track_full"; Vector3f scale( 1.0f ); Posef pose( MakePose( Quatf(), BASE_FWD_OFFSET - FWD_INC * 2, -TRACK_UP_OFFSET, 0.0f ) ); Posef textPose( Quatf(), Vector3f( 0.0f ) ); Vector3f textScale( 1.0f ); VRMenuFontParms fontParms; VRMenuObjectFlags_t objectFlags( VRMENUOBJECT_DONT_RENDER_TEXT ); VRMenuObjectInitFlags_t initFlags( VRMENUOBJECT_INIT_FORCE_POSITION ); VRMenuObjectParms * itemParms = new VRMenuObjectParms( VRMENU_BUTTON, comps, surfParms, text, pose, scale, textPose, textScale, fontParms, fillId, objectFlags, initFlags ); itemParms->ParentId = rootId; parms.PushBack( itemParms ); } // add parms for the scrubber { Array< VRMenuComponent* > comps; Array< VRMenuSurfaceParms > surfParms; VRMenuSurfaceParms baseParms( "scrubber", GetSliderImage( scrubberImage, vertical ).ToCStr(), SURFACE_TEXTURE_DIFFUSE, NULL, SURFACE_TEXTURE_MAX, NULL, SURFACE_TEXTURE_MAX ); surfParms.PushBack( baseParms ); char const * text = "scrubber"; Vector3f scale( 1.0f ); Posef pose( MakePose( Quatf(), BASE_FWD_OFFSET - FWD_INC * 3, -TRACK_UP_OFFSET, 0.0f ) ); Posef textPose( Quatf(), Vector3f( 0.0f ) ); Vector3f textScale( 1.0f ); VRMenuFontParms fontParms; VRMenuObjectFlags_t objectFlags( VRMENUOBJECT_DONT_RENDER_TEXT ); VRMenuObjectInitFlags_t initFlags( VRMENUOBJECT_INIT_FORCE_POSITION ); VRMenuObjectParms * itemParms = new VRMenuObjectParms( VRMENU_BUTTON, comps, surfParms, text, pose, scale, textPose, textScale, fontParms, scrubberId, objectFlags, initFlags ); itemParms->ParentId = rootId; parms.PushBack( itemParms ); } // add parms for the bubble { Array< VRMenuComponent* > comps; Array< VRMenuSurfaceParms > surfParms; VRMenuSurfaceParms baseParms( "bubble", GetSliderImage( bubbleImage, vertical ).ToCStr(), SURFACE_TEXTURE_DIFFUSE, NULL, SURFACE_TEXTURE_MAX, NULL, SURFACE_TEXTURE_MAX ); surfParms.PushBack( baseParms ); char const * text = NULL; Vector3f scale( 1.0f ); //Posef pose( Quatf(), right * ( trackImage.w + SLIDER_BUBBLE_CENTER ) + fwd * ( BASE_FWD_OFFSET - ( FWD_INC * 4 ) ) ); float const SLIDER_BUBBLE_CENTER = bubbleImage.w * 0.5f; Posef pose( MakePose( Quatf(), BASE_FWD_OFFSET - FWD_INC * 4, 0.0f , trackImage.w + bubbleImage.w * 0.5593f ) ); const float bubbleTextScale = 0.66f; const float bubbleTextCenterOffset = SLIDER_BUBBLE_CENTER - ( bubbleImage.w * 0.5f ); const Vector3f textPosition = right * bubbleTextCenterOffset; Posef textPose( Quatf(), textPosition ); Vector3f textScale( 1.0f ); VRMenuFontParms fontParms( HORIZONTAL_CENTER, VERTICAL_CENTER, false, false, true, bubbleTextScale ); VRMenuObjectFlags_t objectFlags; VRMenuObjectInitFlags_t initFlags( VRMENUOBJECT_INIT_FORCE_POSITION ); VRMenuObjectParms * itemParms = new VRMenuObjectParms( VRMENU_BUTTON, comps, surfParms, text, pose, scale, textPose, textScale, fontParms, bubbleId, objectFlags, initFlags ); itemParms->ParentId = scrubberId; parms.PushBack( itemParms ); } }