143   for (
Int_t i=0; i<3*
n; i++) {
 
  166   for (
Int_t i=0; i<3*
n; i++) {
 
  190   for (
Int_t i=0; i<
n;i++) {
 
  218   for (
Int_t i=0; i<
n;i++) {
 
  249   if (
fP) 
delete [] 
fP;
 
  292   const Int_t inaxis = 7;
 
  301   if (px < puxmin - inaxis) 
return dist;
 
  302   if (py > puymin + inaxis) 
return dist;
 
  303   if (px > puxmax + inaxis) 
return dist;
 
  304   if (py < puymax - inaxis) 
return dist;
 
  307   if (!view) 
return dist;
 
  312   for (i=0;i<
Size()-1;i++) {
 
  320      if (dsegment < 
dist) 
dist = dsegment;
 
  428   for (
Int_t i=0; i<size;i++) { newpolyline->
fP[i] = p[i];}
 
  442   if (
gPad->GetView()) 
gPad->GetView()->ExecuteRotateView(event, px, py);
 
  451   std::cout <<
"PolyLine3D  N=" <<
fN<<
" Option="<<option<<std::endl;
 
  467         Error(
"Add",
"Attempt to add object of class: %s to a %s",pl->
ClassName(),this->ClassName());
 
  470      npoints += pl->
Size();
 
  481      for (
Int_t i=0;i<np;i++) {
 
  482         SetPoint(i,p[3*i],p[3*i+1],p[3*i+2]);
 
  497   if (
Size() <= 0) 
return;
 
  515   if (!viewer3D) 
return;
 
  523      Int_t nbSegs = nbPnts-1;
 
  524      if (!buffer.
SetRawSizes(nbPnts, 3*nbPnts, nbSegs, 3*nbSegs, 0, 0)) {
 
  532      for (i=0; i<3*buffer.
NbPnts(); i++) {
 
  541            dlocal[0] = buffer.
fPnts[3*j];
 
  542            dlocal[1] = buffer.
fPnts[3*j+1];
 
  543            dlocal[2] = buffer.
fPnts[3*j+2];
 
  545            buffer.
fPnts[3*j]   = dmaster[0];
 
  546            buffer.
fPnts[3*j+1] = dmaster[1];
 
  547            buffer.
fPnts[3*j+2] = dmaster[2];
 
  556      for (i = 0; i < buffer.
NbSegs(); i++) {
 
  558         buffer.
fSegs[3*i+1] = i;
 
  559         buffer.
fSegs[3*i+2] = i+1;
 
  575   printf(
"    TPolyLine3D N=%d, Option=%s\n",
fN,option);
 
  580         printf(
" x[%d]=%g, y[%d]=%g, z[%d]=%g\n",i,
fP[3*i],i,
fP[3*i+1],i,
fP[3*i+2]);
 
  595      out<<
"   TPolyLine3D *";
 
  598   out<<
"pline3D = new TPolyLine3D("<<
fN<<
","<<quote<<
fOption<<quote<<
");"<<std::endl;
 
  603      for (
Int_t i=0;i<size;i++)
 
  604         out<<
"   pline3D->SetPoint("<<i<<
","<<
fP[3*i]<<
","<<
fP[3*i+1]<<
","<<
fP[3*i+2]<<
");"<<std::endl;
 
  606   out<<
"   pline3D->Draw();"<<std::endl;
 
  628   if (!
fP || 
n >= 
fN) {
 
  634         memset(&savepoint[3*
fN],0,(newN-
fN)*
sizeof(
Float_t));
 
  661   if (
fP) 
delete [] 
fP;
 
  682   if (
fP) 
delete [] 
fP;
 
  687         fP[3*i+1] = p[3*i+1];
 
  688         fP[3*i+2] = p[3*i+2];
 
  711   if (
fP) 
delete [] 
fP;
 
  728void TPolyLine3D::Streamer(
TBuffer &
b)
 
  732      b.ReadVersion(&R__s, &R__c);
 
  733      b.ClassBegin(TPolyLine3D::IsA());
 
  734      b.ClassMember(
"TObject");
 
  735      TObject::Streamer(
b);
 
  736      b.ClassMember(
"TAttLine");
 
  737      TAttLine::Streamer(
b);
 
  738      b.ClassMember(
"fN", 
"Int_t");
 
  742         b.ClassMember(
"fP", 
"Float_t", 3 * 
fN);
 
  743         b.ReadFastArray(
fP, 3 * 
fN);
 
  745      b.ClassMember(
"fOption", 
"TString");
 
  748      b.ClassEnd(TPolyLine3D::IsA());
 
  749      b.CheckByteCount(R__s, R__c, TPolyLine3D::IsA());
 
  751      R__c = 
b.WriteVersion(TPolyLine3D::IsA(), 
kTRUE);
 
  752      b.ClassBegin(TPolyLine3D::IsA());
 
  753      b.ClassMember(
"TObject");
 
  754      TObject::Streamer(
b);
 
  755      b.ClassMember(
"TAttLine");
 
  756      TAttLine::Streamer(
b);
 
  757      b.ClassMember(
"fN", 
"Int_t");
 
  761         b.ClassMember(
"fP", 
"Float_t", 3 * size);
 
  762         b.WriteFastArray(
fP, 3 * size);
 
  764      b.ClassMember(
"fOption", 
"TString");
 
  766      b.ClassEnd(TPolyLine3D::IsA());
 
  767      b.SetByteCount(R__c, 
kTRUE);
 
static const double x2[5]
 
static const double x1[5]
 
R__EXTERN TGeometry * gGeometry
 
Binding & operator=(OUT(*fun)(void))
 
Use this attribute class when an object should have 3D capabilities.
 
virtual Color_t GetLineColor() const
Return the line color.
 
virtual void SetLineStyle(Style_t lstyle)
Set the line style.
 
virtual Width_t GetLineWidth() const
Return the line width.
 
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
 
virtual void SetLineColor(Color_t lcolor)
Set the line color.
 
virtual Style_t GetLineStyle() const
Return the line style.
 
virtual void Modify()
Change current line attributes if necessary.
 
void Copy(TAttLine &attline) const
Copy this line attributes to a new TAttLine.
 
Int_t DistancetoLine(Int_t px, Int_t py, Double_t xp1, Double_t yp1, Double_t xp2, Double_t yp2)
Compute distance from point px,py to a line.
 
virtual void SaveLineAttributes(std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t widdef=1)
Save line attributes as C++ statement(s) on output stream out.
 
Generic 3D primitive description class.
 
Bool_t SectionsValid(UInt_t mask) const
 
void ClearSectionsValid()
Clear any sections marked valid.
 
void SetSectionsValid(UInt_t mask)
 
Bool_t SetRawSizes(UInt_t reqPnts, UInt_t reqPntsCapacity, UInt_t reqSegs, UInt_t reqSegsCapacity, UInt_t reqPols, UInt_t reqPolsCapacity)
Set kRaw tessellation section of buffer with supplied sizes.
 
Buffer base class used for serializing objects.
 
Collection abstract base class.
 
virtual void Local2Master(Double_t *local, Double_t *master)
Convert one point from local system to master reference system.
 
virtual void Add(TObject *obj)
 
virtual TObject * After(const TObject *obj) const
Returns the object after object obj.
 
virtual TObject * First() const
Return the first object in the list. Returns 0 when list is empty.
 
Mother of all ROOT objects.
 
TObject & operator=(const TObject &rhs)
TObject assignment operator.
 
virtual const char * ClassName() const
Returns name of class to which the object belongs.
 
virtual void AppendPad(Option_t *option="")
Append graphics object to current pad.
 
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
 
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
 
virtual void Copy(TObject &object) const
Copy this to obj.
 
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
 
@ kCanDelete
if object in a list can be deleted
 
A 3-dimensional polyline.
 
TPolyLine3D & operator=(const TPolyLine3D &polylin)
assignment operator
 
TPolyLine3D()
3-D polyline default constructor.
 
static void DrawOutlineCube(TList *outline, Double_t *rmin, Double_t *rmax)
Draw cube outline with 3d polylines.
 
virtual void Print(Option_t *option="") const
Dump this 3-D polyline with its attributes on stdout.
 
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save primitive as a C++ statement(s) on output stream.
 
virtual void SetPoint(Int_t point, Double_t x, Double_t y, Double_t z)
Set point n to x, y, z.
 
virtual Int_t SetNextPoint(Double_t x, Double_t y, Double_t z)
Set point following LastPoint to x, y, z.
 
virtual ~TPolyLine3D()
3-D polyline destructor.
 
virtual Int_t Merge(TCollection *list)
Merge polylines in the collection in this polyline.
 
virtual void ls(Option_t *option="") const
List this 3-D polyline.
 
Int_t fLastPoint
The index of the last filled point.
 
Int_t fN
Number of points.
 
virtual void Draw(Option_t *option="")
Draw this 3-D polyline with its current attributes.
 
virtual void Paint(Option_t *option="")
Paint a TPolyLine3D.
 
virtual void Copy(TObject &polyline) const
Copy polyline to polyline obj.
 
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Execute action corresponding to one event.
 
virtual Int_t Size() const
 
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Compute distance from point px,py to a 3-D polyline.
 
virtual void SetPolyLine(Int_t n, Option_t *option="")
Re-initialize polyline with n points (0,0,0).
 
virtual void DrawPolyLine(Int_t n, Float_t *p, Option_t *option="")
Draw 3-D polyline with new coordinates.
 
Float_t * fP
[3*fN] Array of 3-D coordinates (x,y,z)
 
static void IndentLevel()
Functions used by ls() to indent an object hierarchy.
 
void ToLower()
Change string to lower-case.
 
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
 
virtual void WCtoNDC(const Float_t *pw, Float_t *pn)=0
 
Abstract 3D shapes viewer.
 
virtual Int_t AddObject(const TBuffer3D &buffer, Bool_t *addChildren=0)=0
 
double dist(Rotation3D const &r1, Rotation3D const &r2)
 
Short_t Max(Short_t a, Short_t b)