| 215 | */ |
| 216 | template <class TLightInfo = LightInfo> |
| 217 | TLightInfo* configLight(int lightId, std::string name = "") { |
| 218 | assert(lightId < (int) lights.size() && lightId < (int) lightInfos.size()); |
| 219 | if (lightInfos[lightId]) |
| 220 | delete lightInfos[lightId]; |
| 221 | |
| 222 | TLightInfo* info = new TLightInfo; |
| 223 | info->LightInfo::module = this; |
| 224 | info->LightInfo::lightId = lightId; |
| 225 | info->LightInfo::name = name; |
| 226 | lightInfos[lightId] = info; |
| 227 | return info; |
| 228 | } |
| 229 | |
| 230 | /** Adds a direct route from an input to an output when the module is bypassed. |
| 231 | Should only be called from a Module subclass's constructor. |