﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	blockedby	blocking	notify_on_close	platform	project
944	RFE: molc-style API for custom C++ objects	Tristan Croll	Tom Goddard	"I'm getting around to something I've been putting off for a while: developing C++ implementations of the various array objects I need in ISOLDE (in particular, dihedrals, rotamers and possibly restraint targets). At present I have moderately-workable Python implementations (slow to set up, fast to use, but not at all robust to addition/deletion of atoms etc.). What I should be doing (and want to do) is make these use essentially the same framework as Atom, Bond, Residue etc. Looks like I can do it by copy-pasting and adapting bits from molc.cpp, molc.py, molobject.py and molarray.py. But it's a really neat and robust scheme you have, and I think it would be really useful if it were adapted into a proper API for future plugin developers. That is, creating a generic header/cpp with all the base methods from molc.cpp, and turning the contents of molc.py into a class. Unless I misunderstand, at present molc.py is inherently limited to the use of a single C++ library for a given session, since _molc_lib is a global variable set by c_function().

I'm also struggling to trace through how the automatic deletion system (e.g. deleting a bond when one of its atoms is deleted), and whether it's possible for me to make use of this for new, not-built-in types. Is there documentation on this aspect anywhere?

As an example of what I'm trying to do, I'll attach the progress I've made today on putting together a C++ dihedral implementation. It compiles, but I haven't gotten as far as connecting it through to Python yet. That I'm pretty sure I can do, but I'd be very grateful for any pointers on connecting it to the ChangeTracker and DestructionCoordinator systems."	enhancement	closed	moderate		Core		fixed		Eric Pettersen				all	ChimeraX
