library: libTable #include "TPointsArray3D.h"

# TPointsArray3D

class description - source file - inheritance tree (.ps)

## class TPointsArray3D : public TPoints3DABC

| Inheritance Chart:

`TObject`

<-

`TPoints3DABC`

<-

`TPointsArray3D`

        public:

                                 TPointsArray3D()
                                 TPointsArray3D(Int_t n, Option_t* option)
                                 TPointsArray3D(Int_t n, Float_t* p, Option_t* option)
                                 TPointsArray3D(Int_t n, Float_t* x, Float_t* y, Float_t* z, Option_t* option)
                                 TPointsArray3D(const TPointsArray3D& points)
                         virtual ~TPointsArray3D()
                  static TClass* Class()
                    virtual void Copy(TObject& points) const
                   virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
                    virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
                   virtual Int_t GetLastPosition() const
                   virtual Int_t GetN() const
               virtual Option_t* GetOption() const
                virtual Float_t* GetP() const
                 virtual Float_t GetX(Int_t idx) const
                virtual Float_t* GetXYZ(Float_t* xyz, Int_t idx, Int_t num = 1) const
          virtual const Float_t* GetXYZ(Int_t idx) const
                 virtual Float_t GetY(Int_t idx) const
                 virtual Float_t GetZ(Int_t idx) const
                  virtual Bool_t Is3D() const
                 virtual TClass* IsA() const
                    virtual void ls(Option_t* option) const
                 TPointsArray3D& operator=(const TPointsArray3D&)
                    virtual void PaintPoints(Int_t, Float_t*, Option_t*)
                    virtual void Print(Option_t* option) const
                   virtual Int_t SetLastPosition(Int_t idx)
                    virtual void SetOption(Option_t* option)
                   virtual Int_t SetPoint(Int_t point, Float_t x, Float_t y, Float_t z)
                   virtual Int_t SetPoints(Int_t n, Float_t* p = 0, Option_t* option)
                    virtual void ShowMembers(TMemberInspector& insp, char* parent)
                   virtual Int_t Size() const
                    virtual void Streamer(TBuffer& b)
                            void StreamerNVirtual(TBuffer& b)

### Data Members

        protected:

             Int_t fN          Number of points
          Float_t* fP          Array of 3-D coordinates  (x,y,z)
           TString fOption     options
            UInt_t fGLList     The list number for OpenGL view
             Int_t fLastPoint  The index of the last filled point

## Class Description

     TPointsArray3D is an abstract class of the array of 3-dimensional points.
     It has 4 different constructors.

     This class has no implementation for Paint, Draw, and SavePrimitive methods

       First one, without any parameters TPointsArray3D(), we call 'default
     constructor' and it's used in a case that just an initialisation is
     needed (i.e. pointer declaration).

           Example:
                     TPointsArray3D *pl1 = new TPointsArray3D;

       Second one is 'normal constructor' with, usually, one parameter
     n (number of points), and it just allocates a space for the points.

           Example:
                     TPointsArray3D pl1(150);

       Third one allocates a space for the points, and also makes
     initialisation from the given array.

           Example:
                     TPointsArray3D pl1(150, pointerToAnArray);

       Fourth one is, almost, similar to the constructor above, except
     initialisation is provided with three independent arrays (array of
     x coordinates, y coordinates and z coordinates).

           Example:
                     TPointsArray3D pl1(150, xArray, yArray, zArray);

TPointsArray3D()

    *-*-*-*-*-*-*-*-*-*-*-*-*3-D PolyLine default constructor*-*-*-*-*-*-*-*-*-*-*
    *-*                      ================================

TPointsArray3D(Int_t n, Option_t *option)

    *-*-*-*-*-*3-D PolyLine normal constructor without initialisation*-*-*-*-*-*-*
    *-*        ======================================================
    *-*  If n < 0 the default size (2 points) is set
    *-*

TPointsArray3D(Int_t n, Float_t *p, Option_t *option)

    *-*-*-*-*-*-*-*-*-*-*-*-*3-D Point3D normal constructor*-*-*-*-*-*-*-*-*-*-*-*
    *-*                      ===============================
    *-*  If n < 0 the default size (2 points) is set
    *-*

