Opened 8 years ago
Last modified 3 years ago
#1057 assigned enhancement
Provide C++ API to _geometry functions
Reported by: | Tristan Croll | Owned by: | Zach Pearson |
---|---|---|---|
Priority: | moderate | Milestone: | |
Component: | Core | Version: | |
Keywords: | Cc: | Tom Goddard | |
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
Most of the headers in core.geometry._geometry provide extern "C"
Python function definitions only. Of course, lots of the functions can be trivially implemented elsewhere, but it would be great to be able to call the more complex ones (e.g. find_close_points
) from the C++ layer.
Change History (4)
comment:1 by , 8 years ago
comment:2 by , 8 years ago
Component: | Unassigned → Core |
---|
comment:3 by , 3 years ago
Owner: | changed from | to
---|
comment:4 by , 3 years ago
Cc: | added |
---|
When you switch owners on a ticket best to put the previous owner on the cc list.
The request in this ticket should probably not be implemented. The runtime linking is already bad enough in ChimeraX because we are doing something that is never done in Python packages, C++ runtime linking to other Python packages.
Seems reasonable. The C++ routines generally take arguments that are C++ Array<> template class instances for multidimensonal arrays that are defined in ChimeraX libarrays, code core/array_cpp/rcarray.h. Not sure that is the most convenient interface for external bundles. Might be better to provide a more minimal API that accepts for example an N x 3 array of floats as a float pointer, length N, and possibly strides along the two axes if the the array is not contiguous. In any case linking to _geometry is going to require also linking libarrays unless a big code reorganization is done.