{ "info": { "author": "Adamos Kyriakou", "author_email": "somada141@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "pycaster\n========\n\n|wercker status|\n\nBackground\n----------\n\n``pycaster`` is a simple single-module package (module also called\n``pycaster``) which contains a ``rayCaster`` class. This class allows\nfor ray-casting operations to be performed on any mesh represented by a\n'vtkPolyData' object.\n\nThe ``rayCaster`` class acts as a wrapper of the ``vtkOBBTree`` class\nand uses perform ray-casting. It can calculate the coordinates of the\nentry/exit points between the ray and the surface. It can in addition\ncalculate the distance a ray travels within the closed section of the\nsurface, i.e., within the solid.\n\nThe class features a static method 'fromSTL' which allows for it to be\ninitialized directly from an STL file which it loads and extracts the\npolydata from initializing the ray-caster.\n\nDocumentation\n-------------\n\nNo extensive documentation of ``pycaster`` was written due to its\nsimplicity.\n\nExamples: IPython Notebooks\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nTwo IPython Notebooks were written demonstrating the usage of\n``pycaster`` on STL models:\n\n- A notebook demonstrating the usage of ``pycaster`` on the STL model\n of a hollow sphere can be found\n `here `__\n (with the STL file being available\n `here `__).\n- A very similar notebook to the above, with the sole exception being\n operating on the STL model of a human skull extracted from CT data\n can be found\n `here `__\n while the corresponding STL file is available\n `here `__.\n\nUsage Example\n-------------\n\nIn a nutshell using ``pycaster`` it would go as such:\n\n::\n\n from pycaster import pycaster\n\n # Create a new rayCaster object through the 'fromSTL' static-method thus loading\n # the STL file 'sphereHollow.stl' and creating a new rayCaster under 'caster'\n caster = pycaster.rayCaster.fromSTL(\"sphereHollow.stl\", scale=1.0)\n\n # Set the source and target coordinate of the ray\n pSource = [-50.0, 0.0, 0.0]\n pTarget = [50.0, 0.0, 0.0]\n\n # Use the 'castRay' method of the 'rayCaster' class to intersect a ray/line with\n # the surface and return a list of coordinates, i.e., the intersection points\n pointsIntersection = caster.castRay(pSource, pTarget)\n\n # Use the calcDistanceInSolid to calculate the distance the ray 'travels' within\n # the surface\n caster.calcDistanceInSolid(pSource, pTarget)\n\nRequirements\n------------\n\nvtk >= 5.10.1 nose >= 1.3.3\n\nPython 3.x Support\n~~~~~~~~~~~~~~~~~~\n\nAt the time of writing ``pycaster`` cannot function with Python 3.x as\nthe VTK Python bindings have not been ported to Python 3.x. However,\n``pycaster`` has been extensively tested with different Python 2.7.x\nversions.\n\nInstallation\n------------\n\nThis package is already hosted on PyPI\n`here `__ and can be easily\ninstalled through pip as such:\n\n::\n\n pip install pycaster\n\nor straight from the source-code using ``setuptools`` as such:\n\n::\n\n python setup.py install\n\nHowever, given the ``vtk`` requirement of ``pycaster`` which doesn't\nalways build easy with pip I strongly suggest the following:\n\n- Use an Anaconda python distro. I've written a blog post about the\n advantages it offers\n `here `__.\n- Install the dependencies with ``conda`` (see the aforementioned post)\n- Install ``pycaster`` with ``pip`` while skipping the dependencies as\n such:\n\n::\n\n pip install pycaster --no-deps\n\nTesting & CI\n------------\n\n``pycaster`` comes with tests written with ``unittest`` and\nbatch-executed with ``nose``. The distribution also comes with several\n.stl files used for testing the different aspects of the package. After\ninstallation you can easily run those tests from within a python session\nwith the following code:\n\n::\n\n\n from pycaster.test import test_all\n test_all.runTests()\n\nEvery commit of ``pycaster`` is being built and tested on the\n`Wercker `__ CI system. The application is public\nand can be accessed through either clicking on the wercker badge at the\ntop of this page or through\n`this `__\nlink.\n\n.. |wercker status| image:: https://app.wercker.com/status/fa548d6a19af54cd14cec18310ac0844/m\n :target: https://app.wercker.com/project/bykey/fa548d6a19af54cd14cec18310ac0844\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/somada141/pycaster", "keywords": "", "license": "LICENSE.txt", "maintainer": "", "maintainer_email": "", "name": "pycaster", "package_url": "https://pypi.org/project/pycaster/", "platform": "", "project_url": "https://pypi.org/project/pycaster/", "project_urls": { "Homepage": "https://bitbucket.org/somada141/pycaster" }, "release_url": "https://pypi.org/project/pycaster/0.1.1/", "requires_dist": null, "requires_python": "", "summary": "A Python package which uses VTK to perform ray-casting", "version": "0.1.1" }, "last_serial": 3754979, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "e523c94a2941499a038c56cc018858a8", "sha256": "b84c46aaa622460e78a623ae65838847537df7cfb856e355d181ac3328acaa27" }, "downloads": -1, "filename": "pycaster-0.0.1.tar.gz", "has_sig": false, "md5_digest": "e523c94a2941499a038c56cc018858a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 107207, "upload_time": "2014-09-12T04:32:36", "url": "https://files.pythonhosted.org/packages/91/c6/c4da4a8a20684702eb9543b0555b28b749a46f9ee483cdbf499500c9d39a/pycaster-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "37716b64f0005340ed015a3551e21d52", "sha256": "38c6ac6c31e1a9b442edd76c9e6cb0383f776cf92daf613d82f2559a563a233a" }, "downloads": -1, "filename": "pycaster-0.0.2.tar.gz", "has_sig": false, "md5_digest": "37716b64f0005340ed015a3551e21d52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 107400, "upload_time": "2014-09-12T05:33:11", "url": "https://files.pythonhosted.org/packages/77/e4/9dea7747fdd2ffdc8020a195ef3c6fd8c2eab010902fd06b2afcd99892e8/pycaster-0.0.2.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "b9bcef7df2124de7f85b5090c7370c4f", "sha256": "367c0369311c1adee842ed15a8475a1bcb7c594784836a580588320b13604eb8" }, "downloads": -1, "filename": "pycaster-0.1.0.tar.gz", "has_sig": false, "md5_digest": "b9bcef7df2124de7f85b5090c7370c4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 111321, "upload_time": "2014-09-15T08:33:59", "url": "https://files.pythonhosted.org/packages/6a/8e/1b32e75f60379d981c06fee40926732b4e38eaaeefd8b8029066a9fc0dc3/pycaster-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "65aa3c08665d7df1d5d42ea3e64c5688", "sha256": "b742c1f0a2eff36dc62dfdf57377ce3c05a909254bb21b682f82fe69d9cb9103" }, "downloads": -1, "filename": "pycaster-0.1.1.tar.gz", "has_sig": false, "md5_digest": "65aa3c08665d7df1d5d42ea3e64c5688", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 111081, "upload_time": "2018-04-11T10:06:23", "url": "https://files.pythonhosted.org/packages/c2/a3/b8162d52f7f0244f73bb73a30199fd4bd4cb4b70629a5f4c61a3222fef76/pycaster-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "65aa3c08665d7df1d5d42ea3e64c5688", "sha256": "b742c1f0a2eff36dc62dfdf57377ce3c05a909254bb21b682f82fe69d9cb9103" }, "downloads": -1, "filename": "pycaster-0.1.1.tar.gz", "has_sig": false, "md5_digest": "65aa3c08665d7df1d5d42ea3e64c5688", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 111081, "upload_time": "2018-04-11T10:06:23", "url": "https://files.pythonhosted.org/packages/c2/a3/b8162d52f7f0244f73bb73a30199fd4bd4cb4b70629a5f4c61a3222fef76/pycaster-0.1.1.tar.gz" } ] }