void ArchesModel::InitRenderBufferNodes(const std::string &type, const std::string &transform, std::vector<NodeBaseClassPtr> &newNodes, int &BufferWi, int &BufferHi) const { if (type == "Single Line") { BufferHi = 1; BufferWi = GetNodeCount(); int NumArches=parm1; int SegmentsPerArch=parm2; int cur = 0; for (int y=0; y < NumArches; y++) { for(int x=0; x<SegmentsPerArch; x++) { int idx = y * SegmentsPerArch + x; newNodes.push_back(NodeBaseClassPtr(Nodes[idx]->clone())); for(size_t c=0; c < newNodes[cur]->Coords.size(); c++) { newNodes[cur]->Coords[c].bufX=cur; newNodes[cur]->Coords[c].bufY=0; } cur++; } } ApplyTransform(transform, newNodes, BufferWi, BufferHi); } else { Model::InitRenderBufferNodes(type, transform, newNodes, BufferWi, BufferHi); } }
// set size of Nodes vector and each Node's Coords vector void ModelClass::SetNodeCount(size_t NumStrings, size_t NodesPerString) { size_t n; if (SingleNode) { if (StringType=="Single Color Red") { for(n=0; n<NumStrings; n++) Nodes.push_back(NodeBaseClassPtr(new NodeClassRed(n,NodesPerString))); } else if (StringType=="Single Color Green") { for(n=0; n<NumStrings; n++) Nodes.push_back(NodeBaseClassPtr(new NodeClassGreen(n,NodesPerString))); } else if (StringType=="Single Color Blue") { for(n=0; n<NumStrings; n++) Nodes.push_back(NodeBaseClassPtr(new NodeClassBlue(n,NodesPerString))); } else if (StringType=="Single Color White") { for(n=0; n<NumStrings; n++) Nodes.push_back(NodeBaseClassPtr(new NodeClassWhite(n,NodesPerString))); } else if (StringType=="Strobes White 3fps") { StrobeRate=7; // 1 out of every 7 frames for(n=0; n<NumStrings; n++) Nodes.push_back(NodeBaseClassPtr(new NodeClassWhite(n,NodesPerString))); } else { // 3 Channel RGB for(n=0; n<NumStrings; n++) Nodes.push_back(NodeBaseClassPtr(new NodeBaseClass(n,NodesPerString))); } } else if (NodesPerString == 0) { Nodes.push_back(NodeBaseClassPtr(new NodeBaseClass(0, 0))); } else { size_t numnodes=NumStrings*NodesPerString; for(n=0; n<numnodes; n++) Nodes.push_back(NodeBaseClassPtr(new NodeBaseClass(n/NodesPerString, 1))); } }