TPointsArray3D(Int_t n, Float_t *x, Float_t *y, Float_t *z, Option_t *option)

    *-*-*-*-*-*-*-*-*-*-*-*-*3-D PolyLine normal constructor*-*-*-*-*-*-*-*-*-*-*-*
    *-*                      ===============================
    *-*  If n < 0 the default size (2 points) is set
    *-*

~TPointsArray3D()

    *-*-*-*-*-*-*-*-*-*-*-*-*3-D PolyLine default destructor*-*-*-*-*-*-*-*-*-*-*-*
    *-*                      ===============================

TPointsArray3D(const TPointsArray3D &point) : TPoints3DABC(point)

void Copy(TObject &obj) const

    *-*-*-*-*-*-*-*-*-*-*-*-*Copy this TPointsArray3D to another *-*-*-*-*-*-*-*-*-*-*-*
    *-*                      ==============================

Int_t DistancetoPrimitive(Int_t px, Int_t py)

    *-*-*-*-*-*-*Compute distance from point px,py to a 3-D points *-*-*-*-*-*-*
    *-*          =====================================================
    *-*
    *-*  Compute the closest distance of approach from point px,py to each segment
    *-*  of the polyline.
    *-*  Returns when the distance found is below DistanceMaximum.
    *-*  The distance is computed in pixels units.
    *-*
    *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

void ExecuteEvent(Int_t event, Int_t px, Int_t py)

    *-*-*-*-*-*-*-*-*-*Execute action corresponding to one event*-*-*-*-*-*-*-*-*-*
    *-*                =========================================

void ls(Option_t *option) const

    *-*-*-*-*-*-*-*-*-*List this 3-D polyline with its attributes*-*-*-*-*-*-*
    *-*                ==========================================

void Print(Option_t *option) const

    *-*-*-*-*-*-*-*-*-*Dump this 3-D polyline with its attributes*-*-*-*-*-*-*-*-*
    *-*                ==========================================

Int_t SetLastPosition(Int_t idx)

Int_t SetPoint(Int_t n, Float_t x, Float_t y, Float_t z)

    *-*-*-*-*-*-*-*-*-*Initialize one point of the 3-D polyline*-*-*-*-*-*-*-*-*-*
    *-*                ========================================
    *-*  if n is more then the current TPointsArray3D size (n > fN) - re-allocate this
    *-*  The new size of the object will be fN += min(10,fN/4)
    *-*
    *-*  return the total number of points introduced
    *-*

Int_t SetPoints(Int_t n, Float_t *p, Option_t *option)

    *-*-*-*-*-*-*-*-*-*-*Set new values for this 3-D polyline*-*-*-*-*-*-*-*-*-*-*
    *-*                  ====================================
    *-* return the total number of points introduced
    *-*

void Streamer(TBuffer &b)

    *-*-*-*-*-*-*-*-*Stream a class object*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
    *-*              =========================================

### Inline Functions

                      Int_t GetLastPosition() const
                      Int_t GetN() const
                   Float_t* GetP() const
                    Float_t GetX(Int_t idx) const
                    Float_t GetY(Int_t idx) const
                    Float_t GetZ(Int_t idx) const
                   Float_t* GetXYZ(Float_t* xyz, Int_t idx, Int_t num = 1) const
             const Float_t* GetXYZ(Int_t idx) const
                  Option_t* GetOption() const
                     Bool_t Is3D() const
                       void PaintPoints(Int_t, Float_t*, Option_t*)
                       void SetOption(Option_t* option)
                      Int_t Size() const
                    TClass* Class()
                    TClass* IsA() const
                       void ShowMembers(TMemberInspector& insp, char* parent)
                       void StreamerNVirtual(TBuffer& b)
            TPointsArray3D& operator=(const TPointsArray3D&)

Author: Valery Fine(fine@mail.cern.ch) 24/04/99
Last update: root/star:$Name: $:$Id: TPointsArray3D.cxx,v 1.5 2003/02/11 12:17:19 rdm Exp $