javedulu / ad-xolib Goto Github PK
View Code? Open in Web Editor NEWC++ library for Parsing OpenScenario (1.2) & OpenDrive files (1.7) ASAM Specifications
License: MIT License
C++ library for Parsing OpenScenario (1.2) & OpenDrive files (1.7) ASAM Specifications
License: MIT License
In the original build step, the command cmake . --target build
will do nothing anything after cmake . -B build
, and will not build the python binding. Besides, cmake . -B build
will create the build folder automatically and there is no need to manually create the folder.
The correct building commands should be:
git clone https://github.com/javedulu/ad-xolib.git
cd ad-xolib
git submodule update --init --recursive
cmake . -B build
cmake --build build
Please check.
First things first: Thank you for sharing this useful library! :)
Unfortunately I'm running into a build error, no matter if I use the header files directly in my C++ project or if I build the project via cmake.
I got the following error messages:
xodr.h(30): error C2971: ' t_patternstr': template parameter 'pattern': 'e_countryCode_iso3166alpha2_pattern': a variable with non-static storage duration cannot be used as a non-type argument
\xosc.h(27): error C2971: ' t_patternstr': template parameter 'pattern': 'parameter_pattern': a variable with non-static storage duration cannot be used as a non-type argument
For my own C++ project I'm using Qt 5.14.1 MSVC2017 64bit with C++17 standard.
For the cmake build I used the following commands (--target was not working for me):
cd 'path-to-OpenDriveScenarioParser'
mkdir build
cmake . -B build -G "Visual Studio 15 2017 Win64"
cmake --build build
I'm very curious to know where the error comes from. Apparently it has not occurred so far?!
Hello again,
the following is already solved and therefore just for your information - maybe you want to include these information in one of your next commits. :)
I registered two pretty small errors while compiling the xosc.h-file with MSVC2017 64 bit.
At line 138:
enum class e_ReferenceContext : std::uint8_t
{
ABSOLUTE, //absolute
RELATIVE //relative
};
The enumerations ABSOLUTE
and RELATIVE
seems to be already defined in MSVC. After changing them to ABSOLUTE_
and RELATIVE_
the error was solved.
At line 3054:
struct Polyline
{
/**/
public:
Polyline(){};
Polyline(pugi::xml_node node);
void save(pugi::xml_node node);
virtual ~Polyline(){};
public:
std::vector<std::shared_ptr<Vertex>> m_Vertexs; //xs:element
};
The class name Polyline is already defined as a function in wingdi.h (Windows). I assume, that this is also linked to the MSCV compiler. I changed Polyline
to Polyline_
and compiled without error.
Of course I also changed every occurrence of the changed enumerations and the Polyline class.
Again, thank you for your very useful library!
Stay healthy
Thanks a lot for your helpful project. I've cloned the repository and its submodules, but there is no file like "xodr_export.h" detectable within the project (but it is used in "xodr.h"). Is this an issue from cloning or is there an other workaround to get access to this file?
But as I digged a little bit deeper into the "lane" properties, I found out that lane only has an ODR-member "id". All the other members (type, width, roadMark, etc.) are missing.
Here is a snippet from python:
dir(ax.OpenDRIVE.road[1].lanes.laneSection[0].left.lane[0])``
['class', 'delattr', 'dir', 'doc', 'eq', 'format', 'ge', 'getattribute', 'gt', 'hash', 'init', 'init_subclass', 'le', 'lt', 'module', 'ne', 'new', 'reduce', 'reduce_ex', 'repr', 'setattr', 'sizeof', 'str', 'subclasshook', 'id']
IMHO, I think the problem is when defining the pybind, there is no link to the class t_road_lanes_laneSection_lr_lane
from t_road_lanes_laneSection_left/right/center_lane
When parsing some of the xodr-examples in the samples folder using pyxodr, I found that that the lane object does only contain "id" as member.
I could imagine that, when creating the python bindings, the "relationship" between the lane object and its inherited class, that carries the missing objects, gets broken.
Looking forward to your OpenDrive & OpenScenario editor very much. When will it meet us.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.