Example #1
0
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);
}
Example #2
0
void 
SimpleTimeZone::setStartRule(int32_t month, int32_t dayOfMonth, 
                             int32_t time, TimeMode mode, UErrorCode& status) 
{
    setStartRule(month, dayOfMonth, 0, time, mode, status);
}
Example #3
0
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();
    }
}