PortItems : Better way of handling variables
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