| || |
Important : This whole site is horribly out of date.Years have passed and the PrydeWorX Library is a true library for a long time now. But much got in the way, like the elogind session tracker or Atomic Tanks.
However, much has been done, and if you are interested in the pwxLib project, then have a look at the git repository ; although the main work is done in the merger branch at the moment.
I'll update this site as soon as possible. (2017-09-17 ; Sven)
Welcome to the PrydeWorX Library Project
|This is a JBoH (Just a Bunch of Headers) library, that can be used to add some tools and utilities to your project - hopefully making your life as a programmer easier.|
Current Version: 0.8.3 - October 7th 2011 — (Download pwxLib-0.8.3.tar.bz2)
|There are four objects, six tools, two helper programs and one demo program included currently:|
- Objects :
A static object to create, open, modify and save configuration files. Besides many options to configure how a configuration file is handled, four presets are provided to simply set up cfg, ini, lst and rc files.
A statically instanciated class to generate containers of variable types. After construction the containers are maintained and all containers and their data are cleanly deleted on program exit. Containers can be generated, searched and deleted by data type or held values. Furthermore they can be added, substracted and merged with each other. (*)
A statically instanciated class to produce unique or pseudo random numbers, hashes and names.
A statically instanciated class which provides pre-calculated sine and cosine tables.
- Tools :
(*): It does not matter whether you include MRInterface.h or CMemRingFactory.h, both will ensure the existance of another.
This file adds program argument parsing function in the namespace pwx::args.
This file adds some defines and tool methods, functions and macros. They are used in all of the libraries objects, so if you include one of the objects, this file is always included as well.
This file defines the basic, trace generating exception for pwx projects.
This file adds some general mathematical helper functions.
This file adds a thread safe interface to MRF containers. (*)
This file defines some tools to work with streams.
- Helper Programs and demos :
All tools are built with "make tools", the executables can be found in the tools subfolder.
- getrn - getRandomName
This tool generates random names and prints them out on stdout or writes them to a text file.
- gravMat - gravitational Matter
This demo is a program that calculates the gravitation between a number of matter units, their movements and collisions. It renders and writes sequenced images that can be put together for a movie, with ffmpeg f.ex.
This is a small demo movie
Note: You need SFML to compile this demo!
- mkst - makeSimplexTexture
This tools provides a simple way to generate textures and bump maps out of Simplex Noise.
Note: You need SFML to compile this tool!
| || ||News|
|Struggling with Visual C++||2012-04-10|
|For some weeks now the new version is basically finished. I have stopped adding new features a while ago and am now struggling with Microsoft Visual C++ 2010. It was a big mistake not to check which features added by the C++11 standard actually are available with MSVC++. One of the most helpful new features, the new advanced initialization lists, aren't supported at all. GNU gcc does support them since version 4.4, thus Microsoft would support them, too, of course. How naive not to check, but I've solved that one already.|
The next issue is MSVC++10 suddenly failing to properly link mkst and gravMat, and I am even considering to drop the VC++ support now.
Last but not least it takes ages to render a new demo movie for gravMat due to the new physics system, which demands a calculation of every single second. My laptop can only calculate two or three seconds per second of runtime. I hope to be able to move the calculation to a stronger machine soon.
I have no idea how much longer it will take to bring the new release out. I just want to first try to fix all MSVC++ issues before dropping support, and that means I need time.
|The changes to gravMat lead to the neccessity to write a new system to calculate the whole system (workloop) and to change the saving format. This is a nightmare to test, because of my spare time being further reduced due to the large amount of work at my job at the moment. Therefore I'll need another two or three weeks to complete the upcoming version.|
Access to the current changes is possible here, and can be browsed here directly
|pwxLib-0.8.5 almost finished||2012-01-30|
|The planned changes on gravMat are almost finished. The program will be ready for testing within a week. I reckon to need two weeks for testing and debugging, thus pwxLib-0.8.5 should be ready by the end of February.|
|pwxLib-0.8.4 will be skipped!||2012-01-22|
|Today is my birthday, so I'll give me a two-sided present. The bad news is, that version 0.8.4, although it would be ready, will be skipped, to go straight for version 0.8.5. The good news is that this skip allows me to work on the planned changes already:|
This is really exciting for me, as gravMat will finally reached a state I have been dreaming of the last twenty years.
- Complete usage of MKS system, gravMat is ready for real physics now.
- By using real masses, mass units eventually have the appropriate color.
- Due to an addition to MathHelpers, the color of a mass unit can be frequency shifted according to its movement applying a Doppler effect.
|Merry Christmas 2012||24.-26.12.2011|
|I wish everyone a Merry Christmas and a Happy New Year 2012!|
The previous weeks have been very busy. After some corrections I have adressed the following points:
Only the finishing of the physics engine is needed for the next release of pwxLib. Therefore it should be finished in the first half of January.
- The render engine of gravMat has been rewritten. It is a simple raytracer now. (Demo with simple texturing)
This change allows halos to be rendered as illuminated dust spheres of varying density.
- Shockwave mode eventually works as planned.
- Because I wanted to create more suitable initial states, the dimensionless physics system is no longer sufficient. Therefore I am currently in the process of rewriting the physics engine to use correct and realistic units and values (MKS system of units) in every aspect.
- I have played around with LFS and have decided to write a littel fake root installer in C++ that uses sqlite3 for its package management. I have already automated the build of the LFS Toolbox, and want a small installer to be able to quickly set up test systems using VMware. Using gentoo only in conjunction with vmware-mount results in a very easy and fast process.
|<— older entries|