| 364 | } |
| 365 | |
| 366 | void ZoneHVACComponent_Impl::removeFromInletSideMixer() { |
| 367 | if (boost::optional<AirLoopHVAC> t_airLoopHVAC = airLoopHVAC()) { |
| 368 | boost::optional<Node> t_inletNode = inletNode(); |
| 369 | OS_ASSERT(t_inletNode); |
| 370 | boost::optional<Node> t_outletNode = outletNode(); |
| 371 | OS_ASSERT(t_outletNode); |
| 372 | |
| 373 | if (t_airLoopHVAC->demandComponent(t_inletNode->handle())) { |
| 374 | unsigned targetPort = t_outletNode->connectedObjectPort(t_outletNode->outletPort()).get(); |
| 375 | ModelObject targetModelObject = t_outletNode->connectedObject(t_outletNode->outletPort()).get(); |
| 376 | t_outletNode->disconnect(); |
| 377 | t_outletNode->remove(); |
| 378 | |
| 379 | Model t_model = model(); |
| 380 | t_model.connect(t_inletNode.get(), t_inletNode->outletPort(), targetModelObject, targetPort); |
| 381 | |
| 382 | std::vector<AirTerminalSingleDuctInletSideMixer> terminalMixers = subsetCastVector<AirTerminalSingleDuctInletSideMixer>( |
| 383 | t_airLoopHVAC->demandComponents(t_airLoopHVAC->demandInletNode(), t_inletNode.get())); |
| 384 | if (!terminalMixers.empty()) { |
| 385 | if (boost::optional<Node> secondaryNode = terminalMixers.front().secondaryAirInletNode()) { |
| 386 | secondaryNode->disconnect(); |
| 387 | secondaryNode->remove(); |
| 388 | } |
| 389 | } |
| 390 | } |
| 391 | } |
| 392 | } |
| 393 | |
| 394 | boost::optional<AirLoopHVAC> ZoneHVACComponent_Impl::airLoopHVAC() const { |
| 395 | if (boost::optional<Node> node = inletNode()) { |
nothing calls this directly
no test coverage detected