pub mod rg;
pub mod rmsd;
pub mod rdf;
pub mod geometry;
pub mod matrix;
pub mod polymer;
pub mod analysis;

pub use rg::{RadgyrTensorPlan, RgPlan};
pub use rmsd::{DistanceRmsdPlan, PairwiseMetric, PairwiseRmsdPlan, RmsdPlan, SymmRmsdPlan};
pub use rdf::{PairDistPlan, RdfPlan};
pub use matrix::{MatrixPlan, MatrixMode, PcaPlan, ProjectionPlan, AnalyzeModesPlan};
pub use geometry::{
    AlignPlan, AlignPrincipalAxisPlan, CenterOfGeometryPlan, CenterOfMassPlan, DistancePlan,
    DistanceToPointPlan, DistanceToReferencePlan, PairwiseDistancePlan, PrincipalAxesPlan,
    RmsdPerResPlan, RmsfPlan, BfactorsPlan, AtomicFluctPlan, AnglePlan, DihedralPlan, MultiDihedralPlan,
    PermuteDihedralsPlan, DihedralRmsPlan, PuckerPlan, RotateDihedralPlan, SetDihedralPlan, MindistPlan,
    ClosestAtomPlan, LowestCurvePlan,
    HausdorffPlan, SearchNeighborsPlan, WatershellPlan, FixImageBondsPlan, CheckStructurePlan,
    CheckChiralityPlan, AtomMapPlan, RandomizeIonsPlan,
    CenterTrajectoryPlan, CenterMode, TranslatePlan, TransformPlan, ImagePlan,
    VectorPlan, GetVelocityPlan, SetVelocityPlan, MeanStructurePlan, AverageFramePlan, MakeStructurePlan,
    NativeContactsPlan,
    RotatePlan, ScalePlan, AutoImagePlan, StripPlan, RotationMatrixPlan, SuperposePlan,
    ClosestPlan, ReplicateCellPlan, XtalSymmPlan, VolumePlan,
};
pub use polymer::{
    BondAngleDistributionPlan, BondLengthDistributionPlan, ChainRgPlan,
    ContourLengthPlan, EndToEndPlan, PersistenceLengthPlan,
};
pub use analysis::{MsdPlan};

#[derive(Debug, Clone, Copy)]
pub enum ReferenceMode {
    Topology,
    Frame0,
}

#[derive(Debug, Clone, Copy)]
pub enum PbcMode {
    None,
    Orthorhombic,
}
