ROOT logo
// $Id: TubeTvor.h 2520 2011-09-22 04:09:57Z matevz $

// Copyright (C) 1999-2008, Matevz Tadel. All rights reserved.
// This file is part of GLED, released under GNU General Public License version 2.
// For the licensing terms see $GLEDSYS/LICENSE or http://www.gnu.org/.

#ifndef GledCore_TubeTvor_H
#define GledCore_TubeTvor_H

#include <Gled/GledTypes.h>

class TubeTvor
{
public:

  struct RingInfo {
    Int_t	fIndex;
    Int_t	fNVert;
    Bool_t	fDrawP;

    RingInfo(Int_t i, Int_t n, Bool_t dp) : fIndex(i), fNVert(n), fDrawP(dp) {}
  };

  typedef vector<RingInfo>		vRingInfo_t;
  typedef vector<RingInfo>::iterator	vRingInfo_i;

  // --------------------------------------------------------------

  Int_t		mNP;    // Number of points
  Int_t		mI;     // Current vertex-index.
  vRingInfo_t	mRings; // Ring infos
  Float_t*	mV;     //[3*mNP] Vertices
  Float_t*	mN;     //[3*mNP] Normals
  UChar_t*	mC;     //[4*mNP] Colors
  Float_t*	mT;     //[2*mNP] Texture-coordinates
  Bool_t	bColP;  // Has colors
  Bool_t	bTexP;  // Has texture data

  // --------------------------------------------------------------

  TubeTvor();
  ~TubeTvor();

  void Init(Int_t npoles, Int_t nrings, Int_t nphi,
	    Bool_t colp=false, Bool_t texp=false);
  void NewRing(Int_t n, Bool_t dp);
  void NewVert(Float_t *v, Float_t *n, UChar_t *c=0, Float_t* t=0);

  ClassDefNV(TubeTvor, 0);
}; // endclass TubeTvor


inline void
TubeTvor::NewVert(Float_t *v, Float_t *n, UChar_t *c, Float_t *t) {
  {
  const int i = mI*3;
  mV[i] = v[0]; mV[i+1] = v[1]; mV[i+2] = v[2];
  mN[i] = n[0]; mN[i+1] = n[1]; mN[i+2] = n[2];
  }
  if(bColP) {
    const int i = mI*4;
    mC[i] = c[0]; mC[i+1] = c[1]; mC[i+2] = c[2]; mC[i+3] = c[3];
  }
  if(bTexP) {
    const int i = mI*2;
    mT[i] = t[0]; mT[i+1] = t[1];
  }
  ++mI;
}

#endif
 TubeTvor.h:1
 TubeTvor.h:2
 TubeTvor.h:3
 TubeTvor.h:4
 TubeTvor.h:5
 TubeTvor.h:6
 TubeTvor.h:7
 TubeTvor.h:8
 TubeTvor.h:9
 TubeTvor.h:10
 TubeTvor.h:11
 TubeTvor.h:12
 TubeTvor.h:13
 TubeTvor.h:14
 TubeTvor.h:15
 TubeTvor.h:16
 TubeTvor.h:17
 TubeTvor.h:18
 TubeTvor.h:19
 TubeTvor.h:20
 TubeTvor.h:21
 TubeTvor.h:22
 TubeTvor.h:23
 TubeTvor.h:24
 TubeTvor.h:25
 TubeTvor.h:26
 TubeTvor.h:27
 TubeTvor.h:28
 TubeTvor.h:29
 TubeTvor.h:30
 TubeTvor.h:31
 TubeTvor.h:32
 TubeTvor.h:33
 TubeTvor.h:34
 TubeTvor.h:35
 TubeTvor.h:36
 TubeTvor.h:37
 TubeTvor.h:38
 TubeTvor.h:39
 TubeTvor.h:40
 TubeTvor.h:41
 TubeTvor.h:42
 TubeTvor.h:43
 TubeTvor.h:44
 TubeTvor.h:45
 TubeTvor.h:46
 TubeTvor.h:47
 TubeTvor.h:48
 TubeTvor.h:49
 TubeTvor.h:50
 TubeTvor.h:51
 TubeTvor.h:52
 TubeTvor.h:53
 TubeTvor.h:54
 TubeTvor.h:55
 TubeTvor.h:56
 TubeTvor.h:57
 TubeTvor.h:58
 TubeTvor.h:59
 TubeTvor.h:60
 TubeTvor.h:61
 TubeTvor.h:62
 TubeTvor.h:63
 TubeTvor.h:64
 TubeTvor.h:65
 TubeTvor.h:66
 TubeTvor.h:67
 TubeTvor.h:68
 TubeTvor.h:69
 TubeTvor.h:70
 TubeTvor.h:71