7#ifndef KICAD_3D_MODEL_ALIGN_H
8#define KICAD_3D_MODEL_ALIGN_H
71std::vector<PAD>
BuildPadGroup(
const std::vector<PAD>& aPads,
size_t aClickedPad );
74std::vector<ALIGN_SOLUTION>
SolveAlignment(
const std::vector<REGION>& aRegions,
size_t aSeed,
75 const std::vector<PAD>& aPadGroup,
const std::vector<PAD>& aAllPads,
76 const glm::dvec3& aCurrentRotation );
std::vector< REGION > BuildRegions(const S3DMODEL &aModel, const glm::dvec3 &aScale)
std::vector< PAD > BuildPadGroup(const std::vector< PAD > &aPads, size_t aClickedPad)
Return the clicked pad first, followed by its congruent, deduplicated peers.
std::vector< ALIGN_SOLUTION > SolveAlignment(const std::vector< REGION > &aRegions, size_t aSeed, const std::vector< PAD > &aPadGroup, const std::vector< PAD > &aAllPads, const glm::dvec3 &aCurrentRotation)
The first element of aPadGroup must be the clicked pad; all coordinates are millimetres,...
glm::dvec3 rotation
GUI degrees of Rz * Ry * Rx; negate when storing in FP_3DMODEL.
glm::dvec3 offset
Footprint-local millimetres, Y up.
glm::dvec2 position
Footprint-local millimetres, Y up.
double rotation
Degrees in the Y-up frame.
std::vector< std::array< unsigned int, 3 > > triangles
glm::dvec3 extents
Sorted PCA extents, largest first.
std::vector< std::array< unsigned int, 2 > > sourceTriangles
Mesh/triangle pairs, including reversed duplicates.
std::vector< glm::dvec3 > vertices
Scaled model coordinates, millimetres.
Store the a model based on meshes and materials.