MCPcopy Create free account
hub / github.com/Geant4/geant4 / AddNonG4ObjectPolydata

Method AddNonG4ObjectPolydata

source/visualization/Vtk/src/G4VtkStore.cc:738–775  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

736}
737
738void G4VtkStore::AddNonG4ObjectPolydata(const G4String fileName, const G4VtkVisContext& vc)
739{
740
741 vtkSmartPointer<vtkPolyData> pd;
742
743 if (fileName.find("obj") != G4String::npos) {
744 vtkNew<vtkOBJReader> objReader;
745 objReader->SetFileName(fileName.c_str());
746 objReader->Update();
747 pd = objReader->GetOutput();
748 }
749 else if (fileName.find("ply") != G4String::npos) {
750 vtkNew<vtkPLYReader> plyReader;
751 plyReader->SetFileName(fileName.c_str());
752 plyReader->Update();
753 pd = plyReader->GetOutput();
754 }
755 else if (fileName.find("stl") != G4String::npos) {
756 vtkNew<vtkSTLReader> stlReader;
757 stlReader->SetFileName(fileName.c_str());
758 stlReader->Update();
759 pd = stlReader->GetOutput();
760 }
761 else if (fileName.find("vtp") != G4String::npos && fileName.find("vtu") != G4String::npos) {
762 G4cout << "G4VtkStore::AddNonG4ObjectPolydata> vtp/vtu Warning not yet implemented" << G4endl;
763 }
764
765 auto pl = std::make_shared<G4VtkPolydataPipeline>(G4String("name"), vc);
766
767
768 G4Transform3D fInvObjTrans = vc.fTransform.inverse();
769 pl->SetPolydata(pd);
770 pl->SetActorTransform(vc.fTransform.dx(), vc.fTransform.dy(), vc.fTransform.dz(),
771 fInvObjTrans.xx(), fInvObjTrans.xy(), fInvObjTrans.xz(),
772 fInvObjTrans.yx(), fInvObjTrans.yy(), fInvObjTrans.yz(),
773 fInvObjTrans.zx(), fInvObjTrans.zy(), fInvObjTrans.zz());
774 pl->SetActorColour(vc.red, vc.green, vc.blue, vc.alpha);
775}
776
777void G4VtkStore::GetBounds(G4double maxBoundIn[6])
778{

Callers 1

AddGeometryOverlayMethod · 0.80

Calls 15

c_strMethod · 0.80
inverseMethod · 0.80
SetActorTransformMethod · 0.80
dxMethod · 0.80
dyMethod · 0.80
dzMethod · 0.80
xxMethod · 0.80
xyMethod · 0.80
xzMethod · 0.80
yxMethod · 0.80
yyMethod · 0.80
yzMethod · 0.80

Tested by

no test coverage detected