PortItems : Better way of handling variables

portItems can be constructed in multiple ways. The commonest (currently in our master branch) is via VirtualTube (which is normally specialized as PortTube or PipeTube). Additionally, I have started putting stuff into portSet.

portSet

portSet is a new(ish) class that effectively adds portItems to anything.That isn't exactly true, but if you know which cell in an object that will put the cell into -- that is easy to make general. This is done in the following snippet (taken from FlangeDome.cxx).

MonteCarlo::Object* insertObj=   this->getCellObject(System,"Dome");
 const HeadRule innerHR=  ModelSupport::getHeadRule(SMap,buildIndex,"8")*frontHR;
 const HeadRule outerHR=  ModelSupport::getHeadRule(SMap,buildIndex,"18")*frontHR;
 for(const auto CN : insertCells)
    PSet.addInsertPortCells(CN);
  PSet.createPorts(System,insertObj,innerHR,outerHR);

The basic is that you need the object that has the portItem is connected two and you need a front/back surface on the main cell.
The reason that this is difficult to calculate (and we could make a guess) in this instance is because this is a cylinder and both surfaces have frontHR which is a cutting surface.

Variables on portItem

I have updated portItems methods in VirtualTube and portSet, so that portItem's populate is used. Previously that wasn't the case. [There was a local system] . I have plans to fix the local axis / centre system in portItems as well. But in the meantime, if this causes any problems please say!! (raise an issue for example).

This was added commit: 1e6ecbd