Hello, I'm trying to draw a TPolyMarker3D on top of a set of TVolumes. I do this to draw a set of hits on top of a simple detector model. If I draw the TVolume, the TPolyMarker3D, the TVolume agiain, I'm ok. If I draw the TVolume, TPolyMarker3D, TVolume agiain, TPolyMarker3D again, I seg-fault. In this example I wouldn't need to draw the TVolume multiple times, it is simply meant to illustrate the point. However, in the real application, I do need to call TVolume::Draw() more than once to refresh changes in the display. Here's the macro... void TestShapes() { gSystem->Load("libstar"); TCanvas* c1 = new TCanvas("c1"); TVolume* main = new TVolume(); TBRIK* brik = new TBRIK("BRIK","BRIK","void", 10., 20., 30.); TVolume* son = new TVolume("son","son",brik); main->Add(son); cout <<"Draw Main Volume"<<endl; main->Draw(); c1->Update(); main->SetVisibility(TVolume::kBothVisible); cout <<"Starting Loop To Fill Array"<<endl; double* x = new double[9]; for (int i=0; i<9; ++i) { x[i]=static_cast<double>(i); } for (int i=0; i<9; ++i) { cout <<i<<"\t"<<x[i]<<endl; } TPolyMarker3D* poly = new TPolyMarker3D(9, x, 8); cout <<"Draw TPolyMarker3D"<<endl; poly->Draw(); cout <<"Draw TPolyMarker3D Again"<<endl; poly->Draw(); cout <<"Draw Main Volume Again"<<endl; main->Draw(); cout <<"Update Canvas"<<endl; c1->Update(); //This is where we seg-fault cout <<"Draw TPolyMarker3D Again"<<endl; poly->Draw(); return; } How else can I represent points in an inexpensive 3d fashion? Thanks, Mike Michael L. Miller Yale Physics michael.miller@yale.edu BNL: (631) 344-8342 Building 118 Yale Software Yale: (203) 432-5637 Room 305 WNSL
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:50 MET