69 myPositionOverLane(pos / edge->getLanes().at(0)->getLaneParametricLength()),
70 myFrequency(frequency),
102 throw ProcessError(
"Both myEdge and myLane aren't defined");
108 i->writeRoute(device);
112 i->writeVehicleType(device);
116 i->writeFlow(device);
156 throw ProcessError(
"Both myEdge and myLane aren't defined");
171 throw ProcessError(
"Both myEdge and myLane aren't defined");
184 throw ProcessError(
"Both myEdge and myLane aren't defined");
197 for (
int i = 0; i < (int)
myShape.size(); ++i) {
201 glTranslated(pos.
x(), pos.
y(),
getType());
202 glRotated(rot, 0, 0, 1);
204 glScaled(exaggeration, exaggeration, 1);
205 glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
213 glBegin(GL_TRIANGLES);
214 glVertex2d(0 - 1.4, 0);
215 glVertex2d(0 - 1.4, 6);
216 glVertex2d(0 + 1.4, 6);
217 glVertex2d(0 + 1.4, 0);
218 glVertex2d(0 - 1.4, 0);
219 glVertex2d(0 + 1.4, 6);
223 if (s.
scale * exaggeration >= 1.) {
234 throw ProcessError(
"Both myEdge and myLane aren't defined");
266 const std::vector<GNECalibratorRoute*>&
285 const std::vector<GNECalibratorFlow*>&
303 const std::vector<GNECalibratorVehicleType*>&
324 throw ProcessError(
"Both myEdge and myLane aren't defined");
382 if (canParse<double>(value)) {
386 newPosition = parse<double>(value) /
myEdge->
getLanes().at(0)->getLaneParametricLength();
390 throw ProcessError(
"Both myEdge and myLane aren't defined");
392 if ((newPosition < 0) || (newPosition > 1)) {
401 return (canParse<double>(value) && parse<double>(value) >= 0);
437 throw ProcessError(
"Both myEdge and myLane aren't defined");
void removeCalibratorFlow(GNECalibratorFlow *flow)
remove calibrator flow
Boundary getCenteringBoundary() const
Returns the boundary to which the view shall be centered in order to show the object.
OutputDevice & writeAttr(const SumoXMLAttr attr, const T &val)
writes a named attribute
void writeAdditional(OutputDevice &device) const
writte additional element into a xml file
void drawName(const Position &pos, const double scale, const GUIVisualizationTextSettings &settings, const double angle=0) const
draw name of item
GNEEdge * retrieveEdge(const std::string &id, bool failHard=true)
get edge by id
double scale
information about a lane's width (temporary, used for a single view)
GUIVisualizationTextSettings addName
void refreshElement(GUIGlObject *o)
refreshes boundary information for o and update
std::vector< GNECalibratorRoute * > myCalibratorRoutes
calibrator route values
bool isValidAdditionalID(const std::string &newID) const
check if a new additional ID is valid
A calibrator placed over edge.
double x() const
Returns the x-position.
Stores the information about how to visualize structures.
bool isAdditionalSelected() const
std::vector< GNECalibratorVehicleType * > myCalibratorVehicleTypes
calibrator vehicleType values
~GNECalibrator()
Destructor.
const std::vector< GNECalibratorVehicleType * > & getCalibratorVehicleTypes() const
get calibrator vehicleTypes
Representation of a RouteProbe in netedit.
void drawGL(const GUIVisualizationSettings &s) const
Draws the object.
static void drawText(const std::string &text, const Position &pos, const double layer, const double size, const RGBColor &col=RGBColor::BLACK, const double angle=0, int align=0, double width=-1)
GNERouteProbe * myRouteProbe
pointer to current RouteProbe
This lane is powered by an underlying GNEEdge and basically knows how to draw itself.
void removeCalibratorVehicleType(GNECalibratorVehicleType *vehicleType)
remove calibrator vehicleType
SumoXMLAttr
Numbers representing SUMO-XML - attributes.
std::vector< GNECalibratorFlow * > myCalibratorFlows
calibrator flow values
static const RGBColor BLACK
void setAttribute(SumoXMLAttr key, const std::string &value, GNEUndoList *undoList)
method for setting the attribute and letting the object perform additional changes ...
static bool isValidFilename(const std::string &value)
true if value is a valid file value
std::vector< double > myShapeRotations
GUIGlID getGlID() const
Returns the numerical id of the object.
void changeAdditionalID(const std::string &newID)
change ID of additional
void openAdditionalDialog()
open Calibrator Dialog
GNEViewNet * myViewNet
The GNEViewNet this additional element belongs.
virtual const std::string & getMicrosimID() const
Returns the id of the object as known to microsim.
void p_add(GNEChange_Attribute *cmd)
special method, avoid empty changes, always execute
static bool isValidID(const std::string &value)
true if value is a valid sumo ID
GUIVisualizationSizeSettings addSize
GUIGlObjectType getType() const
Returns the type of the object as coded in GUIGlObjectType.
GNECalibrator(const std::string &id, GNEViewNet *viewNet, GNEEdge *edge, double pos, double frequency, const std::string &output)
Constructor using edge.
static const RGBColor selectedAdditionalColor
color of selected additionals
double getExaggeration(const GUIVisualizationSettings &s, double factor=20) const
return the drawing size including exaggeration and constantSize values
std::string myOutput
output of calibrator
std::string toString(const T &t, std::streamsize accuracy=gPrecision)
static void setColor(const RGBColor &c)
Sets the gl-color to this value.
const std::string & getAdditionalID() const
returns Additional ID
bool isValid(SumoXMLAttr key, const std::string &value)
method for checking if the key and their conrrespond attribute are valids
std::string getAttribute(SumoXMLAttr key) const
This functions has to be implemented in all GNEAttributeCarriers.
PositionVector myShape
The shape of the additional element.
A point in 2D or 3D with translation and scaling methods.
double rotationDegreeAtOffset(double pos) const
Returns the rotation at the given length.
friend class GNEChange_Attribute
declare friend class
double y() const
Returns the y-position.
A calibrator placed over lane (used in netedit)
void addCalibratorRoute(GNECalibratorRoute *route)
add calibrator route
void removeCalibratorRoute(GNECalibratorRoute *route)
add calibrator route
double length() const
Returns the length.
std::vector< double > myShapeLengths
The lengths of the shape parts.
const std::string getID() const
function to support debugging
GNELane * myLane
The lane in which CalibratorLane are placed.
A road/street connecting two junctions (netedit-version)
void addCalibratorVehicleType(GNECalibratorVehicleType *vehicleType)
add calibrator vehicleType
Dialog for edit calibrators.
double myPositionOverLane
position over Lane
void addCalibratorFlow(GNECalibratorFlow *flow)
add calibrator flow
GNEAdditional * getAdditional(SumoXMLTag type, const std::string &id) const
Returns the named additional.
const PositionVector & getShape() const
returns the shape of the lane
const std::vector< GNELane * > & getLanes()
returns a reference to the lane vector
GNEEdge * changeEdge(GNEEdge *oldEdge, const std::string &newEdgeID)
change edge of additional
Position positionAtOffset(double pos, double lateralOffset=0) const
Returns the position at the given length.
An Element which don't belongs to GNENet but has influency in the simulation.
void moveGeometry(const Position &oldPos, const Position &offset)
change the position of the element geometry without saving in undoList
GNEEdge * myEdge
The edge in which Calibrators are placed.
GNENet * getNet() const
get the net object
void commitGeometryMoving(const Position &oldPos, GNEUndoList *undoList)
commit geometry changes in the attributes of an element after use of moveGeometry(...)
SumoXMLTag getTag() const
get XML Tag assigned to this object
Static storage of an output device and its base (abstract) implementation.
bool closeTag()
Closes the most recently opened tag.
double myFrequency
Frequency of calibrator.
void updateGeometry()
update pre-computed geometry information
static const RGBColor selectionColor
const std::vector< GNECalibratorFlow * > & getCalibratorFlows() const
get calibrator flows
const std::string & getParentName() const
Returns the name of the parent object.
double getLaneParametricLength() const
returns the parameteric length of the lane
GNELane * retrieveLane(const std::string &id, bool failHard=true, bool checkVolatileChange=false)
get lane by id
const std::vector< GNECalibratorRoute * > & getCalibratorRoutes() const
get calibrator routes
OutputDevice & openTag(const std::string &xmlElement)
Opens an XML tag.
GNELane * changeLane(GNELane *oldLane, const std::string &newLaneID)
change lane of additional
Position getPositionInView() const
Returns position of additional in view.