void SimpleTimeZone::setStartRule(int32_t month, int32_t dayOfMonth, int32_t dayOfWeek, int32_t time, TimeMode mode, UBool after, UErrorCode& status) { setStartRule(month, after ? dayOfMonth : -dayOfMonth, -dayOfWeek, time, mode, status); }
void SimpleTimeZone::setStartRule(int32_t month, int32_t dayOfMonth, int32_t time, TimeMode mode, UErrorCode& status) { setStartRule(month, dayOfMonth, 0, time, mode, status); }
void Rules::load(const string& fileName) { ruleSets.clear(); ofLogNotice() << "================================================="; ofLogNotice() << "Parsing " << fileName; ofxXmlSettings xml; xml.loadFile(fileName); string meshColourStr = xml.getAttribute("rules", "meshColour", ""); if (meshColourStr.empty()) enableVertexColours = true; else { enableVertexColours = false; meshColour = Action::parseColour(meshColourStr); } string wireframeColourStr = xml.getAttribute("rules", "wireframeColour", ""); if (wireframeColourStr.empty()) enableWireframe = false; else { enableWireframe = true; wireframeColour = Action::parseColour(wireframeColourStr); } setMaxDepth(xml.getAttribute("rules", "maxDepth", (int)numeric_limits<unsigned>::max())); setStartRule(xml.getAttribute("rules", "startRule", "")); string primitive = xml.getAttribute("rules", "primitive", ""); if (!primitive.empty()) { if (primitive == "triangles") mesh.setMode(OF_PRIMITIVE_TRIANGLES); else if (primitive == "triangle_strip") mesh.setMode(OF_PRIMITIVE_TRIANGLE_STRIP); else if (primitive == "triangle_fan") mesh.setMode(OF_PRIMITIVE_TRIANGLE_FAN); else if (primitive == "lines") mesh.setMode(OF_PRIMITIVE_LINES); else if (primitive == "line_strip") mesh.setMode(OF_PRIMITIVE_LINE_STRIP); else if (primitive == "line_loop") mesh.setMode(OF_PRIMITIVE_LINE_LOOP); else if (primitive == "points") mesh.setMode(OF_PRIMITIVE_POINTS); } xml.pushTag("rules"); for (unsigned i = 0; i < xml.getNumTags("ruleSet"); ++i) { string name = xml.getAttribute("ruleSet", "name", "", i); xml.pushTag("ruleSet", i); ofLogNotice() << "Ruleset: " << name << ", num rules: " << xml.getNumTags("rule"); for (unsigned j = 0; j < xml.getNumTags("rule"); ++j) { Rule::Ptr rule = addRule(name, xml.getAttribute("rule", "weight", 0.f, j)); xml.pushTag("rule", j); for (CreatorIt it = creators.begin(); it != creators.end(); ++it) { for (unsigned k = 0; k < xml.getNumTags(it->first); ++k) { Action::Ptr action = (this->*it->second)(); action->setName(it->first); action->setRuleName(name); action->load(xml, it->first, k); rule->addAction(action); } } xml.popTag(); } xml.popTag(); } }