Code Monkey home page Code Monkey logo

zspace's Introduction

ZSPACE

GitHub license Documentation GitHub Releases GitHub Issues

ZSPACE is a C++ library collection of geometry data-structures, algorithms and city data visualization framework. It is implemented as a header-only C++ library, whose dependencies, are header-only or static libraries. Hence ZSPACE can be easily embedded in C++ projects.

Optionally the library may also be pre-compiled into a statically or dynamically linked library, for faster compile times.

Citing

If you use the library of ZSPACE in a project, please refer to the GitHub repository.

@misc{zspace-framework,
title = {{zspace}: A simple C++ header-only collection of geometry data-structures, algorithms and city data visualization framework.},
author = {Vishu Bhooshan and Shajay Bhooshan and others},
note = {https://github.com/venumb/ZSPACE},
year = {2018},
}

License

The library is licensed under the MIT License.

Third party dependencies

The library has some dependencies on third-party tools and services, which have different licensing as listed below. Thanks a lot!

  • OPENGL for display methods. End users, independent software vendors, and others writing code based on the OpenGL API are free from licensing requirements.

  • Eigen for matricies and related methods. It is an open source project licensed under MPL2.

  • Spectra for large scale eigen value problems. It is an open source project licensed under MPL2.

  • Armadillo for matricies and related methods. It is an open source project licensed under Apache License 2.0.

  • Alglib free edition for linear programming optimisation methods.

  • JSON for Modern C++ to create a JSON file. It is an open source project licensed under MIT License.

  • SQLITE for SQL database engine. It is an open source project dedicated to the public domain.

  • LodePNG for creating PNG images. It is a project licensed under ZLIB License.

  • TooJPEG for creating JPEG images. It is a project licensed under ZLIB License.

zspace's People

Contributors

cafragachan avatar fedebocode avatar leo-bieling avatar venumb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

gitzhcode

zspace's Issues

zFnMeshField.getIndex

image

getIndex seems to have an offset ?
white = query points, blue = field point at index returned.

loading multiple BMP into already created zMeshField object

I was trying to iteratively load BMP and get isoContour.
Code works, but ZFnMesh creates new arrays everytime From() method is called.

//ZfnMeshField.h
template<>
inline void zFnMeshField::fromBMP(string infilename)
{
zUtilsBMP bmp(infilename.c_str());

	uint32_t channels = bmp.bmp_info_header.bit_count / 8;

	int resX = bmp.bmp_info_header.width;
	int resY = bmp.bmp_info_header.height;

	if (resX == 0 || resY == 0) return;

	
	create(1, 1, resX, resY,zVector(),1,setValuesperVertex);

// can this line check if there already exists arrays,
// such that we can update the arrays with the contents of a new BMP file ?

getting directory contents, ordered by time of creation

////////// maybe you want to add this to the ZUtils header ?

#include
using namespace fs;

bool compare_time_creation(const path& first, path& second)
{
auto timeFirst = fs::last_write_time(first);
time_t cftimeFirst = chrono::system_clock::to_time_t(timeFirst);

auto timeSec = fs::last_write_time(second);
time_t cftimSec= chrono::system_clock::to_time_t(timeSec);

return (timeFirst < timeSec);

}

void getFilesFromDirectory( vector &FilePaths, zFileTpye fileType = zBMP,string dirPath = "data/" )
{

list<path>file_paths;

string extension;
if(fileType == zBMP)extension = ".bmp";

for (const auto & entry : fs::directory_iterator(dirPath))
		if ( (entry.path().extension()) == extension)file_paths.push_back(entry.path());


///------------------------------------------------
file_paths.sort(compare_time_creation);

list<path>::iterator it;
for (it = file_paths.begin(); it != file_paths.end(); ++it)FilePaths.push_back(*it);

}

zTsShortestPath.h

line :558
do
{
int nextId = parent[id];
if (nextId != -1)
{
// get the edge if it exists
int eId;
bool chkEdge = fnHE.edgeExists(id, nextId, eId);

			if (chkEdge)
			{
				// update edge visits
				edgePath.push_back(eId); ***

			}
		}

should be tmpEdgePath ?
otherwise, edgePath will return empty..

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.