本文整理汇总了C++中Solid::ptr方法的典型用法代码示例。如果您正苦于以下问题:C++ Solid::ptr方法的具体用法?C++ Solid::ptr怎么用?C++ Solid::ptr使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Solid
的用法示例。
在下文中一共展示了Solid::ptr方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: BoxTrafos
int BoxTrafos() {
string xml = "file:";
xml += gSystem->Getenv("DD4hepINSTALL");
xml += "/examples/ClientTests/compact/BoxTrafos.xml";
const char* argv[] = {xml.c_str(), "BUILD_DEFAULT", 0};
gSystem->Load("libDDCore");
LCDD& lcdd = LCDD::getInstance();
lcdd.apply("DD4hepCompactLoader",2,(char**)argv);
lcdd.apply("DD4hepGeometryDisplay",0,0);
DetElement de = lcdd.detector("B3");
PlacedVolume pv = de.placement();
Volume vol = pv.volume();
Solid solid = vol.solid();
TGeoBBox* box = (TGeoBBox*)(solid.ptr());
Position glob,loc, pos(-10,30,10);
printf("\n++++ local->world:\n\n");
loc = Position(-pos.x(),-pos.y(),-pos.z());
local_to_world("origine",de,pos,loc);
loc = Position();
local_to_world("center",de,pos,loc);
loc = Position(box->GetDX(),box->GetDY(),box->GetDZ());
local_to_world("top edge",de,pos,loc);
loc = Position(box->GetDX(),box->GetDY(),-box->GetDZ());
local_to_world("top edge",de,pos,loc);
loc = Position(-box->GetDX(),box->GetDY(),box->GetDZ());
local_to_world("top edge",de,pos,loc);
loc = Position(-box->GetDX(),box->GetDY(),-box->GetDZ());
local_to_world("top edge",de,pos,loc);
loc = Position(box->GetDX(),-box->GetDY(),box->GetDZ());
local_to_world("bottom edge",de,pos,loc);
loc = Position(box->GetDX(),-box->GetDY(),-box->GetDZ());
local_to_world("bottom edge",de,pos,loc);
loc = Position(-box->GetDX(),-box->GetDY(),box->GetDZ());
local_to_world("bottom edge",de,pos,loc);
loc = Position(-box->GetDX(),-box->GetDY(),-box->GetDZ());
local_to_world("bottom edge",de,pos,loc);
printf("\n++++ world->local:\n\n");
glob = Position(0,0,0);
world_to_local("world center",de,pos,glob);
glob = Position(pos.x(),pos.y(),pos.z());
world_to_local("position",de,pos,glob);
glob = Position( box->GetDX()+pos.x(), box->GetDY()+pos.y(), box->GetDZ()+pos.z());
world_to_local("top edge",de,pos,glob);
glob = Position( box->GetDX()+pos.x(), box->GetDY()+pos.y(), -box->GetDZ()+pos.z());
world_to_local("top edge",de,pos,glob);
glob = Position(-box->GetDX()+pos.x(), box->GetDY()+pos.y(), box->GetDZ()+pos.z());
world_to_local("top edge",de,pos,glob);
glob = Position(-box->GetDX()+pos.x(), box->GetDY()+pos.y(), -box->GetDZ()+pos.z());
world_to_local("top edge",de,pos,glob);
glob = Position( box->GetDX()+pos.x(), -box->GetDY()+pos.y(), box->GetDZ()+pos.z());
world_to_local("bottom edge",de,pos,glob);
glob = Position( box->GetDX()+pos.x(), -box->GetDY()+pos.y(), -box->GetDZ()+pos.z());
world_to_local("bottom edge",de,pos,glob);
glob = Position(-box->GetDX()+pos.x(), -box->GetDY()+pos.y(), box->GetDZ()+pos.z());
world_to_local("bottom edge",de,pos,glob);
glob = Position(-box->GetDX()+pos.x(), -box->GetDY()+pos.y(), -box->GetDZ()+pos.z());
world_to_local("bottom edge",de,pos,glob);
return 1;
}