LCOV - code coverage report
Current view: top level - src/utils/traction_wire - Node.cpp (source / functions) Hit Total Coverage
Test: lcov.info Lines: 52 52 100.0 %
Date: 2024-05-05 15:31:14 Functions: 18 18 100.0 %

          Line data    Source code
       1             : /****************************************************************************/
       2             : // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
       3             : // Copyright (C) 2001-2024 German Aerospace Center (DLR) and others.
       4             : // This program and the accompanying materials are made available under the
       5             : // terms of the Eclipse Public License 2.0 which is available at
       6             : // https://www.eclipse.org/legal/epl-2.0/
       7             : // This Source Code may also be made available under the following Secondary
       8             : // Licenses when the conditions for such availability set forth in the Eclipse
       9             : // Public License 2.0 are satisfied: GNU General Public License, version 2
      10             : // or later which is available at
      11             : // https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
      12             : // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
      13             : /****************************************************************************/
      14             : /// @file    Node.cpp
      15             : /// @author  Jakub Sevcik (RICE)
      16             : /// @author  Jan Prikryl (RICE)
      17             : /// @date    2019-12-15
      18             : ///
      19             : /// @note    based on work 2017 Ahmad Khaled, Ahmad Essam, Omnia Zakaria, Mary Nader
      20             : ///
      21             : // Representation of electric circuit nodes, i.e. wire junctions and connection points.
      22             : /****************************************************************************/
      23             : #include <config.h>
      24             : 
      25             : #include <string>
      26             : #include <algorithm>
      27             : #include "Node.h"
      28             : #include "Element.h"
      29             : 
      30             : 
      31             : // A constructor, same functionality as "init" functions
      32         264 : Node::Node(std::string name, int id) {
      33         264 :     isground = false;
      34             :     this->name = name;               // unique property, each object has distinctive and unique name
      35         264 :     this->id = id;                           // a sequential ID number, might be useful when making the equation
      36         264 :     this->num_matrixRow = -1;
      37         264 :     this->num_matrixCol = -1;
      38         264 :     this->voltage = 0;
      39         264 :     this->elements = new std::vector<Element*>(0);
      40         264 :     isremovable = false;
      41         264 : }
      42             : 
      43             : // connects an element to the node
      44        1223 : void Node::addElement(Element* element) {
      45        1223 :     elements->push_back(element);
      46        1223 : }
      47             : 
      48        1719 : void Node::eraseElement(Element* element) {
      49        1719 :     elements->erase(std::remove(elements->begin(), elements->end(), element), elements->end());
      50        1719 : }
      51             : 
      52             : // getters and setters
      53        7800 : double Node::getVoltage() {
      54        7800 :     return this->voltage;
      55             : }
      56             : 
      57        2433 : void Node::setVoltage(double volt) {
      58        2433 :     this->voltage = volt;
      59        2433 : }
      60             : 
      61          93 : int Node::getNumOfElements() {
      62          93 :     return (int) elements->size();
      63             : }
      64             : 
      65        3050 : std::string& Node::getName() {
      66        3050 :     return this->name;
      67             : }
      68             : 
      69       15084 : bool Node::isGround() {
      70       15084 :     return this->isground;
      71             : }
      72             : 
      73           8 : void Node::setGround(bool newIsGround) {
      74           8 :     this->isground = newIsGround;
      75           8 : }
      76             : 
      77       51642 : int Node::getId() {
      78       51642 :     return this->id;
      79             : }
      80             : 
      81          15 : void Node::setId(int newId) {
      82          15 :     this->id = newId;
      83          15 : }
      84             : 
      85        2613 : void Node::setNumMatrixRow(int num) {
      86        2613 :     this->num_matrixRow = num;
      87        2613 : }
      88             : 
      89        4579 : int Node::getNumMatrixRow() {
      90        4579 :     return this->num_matrixRow;
      91             : }
      92             : 
      93        2433 : void Node::setNumMatrixCol(int num) {
      94        2433 :     this->num_matrixCol = num;
      95        2433 : }
      96             : 
      97        1244 : int Node::getNumMatrixCol() {
      98        1244 :     return this->num_matrixCol;
      99             : }
     100             : 
     101       31322 : std::vector<Element*>* Node::getElements() {
     102       31322 :     return elements;
     103             : }
     104             : 
     105        4304 : void Node::setRemovability(bool newIsRemovable) {
     106        4304 :     this->isremovable = newIsRemovable;
     107        4304 : }
     108             : 
     109        5648 : Element* Node::getAnOtherElement(Element* element) {
     110        9286 :     for (Element* it : *this->getElements()) {
     111        9286 :         if (it != element) {
     112             :             return it;
     113             :         }
     114             :     }
     115             :     return nullptr;
     116             : }

Generated by: LCOV version 1.14