|
From: Geoff H. <ghu...@ws...> - 2003-07-02 16:58:44
|
> Add a boolean argument to ConnectTheDots to force searching for bonds > when called from formats such as xyz which don't have bond structure. > If > this new parameter has a default value, code will not have to be > chnaged > for other formats. I think there are two solutions, and that's one part of it. - As you said, we need to add options to the ReadFoo() methods that turn off calls to different perception routines like ConnectTheDots(), PerceiveBondOrders(), Kekulize(), etc. (Which Michael has been talking about for a while.) - We also need a way of marking a set of coordinates as coming from a 2D or 3D file format. (Which Peter has been suggesting for a long time.) So there would be an OBMol::Is2D() call. IMHO, the second is the best way to solve this particular problem, but both bits are needed soon. Since there are some formats that include both 2D and 3D structures (e.g. CML), I'm going to add methods to mark the dimension of a conformation and to retrieve a "preferred" 2D or 3D conformation. (The default, of course, should be that the preferred 3D conformation is output.) Example: std::vector<bool> _vconf3D; //! Vector for conformation dimensionality bool Is2D(int i = OB_CURRENT_CONFORMER); bool Is3D(int i = OB_CURRENT_CONFORMER); void SetToPreferred2DConformer(); void SetToPreferred3DConformer(); ... -Geoff |