
Product
Announcing Precomputed Reachability Analysis in Socket
Socket’s precomputed reachability slashes false positives by flagging up to 80% of vulnerabilities as irrelevant, with no setup and instant results.
PyNavlib is a Python extension module that binds original C++ accessors of the 3Dconnexion Navigation Library into a Python code. The binding covers most of the C/C++ API defined within 3Dconnexion’s SDK header <SpaceMouse/CNavigation3D.hpp> and a minimal subset of propietary data types. It was created using pybind11 library.
The Navigation Library is a part of 3Dconnexion software. It is responsible for handling data exchange between the driver and a client application. The 3Dconnexion SDK provides C/C++ API to interact with the NavLib from within client application's code or plugin. From now on, with PyNavlib binding, it is also possible for the NavLib to be used by Python applications.
The package was released on PyPI and can be installed using pip.
pip install pynavlib
The package contains pre-built extension module responsible for binding C++ NavLib accessors to Python. The extension attempts to dynamically load the Navigation Library which is being installed on the system along with 3DxWare. The binding is accessible via interface module called pynavlib_interface.
from pynavlib import pynavlib_interface as pynav
PyNavlib's main class is called NavlibNavigationModel. It is a base class which provides an interface that has to be implemented by derived NavLib client class. The interface consists of setter and getter methods (no underscore preffixed), which are responsible for sending and receiving relevant 3D view data.
class NavlibClient(pynav.NavlibNavigationModel):
def get_camera_matrix(self) -> pynav.NavlibMatrix:
return pynav.NavlibMatrix()
def get_model_extents(self) -> pynav.NavlibBox:
return pynav.NavlibBox(pynav.NavlibVector(-10., -10., -10.), pynav.NavlibVector(10., 10., 10.))
def get_is_view_perspective(self) -> bool:
return False
...
def set_camera_matrix(self, matrix) :
matrix_as_list = matrix._matrix
print(f'set_camera_matrix:\n{matrix_as_list[0]}\n{matrix_as_list[1]}\n{matrix_as_list[2]}\n{matrix_as_list[3]}\n')
def set_view_extents(self, extents) :
_min = extents._min
_max = extents._max
print(f'set_view_extents: {[_min._x, _min._y, _min._z]}, {[_max._x, _max._y, _max._z]}')
def set_view_fov(self, fov) :
pass
...
To see the full set of overridable setter and getter methods refer to the pynavlib_interface.py source.
FAQs
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket’s precomputed reachability slashes false positives by flagging up to 80% of vulnerabilities as irrelevant, with no setup and instant results.
Product
Socket is launching experimental protection for Chrome extensions, scanning for malware and risky permissions to prevent silent supply chain attacks.
Product
Add secure dependency scanning to Claude Desktop with Socket MCP, a one-click extension that keeps your coding conversations safe from malicious packages.