57 Commits

Author SHA1 Message Date
Jarrett Johnson
fafebb56d3 Improve peptide nucleic acid visualization
Fixes #187
2026-03-10 22:28:14 -04:00
Jarrett Johnson
173f174c04 PYMOL-5439: Support cyclic peptide visualization in cartoons 2026-03-10 22:02:47 -04:00
Jarrett Johnson
83f11bc317 More Replace NULL with nullptr 2024-06-02 20:44:43 -04:00
Jarrett Johnson
fbfda4a257 Replace NULL with nullptr 2024-05-20 09:07:33 -04:00
Jarrett Johnson
195f4d18d7 Address some compilation errors 2024-05-11 01:07:07 -04:00
Thomas Holder
006645fad5 Fix crash when loading discrete object (#261)
Follow-up on "PYMOL-3840 Fix cartoon rep memory init"
682572b978
2022-10-05 21:41:48 -04:00
Jarrett Johnson
682572b978 PYMOL-3840 Fix cartoon rep memory init
Fix #234

Commit that introduced bug: e4856c2fe4026d69b768190a3ff144873a199189
2022-05-04 15:54:44 -04:00
Jarrett Johnson
74894e01da Generic CGO Render 2022-03-08 15:16:16 -05:00
Jarrett Johnson
2cc253782b PYMOL-3168 Remove dashes when cartoon hidden 2022-02-22 16:32:57 -05:00
Jarrett Johnson
07d7a790f0 Forward decls/Move headers to source 2021-08-20 11:24:10 -04:00
Thomas Holder
10af8bd0b9 Refactor ObjectMolecule::Neighbor access
- Make ObjectMolecule::Neighbor private
- Use AtomNeighbors or ObjectMolecule::getNeighborArray
- Eliminate ObjectMoleculeUpdateNeighbors
2021-04-28 04:34:33 -04:00
Thomas Holder
5308f66381 Refactor: ITERNEIGHBORATOMS -> AtomNeighbors 2021-01-14 15:31:38 +01:00
Thomas Holder
dc2aff4133 Refactor: Doxygen comments, ObjectMoleculeUpdateNeighbors
- Use proper doxygen syntax for all function comments
- ObjectMoleculeUpdateNeighbors allow const argument
- Remove obsolete ObjectMolecule::BondCounter
2021-01-14 15:23:06 +01:00
Thomas Holder
68a18a3e09 CoordSet refactoring/cleanup
- Remove unused CoordSet::appendIndices()
- Simplify ObjectMoleculeDummyNew
- Simplify ObjectMoleculeSort
- Turn atom_state_setting_id into a method
- Consolidate CoordSetAdjustAtmIdx and CoordSetPurge
- Convert IdxToAtm and AtmToIdx to std::vector
- Eliminate CoordSet::NAtIndex
- Use setNIndex() where possible
2021-01-14 14:15:44 +01:00
Thomas Holder
7833037c5e CGOOptimizeToVBO: Call CGOCombineBeginEnd
CGOOptimizeToVBONotIndexed and CGOOptimizeToVBOIndexed will
automatically call CGOCombineBeginEnd if the input CGO has Begin/End
operations. They will also set `use_shader` on the CGO.

Fixes `set cgo_debug; wizard demo, raster3d`

Eliminate various CGOFree calls by using unique_ptr.
2020-12-11 13:01:38 +01:00
Thomas Holder
2c43bac511 Fix PYMOL-3578 Rep::hasTransparency()
Track the "rep has transparency" information with a flag which is set
during CGO building. Fixes CoordSet::render() which was trying to get
this information from the object-state-level setting.
2020-12-11 12:59:34 +01:00
Jarrett Johnson
4431dd0ce2 Settings copied on object copy 2020-10-16 11:07:17 +02:00
Thomas Holder
08c9dff871 PYMOL-3533 Refactor Rep as polymorphic type (2)
Part 2: virtual member functions
2020-09-30 09:46:26 +02:00
Thomas Holder
2d145d2e0f PYMOL-3533 Refactor Rep as polymorphic type (1)
Part 1: virtual destructor
2020-09-30 09:26:20 +02:00
Thomas Holder
04ed5ab189 PYMOL-3508 Curved cartoon_cylindrical_helices
- cartoon_cylindrical_helices=1 now generates curved cylinders
- The old straight helices mode is now cartoon_cylindrical_helices=2
- Per-selection support with `cartoon cylinder, sele`
- Cylinder quality is `cartoon_loop_quality * 2`

Closes https://github.com/schrodinger/pymol-open-source/issues/131
2020-09-22 13:03:55 +02:00
Thomas Holder
ee770f7937 Refactor: Some stronger typing (enum class, const)
- enum class cCylCap
- enum class ss_t (RepCartoon)
- const
2020-09-03 09:58:06 +02:00
Thomas Holder
cc69c21605 refactor: use more atmToIdx() and coordPtr() 2020-03-13 09:16:52 +01:00
Thomas Holder
48a9994774 refactor: CoordSet CObjectState inheritance 2020-02-26 19:16:54 +01:00
Thomas Holder
5ddf4b519e (indentation cleanup: RepCartoon) 2019-12-09 17:33:39 +01:00
Thomas Holder
186589c57e cleanup: RepCartoon preshader CGO
Avoids empty rep invalidation during rendering
2019-12-09 17:25:56 +01:00
Thomas Holder
a188383b2b refactor color picking, add cPickableThrough
cPickableThrough for transparency_picking_mode (spheres only so far)
2019-11-27 14:44:28 +01:00
Thomas Holder
4f50d7568a eliminate pymol::vla non-const legacy VLA cast
Avoid assignment of pymol::vla<T> return values to T*.

Refactoring to facilitate this:
- const-correctness (const T* cast still works)
- .data()
- T* -> pymol::vla<T> function arguments
2019-09-23 15:56:55 +02:00
Jarrett Johnson
37f95ef227 ObjectMolecule proper C++ inheritance 2019-03-29 13:04:12 +01:00
Thomas Holder
b59ce09d8a refactor: pymol::malloc<T>
- use typed/namespaced malloc wrapper
- remove Alloc et al.
- remove mmalloc et al.
- remove CINTERFACE define
2019-02-21 17:41:58 +01:00
Thomas Holder
5e04325863 cleanup (local/unused function declarations) 2019-02-06 15:43:14 +01:00
Jarrett Johnson
a6a563ded8 PYMOL-3174 Cartoon cylinder helix transparency 2019-01-08 17:17:03 +01:00
Jarrett Johnson
9ab62cc113 PYMOL-1475 Atom-level Cartoon transparency 2018-12-06 08:51:34 +01:00
Jarrett Johnson
fde67f2d9b PYMOL-3098 ScenePickVLA Refactor 2018-11-15 16:44:02 +01:00
Jarrett Johnson
a32b6776da PYMOL-3145 prevents single-residue cartoon crash 2018-11-15 16:27:23 +01:00
Thomas Holder
9da636ca5e cleanup: compiler warnings #2
-Wreorder
-Wmaybe-uninitialized (some)
-Wunused-but-set-variable
2018-08-16 19:06:17 +02:00
Thomas Holder
90939028a3 const correctness for Color.cpp 2018-07-03 20:31:13 +02:00
Thomas Holder
f21c61958e Graphics refactoring, ported from Incentive PyMOL 2018-07-03 20:19:12 +02:00
Thomas Holder
1742d75d13 anaglyph batch mode, all_states measurements, ...
* fix anaglyph stereo in batch (headless) mode
* fix possible memory corruption with boolean settings
* measurement wizard: distances between states (all_states=on)
* get_fastastr: nucleic acid, by chain
* menu: A (Action) > group
* sequence viewer menu: ss (Secondary Structure)
* MAE export of groups (s_m_subgroupid)
* macOS: -O3 -fno-strict-aliasing (bugs/205)
2018-05-03 14:46:44 +00:00
Thomas Holder
999ceebbe8 1.8.3.2
* experimental MMTF load support
* map export in CCP4 format
* SDF V3000 import/export support
* refactor molecular file formats export: Unified handling of PDB, PQR, mmCIF, MOL2, SDF, XYZ, MAE
* PLY geometry import (as CGO)
* new command: unset_deep
* new setting: cartoon_all_alt: Create cartoon for every alt code
* stick_h_scale: default=1.0 (was: 0.4) but remove dependency on negative stick_radius
* auto_show_classified: Visualize small (< 50 atoms) polymer classified molecules like organic
* bymol selection operator: ignore zero-order bonds
* menu: isomesh/surface negative color
* improve alignment of residues with unknown resn (e.g. ligands):
  give a match score of 5 to perfect matches of unknown residue codes.
  Previously, those got match score -1.
* remove broken and obsolete "PMO" file support
* use "label_digits" setting with "label" command
* do not resize window when loading a session file
* fix ignored SCALE w/ identity rotation (e.g. 1WAP)
* fix "scene auto, clear" (Scene > Delete)
* new setting: pick_shading: do flat shading for programmable image color analysis
* experimental cmd.raw_image_callback: post cmd.draw() callback
2016-08-30 19:14:39 +00:00
Thomas Holder
d0d46b9a42 PyMOL 1.8.2.0
- fix/silence various compiler warnings
- partly fixes sf#177, sf#178
- fix crash when loading PSE with bg_image_filename
2016-04-19 22:02:24 +00:00
Thomas Holder
f4582bbfcb pse_binary_dump, get_sasa_relative, color_deep, ...
- experimental setting "pse_binary_dump"
- get_sasa_relative (command ported from Incentive PyMOL)
- Color menu uses util.color_deep (ported from Incentive PyMOL)
- C > by rep (ported from Incentive PyMOL)
- fix crash when saving mesh PSE without map
- fix isosurface invalidation when setting surface_negative_visible
2016-04-17 02:00:50 +00:00
Thomas Holder
b5852c0ebf auto_show_classified, auto-detect CA-only models
* new setting: auto_show_classified
* cartoon/ribbon: auto-detect CA-only models
2016-03-03 18:40:23 +00:00
Thomas Holder
40bc132214 fix selection macros, better "missing residues" support with mmCIF
- fix selection macros with wildcards and colon (:) residue ranges (1.8.0 regression)
- mmCIF: load missing residues independent of cif_use_auth setting
2016-03-02 22:56:26 +00:00
Thomas Holder
b3472cbace ignore_case_chain, cartoon_gap_cutoff, ...
* restore ignore_case=on default
* new setting: ignore_case_chain (default off)
* new setting: cartoon_gap_cutoff
* increase PYMOL_MAX_THREADS
* amber topology loading: bond order 1 for all bonds
* improve MOL2 file handling
* new grid_mode=3: grid per object-state
2016-02-08 15:59:56 +00:00
Thomas Holder
2787af79fc byring, distance mode=4, cartoon dash, ...
* distance mode=4: distance between centroids
* byring: new selection operator
* "Distances to Rings" mode in measurement wizard
* basic atom typing for MOL2 export
* cartoon dash: new dashed loop-like cartoon type
* object-level settings for measurements
* iterate: use Python exceptions
* iterate_state: ignore atomic=0 (fixes crash)
* format 'xyzstr': enable .gz and URL loading
* fix crash with object sele length >= 1024
* re-add -Wno-write-strings
* fix pmg_tk.skins.normal.encode()
* fix askopenfilename CANCEL case with multiple=0
2016-01-11 16:56:37 +00:00
Thomas Holder
9f53f30e47 segi, resn, name of arbitrary length; settings in iterate/alter
* support segi, resn and name of arbitrary string length
* expose settings to iterate/alter via "s.<name>"
* Python 3 compatibility for champ module
* apbs_tools: apply fixes from Pymol-script-repo
2015-12-14 19:11:12 +00:00
Thomas Holder
47ce4fca0f fix cartoon ray tracing crash 2015-11-27 20:04:28 +00:00
Thomas Holder
92179cf33f pdbml, pdbqt, cml, get_object_ttt, ...
* new filetypes: pdbml, pdbqt, cml
* cell/symmetry: accept alpha=beta=gamma=0.0 as 90.0
* leave unknown protons as -1 instead of 0 (lonepair), fixes vdw assingment for unknown elements (1.8 instead of 0.5)
* reimplement reading full sequence from mmCIF. Only with cif_use_auth=off and retain_order=off. Fill in missing CA atoms for polypeptides.
* new API function cmd.get_object_ttt()
* APBS Plugin: --whitespace argument for pdb2pqr
* fix scene next/previous, was broken on Windows 10
* fix split_states with non-unique titles
* fix "File > Run" fails if path has spaces
2015-10-06 18:15:01 +00:00
Thomas Holder
680f313001 cartoon_trace_atoms for sheets, fast connect_mode=4 2015-08-31 02:08:17 +00:00
Thomas Holder
ff758092c1 fix crash after headless ray tracing empty cartoon 2015-08-18 20:38:14 +00:00