GeometricTools | source code for computing in the fields of mathematics | Graphics library

 by   davideberly C++ Version: GTE-version-6.6 License: BSL-1.0

kandi X-RAY | GeometricTools Summary

kandi X-RAY | GeometricTools Summary

GeometricTools is a C++ library typically used in User Interface, Graphics applications. GeometricTools has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. You can download it from GitHub.

The Geometric Tools Engine is a collection of source code for computing in the fields of mathematics, geometry, graphics, image analysis and physics. The engine is written in C++ 14 and supports high-performance computing using CPU multithreading and general purpose GPU programming (GPGPU). Portions of the code are described in various books as well as in PDF documents available at the Geometric Tools Website. The Geometric Tools Engine is licensed under the Boost Software License 1.0.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              GeometricTools has a medium active ecosystem.
              It has 798 star(s) with 146 fork(s). There are 59 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              There are 7 open issues and 41 have been closed. On average issues are closed in 10 days. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of GeometricTools is GTE-version-6.6

            kandi-Quality Quality

              GeometricTools has 0 bugs and 0 code smells.

            kandi-Security Security

              GeometricTools has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              GeometricTools code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              GeometricTools is licensed under the BSL-1.0 License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              GeometricTools releases are not available. You will need to build from source code and install.
              Installation instructions are available. Examples and code snippets are not available.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of GeometricTools
            Get all kandi verified functions for this library.

            GeometricTools Key Features

            No Key Features are available at this moment for GeometricTools.

            GeometricTools Examples and Code Snippets

            No Code Snippets are available at this moment for GeometricTools.

            Community Discussions

            QUESTION

            Euler angles in Three JS not as expected for simple box Mesh
            Asked 2021-Jun-25 at 16:30

            I have a box in the global axis system XYZ, and I want to rotate to a new axes system X'Y'Z'

            Vectors for the new axes are:

            ...

            ANSWER

            Answered 2021-Jun-25 at 16:30

            (answer to my own question below, not very usefull, but just adding it to close the post)

            my mistake was unrelated to three.js, during testing I was using hardcoded angle values from excel, and it turns out BOOGTAN2 (= ATAN2) in excel switches the x/y parameters in comparison to javascript :( which is why the rotations where not doing what I wanted, but at least issue is resolved for me

            Source https://stackoverflow.com/questions/68129513

            QUESTION

            Finding vertexes for construction of minimum size bounding box / convex hull
            Asked 2020-Feb-24 at 23:53

            I have an array of data from a grayscale image that I have segmented sets of contiguous points of a certain intensity value from.

            Currently I am doing a naive bounding box routine where I find the minimum and maximum (x,y) [row, col] points. This obviously does not provide the smallest possible box that contains the set of points which is demonstrable by simply rotating a rectangle so the longest axis is no longer aligned with a principal axis.

            What I wish to do is find the minimum sized oriented bounding box. This seems to be possible using an algorithm known as rotating calipers, however the implementations of this algorithm seem to rely on the idea that you have a set of vertices to begin with. Some details on this algorithm: https://www.geometrictools.com/Documentation/MinimumAreaRectangle.pdf

            My main issue is in finding the vertices within the data that I currently have. I believe I need to at least find candidate vertices in order to reduce the amount of iterations I am performing, since the amount of points is relatively large and treating the interior points as if they are vertices is unnecessary if I can figure out a way to not include them.

            Here is some example data that I am working with:

            Here's the segmented scene using the naive algorithm, where it segments out the central objects relatively well due to the objects mostly being aligned with the image axes:

            .

            In red, you can see the current bounding boxes that I am drawing utilizing 2 vertices: top-left and bottom-right corners of the groups of points I have found.

            The rotation part is where my current approach fails, as I am only defining the bounding box using two points, anything that is rotated and not axis-aligned will occupy much more area than necessary to encapsulate the points.

            Here's an example with rotated objects in the scene:

            Here's the current naive segmentation's performance on that scene, which is drawing larger than necessary boxes around the rotated objects:

            Ideally the result would be bounding boxes aligned with the longest axis of the points that are being segmented, which is what I am having trouble implementing.

            Here's an image roughly showing what I am really looking to accomplish:

            You can also notice unnecessary segmentation done in the image around the borders as well as some small segments, which should be removed with some further heuristics that I have yet to develop. I would also be open to alternative segmentation algorithm suggestions that provide a more robust detection of the objects I am interested in.

            I am not sure if this question will be completely clear, therefore I will try my best to clarify if it is not obvious what I am asking.

            ...

            ANSWER

            Answered 2020-Feb-24 at 23:53

            It's late, but that might still help. This is what you need to do:

            1. expand pixels to make small segments connect larger bodies
            2. find connected bodies
            3. select a sample of pixels from each body
            4. find the MBR ([oriented] minimum bounding rectangle) for selected set

            For first step you can perform dilation. It's somehow like DBSCAN clustering. For step 3 you can simply select random pixels from a uniform distribution. Obviously the more pixels you keep, the more accurate the MBR will be. I tested this in MATLAB:

            Source https://stackoverflow.com/questions/60307588

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install GeometricTools

            The repository contains many sample applications to illustrate some features of the engine. Top-level solutions/makefiles exist to build everything in the repository. Please read the installation and release notes to understand what is expected of your development environment.

            Support

            The mathematics code is in a header-only library, GTMathematics. A mathematics library with GPU-based implementations is provided, GTMathematicsGPU. The CPU-based common graphics engine code is in its own library, GTGraphics. DirectX 11 wrappers are provided for graphics and applications, GTGraphicsDX11 and GTApplicationsDX11, on Microsoft Windows 10/11. OpenGL 4.5 wrappers are provided for graphics and applications, GTGraphicsGL45 and GTApplicationsGL45, on Microsoft Windows 10/11 and on Linux. A small number of files exist to use GLX and X-Windows on Linux. On Microsoft Windows 10/11, the code is maintained using Microsoft Visual Studio 2019/2022 with Microsoft's compilers, LLVM clang-cl or with Intel C++ Compiler 2022. On Ubuntu 20.04.1 LTS, the code is maintained using Visual Studio Code 1.49.2 and CMake 3.15.2, NVIDIA graphics drivers, OpenGL 4.5 and gcc 9.3.0,. On Fedora 35, the code is maintained using Visual Studio Code 1.49.2 and CMake 3.18.3, NVIDIA graphics drivers, OpenGL 4.5 and gcc 11.2.1.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/davideberly/GeometricTools.git

          • CLI

            gh repo clone davideberly/GeometricTools

          • sshUrl

            git@github.com:davideberly/GeometricTools.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link