28 TGeoRotation rotg(
"r", 10., 20., 30.);
29 TGeoTranslation trag(
"g", 100., 200., 300.);
30 TGeoHMatrix hmat = trag;
42 std::cout <<
"Create Transform3D " << std::endl
44 <<
"from" << std::endl;
47 std::cout <<
" Transforming " << pd <<
" to master" << std::endl;
49 std::cout <<
"Float: " << pft << std::endl;
50 std::cout <<
"Double: " << pdt << std::endl;
51 std::cout <<
"Diff: " << pdt.X() - pft.X() <<
"," << pdt.Y() - pft.Y() <<
"," << pdt.Z() - pft.Z() << std::endl;
53 const double toler = 1e-4;
59 auto pfti = tr ^ (pft);
63 std::cout <<
" Transforming back to local" << std::endl;
64 std::cout <<
"Float: " << pfti << std::endl;
65 std::cout <<
"Double: " << pdti << std::endl;
66 std::cout <<
"Diff: " << pd.X() - pfti.X() <<
", " << pd.Y() - pfti.Y() <<
", " << pd.Z() - pfti.Z() << std::endl;
80 static_assert(std::is_trivially_copyable<ElementType>::value ==
true);
81 std::vector<ElementType> pts(10);
82 auto makeElement = [](
int idx) {
83 return ElementType{idx, idx + 10, idx + 20};
85 std::generate(pts.begin(), pts.end(), [makeElement, idx = std::make_shared<int>(0)]() { return makeElement(++(*idx)); });
87 size_t memsize =
sizeof(ElementType) * pts.size();
88 auto buffer = std::make_unique<char[]>(memsize);
89 memcpy(
buffer.get(), (
char*)pts.data(), memsize);
90 auto* pp =
reinterpret_cast<ElementType*
>(
buffer.get());
92 for (
auto const& point : pts) {
93 BOOST_REQUIRE(point == *pp);