bool InterpreterHelper::getTransformation(std::string & line, AbstractPrimitive * prim,Dimension & temp){ if(startsWith(line,".rot")){ ///rotation line = eraseFirst(line,4); if(line.at(0) != '('){ ////only one arg? std::string temp; char t = line.at(0); line = eraseFirst(line,2); temp=extractUntil(line,')',')'); if(!temp.length()) return false; line = eraseFirst(line,temp.length()+1); ////+ 1 bo ')' switch(t){ case 'x' : prim->getRotation().X = atof(temp.data()); break; case 'y' : prim->getRotation().Y = atof(temp.data()); break; case 'z' : prim->getRotation().Z = atof(temp.data()); break; default : return false; } return true; }else{ line = eraseFirst(line,1); if(getArgs(line,temp)){ line = eraseFirst(line,1); prim->getRotation() = temp; return true; }else return false; } } if(startsWith(line,".transl")){ ///translation line = eraseFirst(line,7); if(line.at(0) != '('){ ////only one arg? std::string temp; char t = line.at(0); line = eraseFirst(line,2); temp=extractUntil(line,')',')'); if(!temp.length()) return false; switch(t){ case 'x' : prim->getPosition().X = atof(temp.data()); break; case 'y' : prim->getPosition().Y = atof(temp.data()); break; case 'z' : prim->getPosition().Z = atof(temp.data()); break; default : return false; } line = eraseFirst(line,temp.length()+1); ////+ 1 bo ')' return true; }else{ line = eraseFirst(line,1); if(getArgs(line,temp)){ line = eraseFirst(line,1); prim->getPosition() = temp; return true; }else return false; } } return false; }