next up previous print clean
Next: About this document ... Up: Dulac and Nichols: Object-Oriented Previous: Conclusions

References

APPENDIX A

First, the appendix presents an overview of the Seplib objects SepInput, SepOutput which represents respectively an input or ouput header file and data file. The classes SepInfo, SepAxis which describe the structure of the data are also presented. Second the graphic objects derived from the GSObject or GSNPtObject such as GSPlane, GSMultiLine, GSBSplines are described. Third we present some InterViews interactor View, GraPanel, Iaxis used into the examples. Then we describe in one final table the interface of two rubberbands used into the Overlay program and presented in the Figure  , respectively RubberHyperbola and RubberParabola.


 
Table 3: SepInput object- base class for reading input datas. Input auxiliary file or standard input file are not differentiated from the user point of view.  
2||c||SepInput Object  
functions comments
SepInput(char *) Creates an input object.
boolean Par(char *name, int &value) Gets a parameter value from its name.
boolean Par(char *name, float &value)  
boolean Par(char *name, char *&value)  
boolean Sample(DataStore *, int i1, int i2, int i3) Gets a sample pointed by the 3 indices,
  puts it into the given DataStore object,
  returns true if everything went ok.
boolean Trace(DataStore *,int a1,int i1,int a2,int i2) Gets a trace perpendicular to
  the plane given by the axes a1 and a2,
  and at the position i1,i2 on these axes,
  puts it into the given DataStore object.
boolean Plane(DataStore *, int ax1, int i1) Gets a plane perpendicular
  to the axis ax1 at the position i1
  on this axis.
boolean Cube(DataStore *) Gets a cube and puts it
  into the given DataStore object.


 
Table 4: SepOutput object- base class for writting output datas. Output auxiliary file or standard output file have the same interface.  
2||c||SepOutput Object  
functions comments
SepOutput(char *, SepData *) Creates an output object on the given header
  file and with the given SepData.
SepOutput(char *, SepInput *, SepData *) Creates an output object on the given header
  file and given SepData , copies the input header.
void Par(char *name, int value) Appends a parameter into the header file
  on the form name=value.
void Par(char *name, float value)  
void Par(char *name, char *value)  


 
Table 5: SepInfo object and SepAxis object - classes for data description.  
2||c||SepInfo and SepAxis Objects  
functions comments
SepInfo(SepAxis *[], int n, int esz, char *t) Creates an info from axes definition.
SepInfo(SepInput *) Creates an info from a header file.
SepAxis(SepInput *, int n) Creates axis n from a header file.
SepAxis(float o, float d, int n, char *t) Creates an axis from input parameters.


 
Table 6: Graphic plane object and other graphic objects - Class for representing a data plane object. The plane may be represented either in raster mode or in wiggle mode.  
2||c||GSPlane, GSMultiLine, ...Objects  
functions comments
GSPlane(SepPlane *, boolean, Graphic *) Creates a GSPlane from a SepPlane.
void SetRasterMode(boolean) Sets the mode of representation.
GSPoint(float, float, Graphic *) Creates a point.
GSLine(float, float, float, float, Graphic *) Creates a line.
GSMultiLine(float *, float *, int, Graphic *) Creates a set of connected lines.
GSPolygon(float *, float *, int, Graphic *) Creates a polygon.
GSFillPolygon(float *, float *, int, Graphic *) Creates a filled polygon.
GSBSpline(float *, float *, int, Graphic *) Creates a BSpline specified
  by the given control vertices.


 
Table 7: Graphic Data Picture - Displays a GSPlane at a certain location in the view with a certain orientation. This object holds the transformation from seismic coordinates to screen coordinates. All the GSObject described into seismic coordinates must be inserted into this picture.  
2||c||Picture Objects  
functions comments
GSDataPict(GSPlane *, Creates a GSDataPict from a GSPlane
Coord x0, Coord y0, Coord x1, Coord y1, in a given rectangle
int x=2, int y=-1, Graphic *g) with a given orientation.
GSCurvesPict(SepPlane *, Creates a GSCurvesPict from a SepPlane
Coord x0, Coord y0, Coord x1, Coord y1, in a given rectangle
int x=2, int y=-1, Graphic *g) with a given orientation.
GSCurvesPict(SepInfo *, Creates a GSCurvesPict from user axes
Coord x0, Coord y0, Coord x1, Coord y1, definition in a given rectangle
int x=2, int y=-1, Graphic *g) with a given orientation (no data).
void Change(GSPlane *,int x=2,int y=-1) Changes the data representation
  into the same screen space.
void UserInput(Coord x, Coord y,  
float &u1, float &u2, float &u3, Transforms input coordinates
float &i1, float &i2, float &i3) into user coordinates.


 
Table 8: Graphic Interactors - classes to insert a graphic into a view controlled by scroller or panner, with or without axes.  
2||c||Interactive Objects  
functions comments
View(GSObject *, Message *) Creates a view around the gsobject.
void SetTpow(float tpow) Sets tpow, recomputes and updates display.
void SetClip(float clip) Sets the clip, recomputes and updates display.
void Raster() Sets to raster mode and updates display.
void Wiggle() Sets to wiggle mode and updates display.
void FrameIncr(int) Gets the next plane and updates display.
void Load(char *) Gets the new data set and updates display.
HIAxis(View*, Graphic *, Creates a horizontal axis associated
Alignment a=Bottom, int size = 0) with a view and a graphic.
VIAxis(View*, Graphic *, Creates a vertical axis associated
Alignment a=Left, int size = 0) with a view and a graphic.
GraPanel(View *, boolean axis, int scrollType) Creates a graphic panel.


 
Table 9: Overlay Objects - classes to draw Overlays. The encapsulation of all the state variables and private data leads to a clean interface which encourages reusability.  
2||c||Overlay Objects  
functions comments
RubberHyperbola(Painter *, Canvas *, Construct a RubberHyperbola with
Transformer *st, a seismic transformation
int pt, float tmax, float v=1.48) a plane type(pt), an initial velocity(v).
void Param(float &t0, float &x0, float &v) Get hyperbola parameters.
void Fix() Fixes the apex of the hyperbola. The
  subsequent trackings will change the velocity.
RubberParabola(Painter *, Canvas *, Constructs a RubberParabola with
Transformer *st, a seismic transformation,
float o1, float d1, float o2, float d2, int n2, seismic coordinates,
float * sloth) a sloth vector.
void Param(float &t0, float &rms) Gets parabola parameters.
void Fix() Fixes the apex of the parabola. The subse-
  quent trackings will change the rms velocity.


next up previous print clean
Next: About this document ... Up: Dulac and Nichols: Object-Oriented Previous: Conclusions
Stanford Exploration Project
1/13/1998