libbio
Loading...
Searching...
No Matches
Classes | Functions
bio::chemical::atom_detail Namespace Reference

Classes

struct  AsConstRequest
 
struct  AsConstRequest< const Pointee >
 
struct  AsDispatcher
 
struct  AsDispatcher< T, false >
 
struct  AsDispatcher< T, true >
 
struct  AsResultType
 
struct  AsResultType< T, false >
 
struct  AsResultType< T, true >
 
struct  BondIdDispatcher
 
struct  BondIdDispatcher< T, false >
 
struct  BondIdDispatcher< T, true >
 
struct  CowHandleType
 
struct  CowHandleType< Bare, true >
 
struct  FormBondDispatcher
 
struct  FormBondDispatcher< T, false, false >
 
struct  FormBondDispatcher< T, false, true >
 
struct  FormBondDispatcher< T, true, false >
 
struct  PointerFormBondDispatcher
 
struct  PointerFormBondDispatcher< T, false >
 
struct  PointerFormBondDispatcher< T, true >
 

Functions

bool IsClassWiringBond (Pointer< const Bond > bond)
 
bool ShouldSkipBond (Pointer< const Bond > bond)
 
Pointer< SymmetryCloneSymmetry (Pointer< const physical::Symmetry > symmetry)
 
bool IsChemicalSymmetry (Pointer< const physical::Symmetry > symmetry)
 
bool IsMetallicBondType (BondType type)
 
void RegisterMetallicBondType (BondType type)
 
static ::std::vector< BondType > & MetallicBondTypes ()
 

Function Documentation

◆ CloneSymmetry()

Pointer< chemical::Symmetry > bio::chemical::atom_detail::CloneSymmetry ( Pointer< const physical::Symmetry symmetry)

Clone a Symmetry and (if chemical) recursively clone its children.
The clone preserves Name, Type, and Value, and copies child Symmetries when present.

Parameters
symmetrythe Symmetry to clone.
Returns
a newly allocated chemical::Symmetry or NULL on failure.

◆ IsChemicalSymmetry()

bool bio::chemical::atom_detail::IsChemicalSymmetry ( Pointer< const physical::Symmetry symmetry)

Determine whether a Symmetry has the Properties of chemical::Symmetry.
Uses PeriodicTable properties and Wave resonance (no RTTI).

Parameters
symmetrythe Symmetry to test.
Returns
true if the Symmetry is chemical::Symmetry-compatible.

◆ IsClassWiringBond()

bool bio::chemical::atom_detail::IsClassWiringBond ( Pointer< const Bond bond)

Check if a Bond is implementation wiring rather than data.
Includes Virtual, Covalent, and the owned AbstractMotif bridge bond used by motifs for no-RTTI cross-casting.

Parameters
bondthe Bond to evaluate.
Returns
true if the Bond is class wiring.

◆ IsMetallicBondType()

bool bio::chemical::atom_detail::IsMetallicBondType ( BondType  type)

Determine whether a BondType represents a Metallic bond.
This is used to avoid duplicating shared metallic bond graphs when cloning.

Parameters
typethe BondType to test.
Returns
true if the BondType has been registered as Metallic.

◆ MetallicBondTypes()

static ::std::vector< BondType > & bio::chemical::atom_detail::MetallicBondTypes ( )

◆ RegisterMetallicBondType()

void bio::chemical::atom_detail::RegisterMetallicBondType ( BondType  type)

Register a BondType as Metallic.
Callers should register Metallic bond types when they are created.

Parameters
typethe BondType to mark as Metallic.

◆ ShouldSkipBond()

bool bio::chemical::atom_detail::ShouldSkipBond ( Pointer< const Bond bond)

Check if a Bond should be skipped for Symmetry processing.
Skips empty Bonds and class wiring Bonds.

Parameters
bondthe Bond to evaluate.
Returns
true if the Bond should be skipped.