• For an object model with larger area, if there is a slight slope in the elevation data one edge may be floating or depressed.

    I had to extend the pylon piers well below grade to avoid floating pylon legs on steeper grades

    Well actually for such an example it'd be better to build the models with "legs". If we build the pylons with like a concrete rectangular or pyramidal leg underneath each foot, then they can be implemented at regular height, and the concrete footing will be more realistic too. We could have 2 versions, one with feet, and one without for flat land if that helps too, although I don't think 16 more polygons make a big difference.

    Same principle applies to many things, including houses. We could build a bottom as a concrete block, or some wooden pile structure. When on slopes then the structure would show. Cars will be more of an issue, we need a roll and pitch angle. Boats won't be an issue ;)

    My 2 cents.

  • Congratulations Stu,

    you developed a well thought through object definition. It contains all necessary direction and randomizing features I ever wished.

    Together with your examples they give a helpful directive how to uses them.

    Once I got home from my holliday I am eager to try them out.

    Also the new xref model class for sure will give great new possibilities to play with!

    Cheeers,

    Thomas

    Cheers, Thomas


  • Stu,

    I just wanted to say thank you for your ObjectGen with this picture.

    It uses the xref objects. They are extremely well in the near view!

    I am able to make such good looking sceneries. Impossible without it.

    Sorry for my long pause - I was very busy with the Turkey Point project.


    Also good for mooring boats in a row ...

    Cheers, Thomas


  • It is possible with the current release of ObectGen to place a building object at the "midpoint" of a building footprint.

    As with the scenProc FLENGTH the wayLength derived tag could be used to distinguish residential vs commercial.

    The random tag could be used to mix model types.

    Currently the objects would have random orientation.

    It is difficult to derive a meaningful orientation for an arbitrary polygon. If the way has 5 nodes it is a square or rectangle and an axis of orientation could be derived. But few houses are simple rectangles (particularly in NA housing developments).

    i7-6700K CPU @ 4.00GHz | ASUS Z170-A | 16Gb DDR4 | Samsung SSD 950 PRO NVME M.2 256GB | Samsung SSD 850 EVO 1TB | GeForce GTX 1080 Ti on GP102-A GPU | Oculus CV1 | Windows 10

  • Yep. Lots of reasons for find another solution for houses. Thanks for the discussion.

    Ray

    Hi Ray,

    That's why I use block data(land parcel), build a polygon within the the block (various sizes), street align the polygons.

    The second method, I use address points, create a polygon around address point (various sizes) and then align polygon with street.

    Handy cultivation tools

    Windows 10 64bit | iCore7-7770K| ASUS STRIX Z270E |KHX2400C15D4 - 32GB | Gigabyte Ge-Force GTX 1080Ti| SSD Intel 520 Series | 40" Philips BDM4065UC/75 4K - Oculus Rift

    Edited once, last by Kloot (May 11, 2019 at 1:57 AM).

  • Stu,

    could you please implement a command to set the name of the file(s) to save?

    Expecially since you generate a tsc AND a toc file. Renaming via script is no longer possible, as the tsc would not find its toc file anymore.

    And as every tsc must have a unique file name, it would be quite needed.

    As It is mostly called by a batch file, an optional argument %2 would be very handy.

    Cheers, Thomas


  • command to set the name of the file(s) to save?

    I overlooked the embedded name issue with the TOC.

    Since I use tile based cultivation with a folder for each tile, renaming was never an issue for me.

    No problem to add the output file name argument.

    i7-6700K CPU @ 4.00GHz | ASUS Z170-A | 16Gb DDR4 | Samsung SSD 950 PRO NVME M.2 256GB | Samsung SSD 850 EVO 1TB | GeForce GTX 1080 Ti on GP102-A GPU | Oculus CV1 | Windows 10

  • Updated ObjectGen with v0.7.1

    Minor release

    • Allow output file name as optional command line argument
    • Add support for negation of sparse tags eg ($highway == 'primary') #AND# ($tunnel #NEQ# 'yes')

    i7-6700K CPU @ 4.00GHz | ASUS Z170-A | 16Gb DDR4 | Samsung SSD 950 PRO NVME M.2 256GB | Samsung SSD 850 EVO 1TB | GeForce GTX 1080 Ti on GP102-A GPU | Oculus CV1 | Windows 10

  • Thank you Stu for the name parameter - it works easy and good.

    I have a request for parking density:

    In city you often have different density of parked cars, depending from the distance of the city core or a specific highlight.

    In the OSM parameters I could add an attribute to a parking_line, like parking_density 0.8 (for 80%).

    Could you implement a parameter, which controls the density depending from this OSM attribute?

    Currently we control it about a count, higher then the existing number of models.

    If we multiply the model count with the density factor, could it already work?

    Could you give an example?


    Stu, I had a complaint from a MAC user, that my sceneries are not compatible.

    He found out, that backslashes "\" are not understood and that he needs a "/" instead.

    In windows both versions seem to work.

    What do you think, to use in your future versions (examples and manual) the "/" instead?

    See also:

    https://softwareengineering.stackexchange.com/questions/2451…a-simple-replac

    Cheers, Thomas


    Edited once, last by TomSimMuc (May 18, 2019 at 9:13 AM).

  • Under Windows \ or / might both work and it does also not distinguish between capital letters and lower case letters in file names. This is where a lot of user sceneries break, because of the upper and lower case differences. If you are developing any kind of content for aerofly, please stick to lower case only otherwise Mac users and maybe even Linux, Android and iOS users won't be able to use it.

  • could it already work?

    There is currently no way to specify arithmetic operations on tags. The XSharper expression engine has that capability. I only exposed what was needed for boolean selection expressions.

    I need to think about a generic way to expose this.

    Under Windows \ or / might both work

    I had not placed any attention towards platform independence. I can update examples and documentation to forward slash and lower case.

    i7-6700K CPU @ 4.00GHz | ASUS Z170-A | 16Gb DDR4 | Samsung SSD 950 PRO NVME M.2 256GB | Samsung SSD 850 EVO 1TB | GeForce GTX 1080 Ti on GP102-A GPU | Oculus CV1 | Windows 10

  • I have a request for parking density:

    Thomas

    I have looked at the parking density issue. Adding a computed parameter is possible but is a can of worms I would rather not open right now.

    Particularly since there is a work around for this issue.

    All it requires is separate configurations for the few (3? 5??) different parking densities.

    Each configuration would have a selectionCondition expression with the appropriate parking_density value and randomInteger upperLimit.

    Using sharedModelMaps there will only be a dozen lines for each configuration.

    If there is a scenario that cannot be solved without numeric tag operations I can look at the issue again.

    /Stu

    i7-6700K CPU @ 4.00GHz | ASUS Z170-A | 16Gb DDR4 | Samsung SSD 950 PRO NVME M.2 256GB | Samsung SSD 850 EVO 1TB | GeForce GTX 1080 Ti on GP102-A GPU | Oculus CV1 | Windows 10

  • lenidcamper

    Hello Stu, can you tell please, what is wrong with my code?

    It only generates the standard name objects "pier_2_5", but does not trigger on the individual pier:width

    Cheers, Thomas


    Edited once, last by TomSimMuc (May 30, 2019 at 1:57 PM).

  • Hi Thomas

    A number of issues here

    At first I thought

    "Of course, you are not using the operator alias #GE# for >="

    The expression engine provides the alias/escape strings for operators to avoid special characters in XML. However >= will actually evaluate correctly.

    "<=" will give a syntax error. for consistency it is probably better to always use the alias strings

    The (...) construct is intended to define precedence in the expression. The ($pier:width) defeats my variable preload algorithm.

    I am parsing the expression into tokens on spaces to pick out variable names to preload before tag data is loaded. This avoids a "variable not defined" exception from the expression engine and allows the sparse tag negation functionality added in 0.7.1

    Use $pier:width #GE# '10' or ($pier:width #GE# '10')

    That lead me to the core problem. It appears there is a bug in the XSharper engine with comparison of left justified numeric values.

    ($height #LE# '90') will evaluate true for height tag value '100'

    but

    ($height #LE# ' 90') will evaluate to false

    I need to look under the hood of the XSharper engine to see if there is any way to fix this or find a workaround.

    /Stu

    PS

    what tag data are you comparing?

    zero padding will work.

    '090' will evaluate correctly compared with '100'

    where '90' will not.

    If you have added these tags using leading zero pad


    PPS

    turns out XSharper variables were defaulting to string type.

    need to detect tag datatype and force a cast to int or float as the variable is set.

    i7-6700K CPU @ 4.00GHz | ASUS Z170-A | 16Gb DDR4 | Samsung SSD 950 PRO NVME M.2 256GB | Samsung SSD 850 EVO 1TB | GeForce GTX 1080 Ti on GP102-A GPU | Oculus CV1 | Windows 10

    Edited 4 times, last by lenidcamper: pps (May 30, 2019 at 7:12 PM).