int ArchesModel::OnPropertyGridChange(wxPropertyGridInterface *grid, wxPropertyGridEvent& event) { if ("ArchesCount" == event.GetPropertyName()) { ModelXml->DeleteAttribute("parm1"); ModelXml->AddAttribute("parm1", wxString::Format("%d", event.GetPropertyValue().GetLong())); SetFromXml(ModelXml, zeroBased); AdjustStringProperties(grid, parm1); return 3; } else if ("ArchesNodes" == event.GetPropertyName()) { ModelXml->DeleteAttribute("parm2"); ModelXml->AddAttribute("parm2", wxString::Format("%d", event.GetPropertyValue().GetLong())); SetFromXml(ModelXml, zeroBased); return 3; } else if ("ArchesLights" == event.GetPropertyName()) { ModelXml->DeleteAttribute("parm3"); ModelXml->AddAttribute("parm3", wxString::Format("%d", event.GetPropertyValue().GetLong())); SetFromXml(ModelXml, zeroBased); return 3; } else if ("ArchesArc" == event.GetPropertyName()) { ModelXml->DeleteAttribute("arc"); ModelXml->AddAttribute("arc", wxString::Format("%d", event.GetPropertyValue().GetLong())); SetFromXml(ModelXml, zeroBased); return 3; } else if ("ArchesStart" == event.GetPropertyName()) { ModelXml->DeleteAttribute("Dir"); ModelXml->AddAttribute("Dir", event.GetValue().GetLong() == 0 ? "L" : "R"); SetFromXml(ModelXml, zeroBased); return 3; } return Model::OnPropertyGridChange(grid, event); }
void PixelBufferClass::InitBuffer(wxXmlNode* ModelNode, bool zeroBased) { SetFromXml(ModelNode, zeroBased); for(size_t i=0; i<2; i++) { Effect[i].InitBuffer(BufferHt, BufferWi); } }
void PixelBufferClass::InitBuffer(wxXmlNode* ModelNode, bool zeroBased) { SetFromXml(ModelNode, zeroBased); SetModelBrightness(wxAtoi(ModelNode->GetAttribute("ModelBrightness","0"))); for(size_t i=0; i<2; i++) { Effect[i].InitBuffer(BufferHt, BufferWi); } }
int TreeModel::OnPropertyGridChange(wxPropertyGridInterface *grid, wxPropertyGridEvent& event) { if (event.GetPropertyName() == "TreeStyle") { ModelXml->DeleteAttribute("DisplayAs"); wxPGProperty *p = grid->GetPropertyByName("TreeDegrees"); if (p != nullptr) { degrees = p->GetValue().GetLong(); } switch (event.GetPropertyValue().GetLong()) { case 0: ModelXml->AddAttribute("DisplayAs", wxString::Format("Tree %d", degrees > 1 ? (int)degrees : 180)); break; case 1: ModelXml->AddAttribute("DisplayAs", "Tree Flat"); break; case 2: ModelXml->AddAttribute("DisplayAs", "Tree Ribbon"); break; } SetFromXml(ModelXml, zeroBased); if (p != nullptr) { p->Enable(treeType == 0); } p = grid->GetPropertyByName("TreeRotation"); if (p != nullptr) { p->Enable(treeType == 0); } return 3; } else if (event.GetPropertyName() == "TreeDegrees") { ModelXml->DeleteAttribute("DisplayAs"); ModelXml->AddAttribute("DisplayAs", wxString::Format("Tree %d", (int)event.GetPropertyValue().GetLong())); SetFromXml(ModelXml, zeroBased); return 3; } else if (event.GetPropertyName() == "TreeRotation") { ModelXml->DeleteAttribute("TreeRotation"); ModelXml->AddAttribute("TreeRotation", wxString::Format("%f", (float)event.GetPropertyValue().GetDouble())); SetFromXml(ModelXml, zeroBased); return 3; } else if (event.GetPropertyName() == "TreeSpiralRotations") { ModelXml->DeleteAttribute("TreeSpiralRotations"); ModelXml->AddAttribute("TreeSpiralRotations", wxString::Format("%f", (float)event.GetPropertyValue().GetDouble())); SetFromXml(ModelXml, zeroBased); return 3; } else if (event.GetPropertyName() == "TreeBottomTopRatio") { ModelXml->DeleteAttribute("TreeBottomTopRatio"); ModelXml->AddAttribute("TreeBottomTopRatio", wxString::Format("%f", (float)event.GetPropertyValue().GetDouble())); SetFromXml(ModelXml, zeroBased); return 3; } else if (event.GetPropertyName() == "TreePerspective") { ModelXml->DeleteAttribute("TreePerspective"); ModelXml->AddAttribute("TreePerspective", wxString::Format("%f", (float)(event.GetPropertyValue().GetDouble()/10.0))); SetFromXml(ModelXml, zeroBased); return 3; } return MatrixModel::OnPropertyGridChange(grid, event); }
void PixelBufferClass::InitBuffer(wxXmlNode* ModelNode) { size_t i; wxClientDC dc(DrawWindow); dc.Clear(); SetFromXml(ModelNode); pixels.resize(BufferHt * BufferWi); size_t NodeCount=GetNodeCount(); uint8_t offset_r=RGBorder.find(wxT("R")); uint8_t offset_g=RGBorder.find(wxT("G")); uint8_t offset_b=RGBorder.find(wxT("B")); for(i=0; i<NodeCount; i++) { Nodes[i].SetOffset(offset_r, offset_g, offset_b); Nodes[i].sparkle = rand() % 10000; } for(i=0; i<2; i++) { BarState[i]=0; ButterflyState[i]=0; ColorWashState[i]=0; GarlandsState[i]=0; MeteorState[i]=0; SpiralState[i]=0; } }
ArchesModel::ArchesModel(wxXmlNode *node, const ModelManager &manager, bool zeroBased) : ModelWithScreenLocation(manager), arc(180) { SetFromXml(node, zeroBased); }
TreeModel::TreeModel(wxXmlNode *node, const ModelManager &manager, bool zeroBased) : MatrixModel(manager) { treeType = 0; degrees = 360; SetFromXml(node, zeroBased); }