Giter VIP home page Giter VIP logo

vertesaur's People

Contributors

aarondandy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

vertesaur's Issues

need to remove the jetbrains reference

Would like to remove the jetbrains annotation reference so it does not clutter up user's projects. It may be possible to include the annotations in the code as internal but will need to confirm that their license will not conflict with vertesaur being under an MIT license.

typeconverter for coordinate types

Would be nice to implement type converters for coordinate types.

  • be mindful of culture issues
  • should overload tostring to accept cultureinfo

LINQ for geometry

LINQ methods for

  • adding vectors (sum)
  • computing an MBR
  • midpoint for points (average)
  • whatever else sounds good
  • union? (could get crazy)
  • intersect (similar complexity to union)

spheroid authalic sphere radius

would be nice to have an authalic sphere radius for all spheroids:

AuthalicRadius = A * Math.Sqrt((1.0 - (((1.0 - ESquared)/(2.0 * E))*Math.Log((1.0 - E)/(1.0 + E)))) / 2.0);

source: G7-2

angle to unit Vector2

It would be nice to easily create a unit Vector2 from an angle and get the angle of a Vector2. Static methods on Vector2?

New property: IsValid on ray/line

What if a line or ray has a direction of (0,0) or a direction or point of(NaN,NaN)? Should there be a new IsValid property or just let the numbers do their thing? Adding the IsValid property seems a little odd and messy so maybe it is best just to write a few tests to make sure we have consistent behavior for those situations.

Better exceptions

Go through all the thrown exceptions and make sure they are documented and create new exceptions as needed.

Look into merging Vector and Point

It may be good to merge Vector and Point into the same object... maybe. Think about it. This would be a major change as currently the Vector/Point difference is also important for disambiguation.

Namespace reorganization

It would be nice to change how namespaces are organzied. Also I don't really like the .Contracts namespace but I don't want a pile of interfaces everywhere.

generic/generation

Need to finish up the generic geometry and expression generation helpers for later use.

Cast all geometries to double representations.

It should be possible to convert/cast all vectors and points that are not of a double type to the double type. At least it should be possible to try as who knows what somebody would put into the generic version of vector/point.

Polygon triangulation

I already have some old C++ code for this somewhere.

  1. make monotone
  2. triangulate the parts

build nuget package

The current way I build my nuget packages is not so great. I would like it to be better:

  • Still use CI to build it
  • Include the symbols

serialization/deserialization

Need to serialize to JSON, XML, etc.

DO NOT serialize to GIS formats, that domain is not included within this library. This library should as much as possible support a GIS library rather then BE a GIS library.

I am not sure if this feature belongs in this library yet or not. I will think on it for a month.

floating point comparisons for zero

In some places within the code a 'zero' is detected when two values that are to be subtracted are found to be equal. With floating point it is possible for two values to result in 0 when subtracted when they are not equal. If it is important for the result to not be 0 then the actual result should be calculated and checked. This is especially prevalent in the segment, ray, and line code.

MBR as reference type

Explore if it would be OK to convert MBR to a reference type. If so this should be done.

Graph search

Graph search should be enhanced to provide heuristic support (A*) or depend on another graph search library.

Need some trees

Need to create some tree data structures to support indexing spatial data.

public fields to properties

Currently structs expose members as read-only public fields. It would be best to use properties but before a bug existed in the hit compiler that prevented inlining. I would like to run some tests and see if this is still the case. If not it may be good to change them to public T Thing { get; private set;} . Also code contracts can be used on these properties. Properties should be used for the generic case regardless I think.

remove strong naming

Due to upgrade issues strong naming should be removed. At first strong naming was considered to be compatible with use in a certain COM system but when you think about it the end goal is to be an alternative for building your own stuff.

convex hull

Add convex hull algorithms for:

  • Polygon
  • Ring
  • LineString
  • Multi*

interop

Would like to add some interop to other geometry libraries.

MBR scaling

Add a method to scale and MBR while preserving its centroid.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.