void AddPredefineds() { int i; for ( i=0; predefined[i].ch!='\0'; ++i ) AddTransform(predefined[i].ch, predefined[i].oldstate, predefined[i].newstate, predefined[i].result ); }
bool HesperisIO::WriteTransforms(const MDagPathArray & paths, HesperisFile * file, const std::string & beheadName) { file->setWriteComponent(HesperisFile::WTransform); file->setDirty(); unsigned i = 0; for(;i<paths.length();i++) AddTransform(paths[i], file, beheadName); bool fstat = file->save(); if(!fstat) MGlobal::displayWarning(MString(" cannot save transform to file ")+ file->fileName().c_str()); file->close(); return true; }
void ParseUnicodeFile(FILE *in) { char buffer[600]; int ch, mask, base, lc, i; char *pt; while ( mygets(in,buffer)!=NULL ) { ch = strtol(buffer,NULL,16); if ( ch==0x1ec0 ) ch = 0x1ec0; pt = buffer+4; if ( strncmp(pt,";LATIN ",7)!=0 ) continue; pt += 7; if ( strncmp(pt,"CAPITAL ",8)==0 ) { lc = 0; pt += 8; } else if ( strncmp(pt,"SMALL ",6)==0 ) { lc = 1; pt += 6; } else continue; if ( strncmp(pt,"LETTER ",7)!=0 ) continue; pt += 7; base = *pt++; if ( lc ) base = tolower(base); if ( strncmp(pt," WITH ",6)!=0 ) continue; pt += 6; mask = 0; forever { for ( i=0; names2[i].name!=NULL; ++i ) { if ( strncmp(pt,names2[i].name,strlen(names2[i].name))==0 ) break; } if ( names2[i].name==NULL || names2[i].mask==0 ) goto continue_2_loop; mask |= names2[i].mask; pt += strlen(names2[i].name); while ( *pt!=';' && !(*pt==' ' && pt[1]=='A' && pt[2]=='N' && pt[3]=='D' && pt[4]==' ')) ++pt; if ( *pt==';' ) break; else pt += 5; } AddTransform(base,mask,0,ch); continue_2_loop:; } fclose(in); }
static int rad_load_transforms(struct Protocol *prot, CONF_SECTION *cf) { CONF_PAIR *cp; int option_exists = 0; int i = 0; rad_assert(prot); rad_assert(cf); DEBUG(IKEv2_LOG_PREFIX "Begin load transforms"); while(config_transforms[i].name) { uint8_t id; uint16_t keylen; for(cp = cf_pair_find(cf,config_transforms[i].name); cp; cp = cf_pair_find_next(cf,cp,config_transforms[i].name)) { if (TransformFromName(cf_pair_value(cp),config_transforms[i].type,&id,&keylen)) { ERROR(IKEv2_LOG_PREFIX "Unsupported %s transform: %s ", config_transforms[i].name,cf_pair_value(cp)); return -1; } if (!AddTransform(prot,config_transforms[i].type,id,keylen)) { ERROR(IKEv2_LOG_PREFIX "Problem with transform %s:%s", config_transforms[i].name,cf_pair_value(cp)); return -1; } option_exists |= config_transforms[i].exist_flag; } i++; } if ((option_exists & OPT_NEEDED) != OPT_NEEDED) { ERROR(IKEv2_LOG_PREFIX "Not all mandatory transforms are set properly"); DEBUG(IKEv2_LOG_PREFIX "Option flags: 0x%02X",option_exists); return -1; } return 0; }
bool HesperisIO::AddTransform(const MDagPath & path, HesperisFile * file, const std::string & beheadName) { MFnDagNode fdg(path); if(fdg.parentCount() < 1) return false; MGlobal::displayInfo(MString("hes io add transform ")+path.fullPathName()); MObject oparent = fdg.parent(0); MFnDagNode fp(oparent); MDagPath pp; fp.getPath(pp); AddTransform(pp, file, beheadName); std::string nodeName = path.fullPathName().asChar(); if(beheadName.size() > 1) SHelper::behead(nodeName, beheadName); // todo extract tm file->addTransform(nodeName, new BaseTransform); return true; }
bool HesperisIO::AddTransform(const MDagPath & path, HesperisFile * file ) { const std::string nodeName = H5PathNameTo(path); if(nodeName.size() < 2 ) return false; MFnDagNode fdg(path); if(fdg.parentCount() < 1) return false; // AHelper::Info<MString>("hes io add transform ", path.fullPathName()); MObject oparent = fdg.parent(0); MFnDagNode fp(oparent); MDagPath pp; fp.getPath(pp); AddTransform(pp, file); // todo extract tm file->addTransform( nodeName, new BaseTransform ); return true; }
void radTg3d::ActualEnergyForceTorqueComp(radTField* FieldPtr) { TVector3d ZeroVect(0.,0.,0.); const double DeltaL = 1.E-01; // mm //const double DeltaL = 1.; // mm const double DeltaTeta = 1.E-03; // rad radTField LocField(FieldPtr->FieldKey, FieldPtr->CompCriterium, FieldPtr->HandleEnergyForceTorqueCompData); double& Enr = LocField.Energy; double Ex1, Ex2, Ey1, Ey2, Ez1, Ez2; if(FieldPtr->FieldKey.Energy_) { Enr = 0.; (g3dListOfTransform.empty())? SimpleEnergyComp(&LocField) : NestedFor_Energy(&LocField, g3dListOfTransform.begin()); FieldPtr->Energy += LocField.Energy; } if(FieldPtr->FieldKey.ForceEnr_) { LocField.CompCriterium.BasedOnWorstRelPrec = 1; TVector3d DeltaX(-DeltaL/2., 0., 0.), DeltaY(0., -DeltaL/2., 0.), DeltaZ(0., 0., -DeltaL/2.); radTrans *SmallTranslXPtr = new radTrans(), *SmallTranslYPtr = new radTrans(), *SmallTranslZPtr = new radTrans(); radThg hTranslX(SmallTranslXPtr), hTranslY(SmallTranslYPtr), hTranslZ(SmallTranslZPtr); SmallTranslXPtr->SetupTranslation(DeltaX); SmallTranslYPtr->SetupTranslation(DeltaY); SmallTranslZPtr->SetupTranslation(DeltaZ); AddTransform(1, hTranslX); //AddTransform_OtherSide(1, hTranslX); Enr = 0.; NestedFor_Energy(&LocField, g3dListOfTransform.begin()); Ex1 = Enr; SmallTranslXPtr->Invert(); Enr = 0.; NestedFor_Energy(&LocField, g3dListOfTransform.begin()); Ex2 = Enr; EraseOuterTransform(); //EraseInnerTransform(); AddTransform(1, hTranslY); //AddTransform_OtherSide(1, hTranslY); Enr = 0.; NestedFor_Energy(&LocField, g3dListOfTransform.begin()); Ey1 = Enr; SmallTranslYPtr->Invert(); Enr = 0.; NestedFor_Energy(&LocField, g3dListOfTransform.begin()); Ey2 = Enr; EraseOuterTransform(); //EraseInnerTransform(); AddTransform(1, hTranslZ); //AddTransform_OtherSide(1, hTranslZ); Enr = 0.; NestedFor_Energy(&LocField, g3dListOfTransform.begin()); Ez1 = Enr; SmallTranslZPtr->Invert(); Enr = 0.; NestedFor_Energy(&LocField, g3dListOfTransform.begin()); Ez2 = Enr; EraseOuterTransform(); //EraseInnerTransform(); double Const = 1000./DeltaL; TVector3d LocForce(Const*(Ex1 - Ex2), Const*(Ey1 - Ey2), Const*(Ez1 - Ez2)); if(FieldPtr->FieldKey.ForceEnr_) FieldPtr->Force += LocForce; } if(FieldPtr->FieldKey.Torque_) { LocField.CompCriterium.BasedOnWorstRelPrec = 1; radTrans *SmallRotXaxPtr = new radTrans(), *SmallRotYaxPtr = new radTrans(), *SmallRotZaxPtr = new radTrans(); radThg hRotX(SmallRotXaxPtr), hRotY(SmallRotYaxPtr), hRotZ(SmallRotZaxPtr); TVector3d OrtX(1.,0.,0.), OrtY(0.,1.,0.), OrtZ(0.,0.,1.); SmallRotXaxPtr->SetupRotation(FieldPtr->P, OrtX, -DeltaTeta/2.); SmallRotYaxPtr->SetupRotation(FieldPtr->P, OrtY, -DeltaTeta/2.); SmallRotZaxPtr->SetupRotation(FieldPtr->P, OrtZ, -DeltaTeta/2.); AddTransform(1, hRotX); //AddTransform_OtherSide(1, hRotX); Enr = 0.; NestedFor_Energy(&LocField, g3dListOfTransform.begin()); Ex1 = Enr; SmallRotXaxPtr->Invert(); Enr = 0.; NestedFor_Energy(&LocField, g3dListOfTransform.begin()); Ex2 = Enr; EraseOuterTransform(); //EraseInnerTransform(); AddTransform(1, hRotY); //AddTransform_OtherSide(1, hRotY); Enr = 0.; NestedFor_Energy(&LocField, g3dListOfTransform.begin()); Ey1 = Enr; SmallRotYaxPtr->Invert(); Enr = 0.; NestedFor_Energy(&LocField, g3dListOfTransform.begin()); Ey2 = Enr; EraseOuterTransform(); //EraseInnerTransform(); AddTransform(1, hRotZ); //AddTransform_OtherSide(1, hRotZ); Enr = 0.; NestedFor_Energy(&LocField, g3dListOfTransform.begin()); Ez1 = Enr; SmallRotZaxPtr->Invert(); Enr = 0.; NestedFor_Energy(&LocField, g3dListOfTransform.begin()); Ez2 = Enr; EraseOuterTransform(); //EraseInnerTransform(); double Const = 1000./DeltaTeta; TVector3d LocTorque(Const*(Ex1 - Ex2), Const*(Ey1 - Ey2), Const*(Ez1 - Ez2)); if(FieldPtr->FieldKey.Torque_) FieldPtr->Torque += LocTorque; } }
void TestScene::Start( void ) { TRACE( "TestScene Start method!" ); Entity& qMark = entityManager.New( "qMark" ); //TODO: Need to add delete* methods to remove components AddTransform( qMark ); AddSprite( qMark, "MarioQuestionBlockTexture"); GetTransform( qMark ).translation.z = 5; GetTransform( qMark ).scale.x = 512; GetTransform( qMark ).scale.y = 512; GetSprite( qMark ).TextureDimensions.right = 2.0f; GetSprite( qMark ).TextureDimensions.bottom = 2.0f; //TESTING ANIMATED SPRITES// Entity& animTest = entityManager.New( "animTest" ); AddTransform( animTest ); AddAnimatedSprite( animTest ); Transform& animTransform = GetTransform( animTest ); animTransform.translation.x = -300; animTransform.translation.y = -200; animTransform.translation.z = 6; animTransform.scale.x = 100; animTransform.scale.y = 100; Animation2D testAnimation( "test" ); Frame one = animatedSprites.NewFrame( EngineDuration( std::chrono::seconds( 1 ) ), "uvtest" ); Frame two = animatedSprites.NewFrame( EngineDuration( std::chrono::seconds( 1 ) ), "uvtest" ); Frame three = animatedSprites.NewFrame( EngineDuration( std::chrono::seconds( 1 ) ), "uvtest" ); one.TextureDimensions.right = 0.1f; one.TextureDimensions.bottom = 0.1f; two.TextureDimensions.left = 0.1f; two.TextureDimensions.right = 0.2f; two.TextureDimensions.bottom = 0.1f; three.TextureDimensions.left = 0.2f; three.TextureDimensions.right = 0.3f; three.TextureDimensions.bottom = 0.1f; testAnimation.AddFrame( one ); testAnimation.AddFrame( two ); testAnimation.AddFrame( three ); GetAnimatedSprite( animTest ).AddAnimation( testAnimation ); GetAnimatedSprite( animTest ).PlayAnimation( "test", Animation2D::PlaybackMode::LOOP ); //TRANSPARENCY TEST// Entity& tTest = entityManager.New( "tTest" ); AddTransform( tTest ); AddSprite( tTest, "fucknope" ); GetTransform( tTest ).scale.x = 79; GetTransform( tTest ).scale.y = 103; GetTransform( tTest ).translation.z = 4; State = SceneState::UPDATE; }