"""
A wrapper around PACKMOL. Adapted from OpenFF Evaluator v0.4.3.
"""

from openff.packmol import (
    RHOMBIC_DODECAHEDRON,
    RHOMBIC_DODECAHEDRON_XYHEX,
    UNIT_CUBE,
    pack_box,
    solvate_topology,
    solvate_topology_nonwater,
)
from openff.packmol._packmol import (
    _box_from_density,
    _box_vectors_are_in_reduced_form,
    _build_input_file,
    _center_topology_at,
    _check_add_positive_mass,
    _check_box_shape_shape,
    _compute_brick_from_box_vectors,
    _create_molecule_pdbs,
    _create_solute_pdb,
    _find_packmol,
    _get_packmol_version,
    _iter_lattice_vecs,
    _load_positions,
    _max_dist_between_points,
    _range_neg_pos,
    _scale_box,
    _unit_vec,
    _validate_inputs,
    _wrap_into,
    _wrap_into_brick,
)

__all__ = (
    "RHOMBIC_DODECAHEDRON",
    "RHOMBIC_DODECAHEDRON_XYHEX",
    "UNIT_CUBE",
    "_box_from_density",
    "_box_vectors_are_in_reduced_form",
    "_build_input_file",
    "_center_topology_at",
    "_check_add_positive_mass",
    "_check_box_shape_shape",
    "_compute_brick_from_box_vectors",
    "_create_molecule_pdbs",
    "_create_solute_pdb",
    "_find_packmol",
    "_get_packmol_version",
    "_iter_lattice_vecs",
    "_load_positions",
    "_max_dist_between_points",
    "_range_neg_pos",
    "_scale_box",
    "_unit_vec",
    "_validate_inputs",
    "_wrap_into",
    "_wrap_into_brick",
    "pack_box",
    "solvate_topology",
    "solvate_topology_nonwater",
)
