~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Vladimir A. Smirnov, kkatarn@sleepgate.ru (smirnov@nocnt.ru) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ TODO: under 64-bit env (FreeBSD): mp3 decoder broken, *.zip file handling broken. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 11 aug 2010: initial parallel implementation for old psmod. UPD: waiting at contitions takes too much time, consider to use spinlocks. 20 aug 2010: numerous changes in camctl.c - fixed to use new antiglut-style event names & handling. working. changed proto of vglReadPixels() - must pass width & height. not debugged. fixed strToFloat(). works both with '.' and ',', regardless of system locale settings. (TODO change for presence of both ',.' and use heuristics to determine the meanings of them). TODO (64-bit env, FreeBSD): objLoad broken? (64-bit); fix face loading code. bgi font loader broken. 23 aug 2010: obj loading code: seems to be Ok (debugged under Win32), get rid of 'triangle list' code at all. 11 nov 2010: merged code used for modeling frame composites and radiation heating. 18 nov 2010: minor changes in psmod. 20 apr 2011: minor changes in ipl 30 jun 2011, 07 jul 2011: changes in psmod, added --nodraw. FIXME: rewrite it completely. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 09 nov 2011 For the purpose of porting some modeling code: 1) rangen.c, v_rgen.h - changes in ranInitState(), added ranDirection(), ranNextGaussianVec2(). 2) spatial.c, v_space.h - removed vec3FromLineAndPlane(), added vec3InsideSphere(), plane3FromOriginNormal(), vec3FromLinePlane(), /* new one handles all possible positions */ line3CommonVertical(), segCrossing(). 3) added glvu.c and v_glvu.h in source tree, added bboxDraw(); changes in file names, mksrclist.bat. 10 nov 2011 4) numerous bugfixes in math code - had to enable macros again (function calls slows some code twice). No more v_fsincos. 11 nov 2011 Porting the toy program used for article http://sc.sleepgate.ru/2011/razmernyje The example will be transformed into full-blown command-line modeling tool. 13 nov 2011 The rewrite is near the end. Should implement some kind of postprocessing. Added functionalily for domain check in lexNextFloat() / lexLastFloat(): 1) enum for lexEnable(), lexDisable(): LEX_FP_DOMAIN_CHECK. 2) positive: lexSetInteger(lex, LEX_FP_DOMAIN, LEX_FP_DOMAIN_POSITIVE); /* unimplemented: 3) negative: lexSetInteger(lex, LEX_FP_DOMAIN, LEX_FP_DOMAIN_NEGATIVE); 4) nonzero: lexSetInteger(lex, LEX_FP_DOMAIN, LEX_FP_DOMAIN_NONZERO); 5) nonpositive: lexSetInteger(lex, LEX_FP_DOMAIN, LEX_FP_DOMAIN_NONPOSITIVE); 6) nonnegative: lexSetInteger(lex, LEX_FP_DOMAIN, LEX_FP_DOMAIN_NONNEGATIVE); * * ... or, better: add lexSetFloat(LEX_FP_REFERENCE_VALUE), * lexSetInteger(LEX_FP_DOMAIN_CHECK_PASS, LEX_FP_E / ...) */ Both lexNextFloat() and lexLastFloat() are moved from "user space" to "LibV space" (though all checks can be performed in "user space"). 13 nov 2011, 23:00 MSK: rewrite have been completed. See demos/math/cmo.c. 14 nov 2011: minor bugfixes and cleanups, added time estimation facility. The code is still completely unparallelized. 15 nov 2011: the example is in. TODO: fix genparse.c::parseIterator(). 19 nov 2011: the program is prooved to be usefull. Last TODO: parallel implementation (task sorting by esimated execution time and/or splitting the contact matrix). ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 31 may 2012 Added HSVA colorspace to IPL. Minor changes in bittrans.c TODO: Adding-colorspace-HOWTO (in fact, will be very short) Ancient xvid code removed from tree. TODO: update zlib. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 09 jul 2012 LibV can be compiled by mingw64 gcc 4.6 under NT 5.2. Code NOT tested. 02 oct 2012 psmod.alpha.GRA backport from 2011 branch. Should check the '-broken' branch! UPD: the problem is NOT in -broken! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ may-june 2013: Several important changes in psmod. The computation can now be resumed. Extra checks are added. If there is no spherical shell, some code paths avoided. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2018-2019: changes in dir tree, numerous changes in psmod. As of current, "parallel" branches are completely removed. The old method (splitting the contact matrix) is useless. Cutoff is used for pairwise interataction. "deltaz" is removed from alpha version. Controllers are used in beta. Density of environment is taken into account in unary_accel() (alpha), so there is no need for extra "gravity" controller. Per-particle dglue - either constant of radius-dependent (alpha, beta). Per-particle paiwise. New syntax. New parser (all in beta).