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 Tom Goddard, 8 years ago

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.

comment:2 by Eric Pettersen, 8 years ago

Component: UnassignedCore

comment:3 by Zach Pearson, 3 years ago

Owner: changed from Tom Goddard to Zach Pearson

comment:4 by Tom Goddard, 3 years ago

Cc: Tom Goddard 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.

Note: See TracTickets for help on using tickets.