Jpp
Functions
JPhotonPathIO.cc File Reference
#include <iostream>
#include <fstream>
#include "TRandom3.h"
#include "JMarkov/JPhotonPath.hh"
#include "JMarkov/JPhotonPathReader.hh"
#include "JMarkov/JPhotonPathWriter.hh"

Go to the source code of this file.

Functions

void printPolyline (JPolyline3D &pl)
 
int main (int argc, char **argv)
 

Function Documentation

◆ printPolyline()

void printPolyline ( JPolyline3D pl)

Definition at line 13 of file JPhotonPathIO.cc.

13  {
14  for( int i=0 ; i<(int)pl.size()-1 ; ++i )
15  cout << "(" << pl[i] << ")-" ;
16  if( pl.size()>0 ) cout << "(" << pl.back() << ")" ;
17 }

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 25 of file JPhotonPathIO.cc.

25  {
26  // initialization
27  TRandom* ran = new TRandom3(0) ;
28  const int npaths = 5 ;
29  char fname[100] = "out.paths" ;
30 
31  // write some example paths to a file
32  cout << "Writing some example paths to '" << fname << "'." << endl ;
33 
35  writer.open(fname) ;
36  for( int n=0 ; n<npaths ; ++n ) {
37  // create path
38  int nscat = ran->Integer(6) ; // how often the photon scatters
39  JPhotonPath path(nscat) ;
40  // loop over the vertices
41  for( JPhotonPath::iterator it=path.begin() ; it!=path.end() ; ++it ) {
42  double x = ran->Integer(50) ;
43  double y = ran->Integer(50) ;
44  double z = ran->Integer(50) ;
45  it->setPosition( JGEOMETRY3D::JVector3D(x,y,z) ) ;
46  }
47  // print the path
48  printPolyline( path ) ;
49  cout << endl ;
50  // write the path
51  writer.put(path) ;
52  }
53  writer.close() ;
54  cout << endl ;
55 
56  // read paths from a file
58  reader.open("out.paths") ;
59 
60  int nread = 0 ;
61  JPhotonPath* p = NULL ;
62  cout << "Reading file" << endl ;
63  while( reader.hasNext() ) {
64  p = reader.next() ;
65  printPolyline( *p ) ;
66  cout << endl ;
67  ++nread ;
68  }
69 
70  cout << "Done reading file. Read " << nread << " paths from it." << endl ;
71  cout << endl ;
72  cout << "Done!" << endl ;
73 
74  return 0 ;
75 }
JTOOLS::n
const int n
Definition: JPolint.hh:628
JIO::JWriterObjectOutput::put
virtual bool put(const T &object)
Object output.
Definition: JWriterObjectOutput.hh:50
JGEOMETRY3D::JVector3D
Data structure for vector in three dimensions.
Definition: JVector3D.hh:33
JMARKOV::JPhotonPath
A photon path.
Definition: JPhotonPath.hh:38
printPolyline
void printPolyline(JPolyline3D &pl)
Definition: JPhotonPathIO.cc:13
JLANG::JAccessibleBinaryInputStream::open
virtual void open(const char *file_name)
Open file.
Definition: JAccessibleBinaryStream.hh:52
JLANG::JAccessibleOutputStream::close
virtual void close()
Close file.
Definition: JAccessibleStream.hh:142
JMARKOV::JPhotonPathWriter
Definition: JPhotonPathWriter.hh:16
JLANG::JAccessibleBinaryOutputStream::open
virtual void open(const char *file_name)
Open file.
Definition: JAccessibleBinaryStream.hh:92
JMARKOV::JPhotonPathReader
Definition: JPhotonPathReader.hh:16
JLANG::JAbstractObjectIterator::hasNext
virtual bool hasNext()
Check availability of next element.
Definition: JAbstractObjectIterator.hh:56
JLANG::JAbstractObjectIterator::next
virtual const pointer_type & next()
Get next element.
Definition: JAbstractObjectIterator.hh:71