void ofxShadowedTerrain::setLightAngles(float _xangle, float _yangle){ ofVec3f dir; dir.set(0,1,0); dir.rotate(_xangle, ofVec3f(1,0,0)); dir.rotate(_yangle, ofVec3f(0,1,0)); dir.normalize(); setLightDirection(dir); }
void BaseSkyLight::update ( const Ogre::Vector3& direction, const Ogre::ColourValue &lightColour, const Ogre::ColourValue &bodyColour) { setLightDirection(direction); setLightColour(lightColour); setBodyColour(bodyColour); }
void ShadowUpdateTask::executeTaskInBackgroundThread(Tasks::TaskExecutionContext& context) { for (auto& pageGeometry : mPageGeometries) { auto& page = pageGeometry->getPage(); if (page.getSurface()) { auto shadow = page.getSurface()->getShadow(); if (shadow) { auto& shadowTextureName = shadow->getShadowTextureName(); if (!shadowTextureName.empty()) { pageGeometry->repopulate(true); shadow->setLightDirection(mLightDirection); shadow->updateShadow(*pageGeometry.get()); } } } } }
void GuiObjectView::onStaticModified( StringTableEntry slotName, const char* newValue ) { Parent::onStaticModified( slotName, newValue ); static StringTableEntry sShapeFile = StringTable->insert( "shapeFile" ); static StringTableEntry sSkin = StringTable->insert( "skin" ); static StringTableEntry sMountedShapeFile = StringTable->insert( "mountedShapeFile" ); static StringTableEntry sMountedSkin = StringTable->insert( "mountedSkin" ); static StringTableEntry sMountedNode = StringTable->insert( "mountedNode" ); static StringTableEntry sLightColor = StringTable->insert( "lightColor" ); static StringTableEntry sLightAmbient = StringTable->insert( "lightAmbient" ); static StringTableEntry sLightDirection = StringTable->insert( "lightDirection" ); static StringTableEntry sOrbitDistance = StringTable->insert( "orbitDistance" ); static StringTableEntry sMinOrbitDistance = StringTable->insert( "minOrbitDistance" ); static StringTableEntry sMaxOrbitDistance = StringTable->insert( "maxOrbitDistance" ); static StringTableEntry sCameraRotation = StringTable->insert( "cameraRotation" ); static StringTableEntry sAnimSequence = StringTable->insert( "animSequence" ); if( slotName == sShapeFile ) setObjectModel( String( mModelName ) ); else if( slotName == sSkin ) setSkin( String( mSkinName ) ); else if( slotName == sMountedShapeFile ) setMountedObject( String( mMountedModelName ) ); else if( slotName == sMountedSkin ) setMountSkin( String( mMountSkinName ) ); else if( slotName == sMountedNode ) setMountNode( String( mMountNodeName ) ); else if( slotName == sLightColor ) setLightColor( mLightColor ); else if( slotName == sLightAmbient ) setLightAmbient( mLightAmbient ); else if( slotName == sLightDirection ) setLightDirection( mLightDirection ); else if( slotName == sOrbitDistance || slotName == sMinOrbitDistance || slotName == sMaxOrbitDistance ) setOrbitDistance( mOrbitDist ); else if( slotName == sCameraRotation ) setCameraRotation( mCameraRotation ); else if( slotName == sAnimSequence ) setObjectAnimation( String( mAnimationSeqName ) ); }
/* Option::load: load options from config file */ bool Option::load(const char *file) { FILE *fp; char buf[OPTION_MAXBUFLEN]; int len; char *p1; int ivec2[2]; float fvec3[3]; float fvec4[4]; fp = MMDAgent_fopen(file, "r"); if (fp == NULL) return false; while (fgets(buf, OPTION_MAXBUFLEN, fp)) { len = MMDAgent_strlen(buf); if(len <= 0) continue; p1 = &(buf[len - 1]); while (p1 >= &(buf[0]) && (*p1 == '\n' || *p1 == '\r' || *p1 == '\t' || *p1 == ' ')) { *p1 = L'\0'; p1--; } p1 = &(buf[0]); if (*p1 == '#') continue; while (*p1 != L'=' && *p1 != L'\0') p1++; if (*p1 == L'\0') continue; *p1 = L'\0'; p1++; /* overwrite option values */ if(MMDAgent_strequal(buf, OPTION_USECARTOONRENDERING_STR)) { setUseCartoonRendering(MMDAgent_str2bool(p1)); } else if(MMDAgent_strequal(buf, OPTION_USEMMDLIKECARTOON_STR)) { setUseMMDLikeCartoon(MMDAgent_str2bool(p1)); } else if(MMDAgent_strequal(buf, OPTION_CARTOONEDGEWIDTH_STR)) { setCartoonEdgeWidth(MMDAgent_str2float(p1)); } else if(MMDAgent_strequal(buf, OPTION_CARTOONEDGESTEP_STR)) { setCartoonEdgeStep(MMDAgent_str2float(p1)); } else if(MMDAgent_strequal(buf, OPTION_CARTOONEDGESELECTEDCOLOR_STR)) { if(MMDAgent_str2fvec(p1, fvec4, 4)) setCartoonEdgeSelectedColor(fvec4); } else if(MMDAgent_strequal(buf, OPTION_CAMERAROTATION_STR)) { if(MMDAgent_str2fvec(p1, fvec3, 3)) setCameraRotation(fvec3); } else if(MMDAgent_strequal(buf, OPTION_CAMERATRANSITION_STR)) { if(MMDAgent_str2fvec(p1, fvec3, 3)) setCameraTransition(fvec3); } else if(MMDAgent_strequal(buf, OPTION_CAMERADISTANCE_STR)) { setCameraDistance(MMDAgent_str2float(p1)); } else if(MMDAgent_strequal(buf, OPTION_CAMERAFOVY_STR)) { setCameraFovy(MMDAgent_str2float(p1)); } else if(MMDAgent_strequal(buf, OPTION_STAGESIZE_STR)) { if(MMDAgent_str2fvec(p1, fvec3, 3)) setStageSize(fvec3); } else if(MMDAgent_strequal(buf, OPTION_SHOWFPS_STR)) { setShowFps(MMDAgent_str2bool(p1)); } else if(MMDAgent_strequal(buf, OPTION_FPSPOSITION_STR)) { if(MMDAgent_str2fvec(p1, fvec3, 3)) setFpsPosition(fvec3); } else if(MMDAgent_strequal(buf, OPTION_WINDOWSIZE_STR)) { if(MMDAgent_str2ivec(p1, ivec2, 2)) setWindowSize(ivec2); } else if(MMDAgent_strequal(buf, OPTION_FULLSCREEN_STR)) { setFullScreen(MMDAgent_str2bool(p1)); } else if(MMDAgent_strequal(buf, OPTION_LOGSIZE_STR)) { if(MMDAgent_str2ivec(p1, ivec2, 2)) setLogSize(ivec2); } else if(MMDAgent_strequal(buf, OPTION_LOGPOSITION_STR)) { if(MMDAgent_str2fvec(p1, fvec3, 3)) setLogPosition(fvec3); } else if(MMDAgent_strequal(buf, OPTION_LOGSCALE_STR)) { setLogScale(MMDAgent_str2float(p1)); } else if(MMDAgent_strequal(buf, OPTION_LIGHTDIRECTION_STR)) { if(MMDAgent_str2fvec(p1, fvec4, 4)) setLightDirection(fvec4); } else if(MMDAgent_strequal(buf, OPTION_LIGHTINTENSITY_STR)) { setLightIntensity(MMDAgent_str2float(p1)); } else if(MMDAgent_strequal(buf, OPTION_LIGHTCOLOR_STR)) { if(MMDAgent_str2fvec(p1, fvec3, 3)) setLightColor(fvec3); } else if(MMDAgent_strequal(buf, OPTION_CAMPUSCOLOR_STR)) { if(MMDAgent_str2fvec(p1, fvec3, 3)) setCampusColor(fvec3); } else if(MMDAgent_strequal(buf, OPTION_MAXMULTISAMPLING_STR)) { setMaxMultiSampling(MMDAgent_str2int(p1)); } else if(MMDAgent_strequal(buf, OPTION_MOTIONADJUSTTIME_STR)) { setMotionAdjustTime(MMDAgent_str2float(p1)); } else if(MMDAgent_strequal(buf, OPTION_LIPSYNCPRIORITY_STR)) { setLipsyncPriority(MMDAgent_str2float(p1)); } else if(MMDAgent_strequal(buf, OPTION_BULLETFPS_STR)) { setBulletFps(MMDAgent_str2int(p1)); } else if(MMDAgent_strequal(buf, OPTION_GRAVITYFACTOR_STR)) { setGravityFactor(MMDAgent_str2float(p1)); } else if(MMDAgent_strequal(buf, OPTION_ROTATESTEP_STR)) { setRotateStep(MMDAgent_str2float(p1)); } else if(MMDAgent_strequal(buf, OPTION_TRANSLATESTEP_STR)) { setTranslateStep(MMDAgent_str2float(p1)); } else if(MMDAgent_strequal(buf, OPTION_DISTANCESTEP_STR)) { setDistanceStep(MMDAgent_str2float(p1)); } else if(MMDAgent_strequal(buf, OPTION_FOVYSTEP_STR)) { setFovyStep(MMDAgent_str2float(p1)); } else if(MMDAgent_strequal(buf, OPTION_USESHADOWMAPPING_STR)) { setUseShadowMapping(MMDAgent_str2bool(p1)); } else if(MMDAgent_strequal(buf, OPTION_SHADOWMAPPINGTEXTURESIZE_STR)) { setShadowMappingTextureSize(MMDAgent_str2int(p1)); } else if(MMDAgent_strequal(buf, OPTION_SHADOWMAPPINGSELFDENSITY_STR)) { setShadowMappingSelfDensity(MMDAgent_str2float(p1)); } else if(MMDAgent_strequal(buf, OPTION_SHADOWMAPPINGFLOORDENSITY_STR)) { setShadowMappingFloorDensity(MMDAgent_str2float(p1)); } else if(MMDAgent_strequal(buf, OPTION_SHADOWMAPPINGLIGHTFIRST_STR)) { setShadowMappingLightFirst(MMDAgent_str2bool(p1)); } else if(MMDAgent_strequal(buf, OPTION_DISPLAYCOMMENTTIME_STR)) { setDisplayCommentTime(MMDAgent_str2float(p1)); } else if(MMDAgent_strequal(buf, OPTION_MAXNUMMODEL_STR)) { setMaxNumModel(MMDAgent_str2int(p1)); } } fclose(fp); return true; }