Unit ScreenObjectUnit

DescriptionUsesClasses, Interfaces, Objects and RecordsFunctions and ProceduresTypesConstantsVariables

Description

The main purpose of ScreenObjectUnit is to define TScreenObject which extends TScreenObject by adding boundary conditions and the ability to handle PHAST-style interpolation. TScreenObject represents the objects that the user draws on the screen. ScreenObjectUnit also defines a variety of related classes.

ScreenObjectUnit also defines TCustomPhastBoundaryCondition and a series of descendants. The descendants represent boundary conditions in GoPhast.

Another class defined here is TMultiValueScreenObject which is used when importing zones from an existing PHAST model.

Finally TScreenObjectItem and TScreenObjectCollection are used to save TScreenObjects to a file or read them from a file.

See TPhastInterpolationValues for an explanation of PHAST-style interpolation.

Uses

Overview

Classes, Interfaces, Objects and Records

Name Description
Class EScreenObjectError EScreenObjectError is the class of errors related to TScreenObjects.
record TEdgePoint TEdgePoint represents a point of intersection between a TScreenObject and a grid element or grid cell.
Class TPointValue  
Class TPointValues  
Class TPointValuesItem  
Class TPointPositionValues  
Class TLineSegment  
Class TSelectedCells  
Class TCellElementSegment TCellElementSegment represents the 2D intersection of one segment of a TScreenObject with a cell or element in the grid.
Class TCellElementLeaf  
Class TCellElementLeafList  
Class TIntersectEdge  
Class TCellElementSegmentList TCellElementSegmentList is a list of the TCellElementSegments of a TScreenObject. Each segment is the 2D intersection of one segment of the TScreenObject with an individual cell or element in the grid.
Class TAssociateList  
record TIntersectionLocation  
record TIntersection  
Class TSubPolygon TSubPolygon is used to make determining whether a point is inside a TScreenObject faster and to make finding the nearest point on a line faster.
Class TCellAssignment  
Class TCellAssignmentList If any new properties are added, be sure to update Assign too.
Class TCellListsModelAssociation  
Class TCMList  
Class TCachedCells  
Class TCustomScreenObjectDelegate TCustomScreenObjectDelegate is an abstract base class. Descendants are used for assigning properties to TDataArrays from the front and side views.
Class TDelegateItem  
Class TDelegateCollection  
Class TCustomPhastBoundaryCollection TCustomPhastBoundaryCollection is an abstract base class. Its descendants store a series of TCustomPhastBoundaryConditions. The series define how one aspect of a boundary condition changes with time.
Class TRealPhastBoundaries TRealPhastBoundaries stores a collection of TRealPhastBoundaryConditions.
Class TIntegerPhastBoundaries TIntegerPhastBoundaries stores a collection of // TIntegerPhastBoundaryConditions.
Class TCustomPhastBoundary TCustomPhastBoundary is an abstract base class. Its descendants are used to define all aspects of one type of boundary condition for one TScreenObject including those aspects that vary with time.
Class TCustomInterpolatedBoundary  
Class TCustomOrientedPhastBoundary TCustomOrientedPhastBoundary represents a boundary condition that only applies to one TViewDirection.
Class TFluxBoundary TFluxBoundary represents a flux boundary in PHAST for one TScreenObject.
Class TLeakyBoundary TLeakyBoundary represents a leaky boundary in PHAST for one TScreenObject.
Class TRiverBoundary TRiverBoundary represents a river boundary in PHAST for one TScreenObject.
Class TSpecifiedHeadBoundary TSpecifiedHeadBoundary represents a specified head boundary in PHAST for one TScreenObject.
Class TWellInterval TWellInterval an open interval in a well boundary in PHAST.
Class TWellIntervals TWellIntervals represents a series of TWellIntervals.
Class TWellBoundary TWellBoundary represents a well in PHAST for one TScreenObject.
Class TModflowBoundaries TModflowBoundaries is the internal representation of an object on the screen.
Class TUsedWithModelItem  
Class TUsedWithModelCollection  
Class TScreenObject  
Class TScreenObjectList  
Class TCustomDataListItem TCustomDataListItem provides functionality used in storing multiple values associated with a single screen object (a TMultiValueScreenObject); It is used as an ancestor of TRealDataListItem and TIntegerDataListItem which actually hold data.
Class TRealDataListItem TRealDataListItem is a TCustomDataListItem specialized for holding real numbers.
Class TIntegerDataListItem TIntegerDataListItem is a TCustomDataListItem specialized for specialized for holding integers.
Class TDataListCollection TDataListCollection is a collection of TCustomDataListItem's. It is used to store data by zones in a TMultiValueScreenObject.
Class TRealDataListCollection TRealDataListCollection is a descendant of TDataListCollection specialized for storing real numbers.
Class TIntegerDataListCollection TIntegerDataListCollection is a descendant of TDataListCollection specialized for storing integers.
Class TSelectedVertexItem TSelectedVertexItem is used to store or read whether a vertex in a TScreenObject is selected or not.
Class TSelectedVertexCollection TSelectedVertexCollection is used to store or read which vertices in a TScreenObject are selected.
Class TPointItem TPointItem is used to store a TPoint2D.
Class TPointCollection TPointCollection is used to store a series of TPoint2Ds.
Class TScreenObjectItem TScreenObjectItem is used in reading a TScreenObject from or writing it to a stream.
Class TPhastDelegate  
Class TModflowDataObject  
Class TModflowDelegate  
Class TModflowLGRDelegate  
Class TModflowNWTDelegate  
Class TSutraDelegate  
Class TCustomPhastBoundaryCondition TCustomPhastBoundaryCondition is and abstract base class. Its descendants, TIntegerPhastBoundaryCondition and TRealPhastBoundaryCondition, are used to define the value of one aspect of a boundary condition for one time period.
Class TRealPhastBoundaryCondition TRealPhastBoundaryCondition is used to define the value of one aspect of a boundary condition for one time period. The aspect of the boundary condition must be a real number. An example is the head in a specified head boundary.
Class TIntegerPhastBoundaryCondition TIntegerPhastBoundaryCondition is used to define the value of one aspect of a boundary condition for one time period. The aspect of the boundary condition must be an integer. An example is the associated solution in a specified head boundary.
Class TMultiValueScreenObject TMultiValueScreenObject is a TScreenObject that can store a series of integer or real number values associated with a data set. TMultiValueScreenObject is used when importing a zone from an existing PHAST model.
Class TScreenObjectCollection TScreenObjectCollection is used for reading a series of TScreenObjects from or writing them to a file or the clipboard.
Class TScreenObjectClipboard  

Functions and Procedures

procedure ResetScreenObjectFunction(const DataSetIndex: integer; const ScreenObject: TScreenObject; const Compiler: TRbwParser; const DataSetDataType: TRbwDataType; const ErrorMessage: string; const IsBoundary: boolean);
function XIntersection(const Point1, Point2: TEdgePoint; const Y: real): real;
function YIntersection(const Point1, Point2: TEdgePoint; const X: real): real; overload;
function YIntersection(const Point1, Point2: TPoint2D; const X: real): real; overload;
function ScreenObjectCompare(Item1, Item2: Pointer): Integer;
procedure GetLayerFromZ(Z: Double; var CellLocation: TCellLocation; Grid: TModflowGrid; Model: TBaseModel);
procedure SelectAScreenObject(ScreenObject: TScreenObject);
function FindIntersectionPoints(Poly1, Poly2: TSubPolygon; var Intersections: TIntersectionArray; var Count: integer): boolean;
procedure GlobalRemoveScreenObjectDataArraySubscription(Sender: TObject; Subject: TObject; const AName: string);
procedure GlobalRestoreDataArraySubscription(Sender: TObject; Subject: TObject; const AName: string);
procedure GlobalDummyHandleSubscription(Sender: TObject; Subject: TObject; const AName: string);
procedure GlobalRemoveElevationSubscription(Sender: TObject; Subject: TObject; const AName: string);
procedure GlobalRestoreElevationSubscription(Sender: TObject; Subject: TObject; const AName: string);
procedure GlobalRemoveHigherElevationSubscription(Sender: TObject; Subject: TObject; const AName: string);
procedure GlobalRestoreHigherElevationSubscription(Sender: TObject; Subject: TObject; const AName: string);
procedure GlobalRemoveLowerElevationSubscription(Sender: TObject; Subject: TObject; const AName: string);
procedure GlobalRestoreLowerElevationSubscription(Sender: TObject; Subject: TObject; const AName: string);
procedure GlobalRemoveBoundaryDataArraySubscription(Sender: TObject; Subject: TObject; const AName: string);
procedure GlobalRestoreBoundaryDataArraySubscription(Sender: TObject; Subject: TObject; const AName: string);
procedure GlobalRemovePhastBoundarySubscription(Sender: TObject; Subject: TObject; const AName: string);
procedure GlobalRestorePhastBoundarySubscription(Sender: TObject; Subject: TObject; const AName: string);
function IsValueInside(const First, Middle, Last: real): boolean;
function PointInConcavePolygon(const Point:TPoint2D; const Polygon:TPolygon2D):Boolean;

Types

T2DRealPointArray6 = array[0..5] of TPoint2D;
TWhichElevation = (...);
TEdgePosition = (...);
PEdgePoint = ˆTEdgePoint;
TEdgePointArray = array of TEdgePoint;
TIntersectionArray = array of TIntersection;
TAssignmentMethod = (...);
TCachedCellArray = array[Low(TAssignmentLocation)..High(TAssignmentLocation)] of TCellAssignmentList;
TCustomScreenObjectDelegateClass = class of TCustomScreenObjectDelegate;
TSolutionType = (...);
TScreenObjectClass = class of TScreenObject;
TResetProcedure = procedure(Compiler: TRbwParser) of object;

Constants

ObjectPrefix = 'Object';
StrInvalidScreenObjec = 'Invalid screen object vertex index.';
StrParentModel = 'Parent Model';

Description

Functions and Procedures

procedure ResetScreenObjectFunction(const DataSetIndex: integer; const ScreenObject: TScreenObject; const Compiler: TRbwParser; const DataSetDataType: TRbwDataType; const ErrorMessage: string; const IsBoundary: boolean);

If the formula for a TDataArray in a TScreenObject is incorrect, ResetScreenObjectFunction is used to change it to a default value.

function XIntersection(const Point1, Point2: TEdgePoint; const Y: real): real;

Point1 and Point2 define a non-horizontal line. Given Y, XIntersection returns the X value for this point along the line.

function YIntersection(const Point1, Point2: TEdgePoint; const X: real): real; overload;

Point1 and Point2 define a non-vertical line. Given X, YIntersection returns the Y value for this point.

function YIntersection(const Point1, Point2: TPoint2D; const X: real): real; overload;
 
function ScreenObjectCompare(Item1, Item2: Pointer): Integer;

ScreenObjectCompare is a comparison function for List.Sort. It ensures that the TScreenObjects in the list will be sorted propertly. The TScreenObjects are sorted first by their root name (without case sensitivity) and then by the number following the root name.

procedure GetLayerFromZ(Z: Double; var CellLocation: TCellLocation; Grid: TModflowGrid; Model: TBaseModel);

result.Column and result.Row must have already been set when GetLayerFromZ is called.

procedure SelectAScreenObject(ScreenObject: TScreenObject);
 
function FindIntersectionPoints(Poly1, Poly2: TSubPolygon; var Intersections: TIntersectionArray; var Count: integer): boolean;
 
procedure GlobalRemoveScreenObjectDataArraySubscription(Sender: TObject; Subject: TObject; const AName: string);
 
procedure GlobalRestoreDataArraySubscription(Sender: TObject; Subject: TObject; const AName: string);
 
procedure GlobalDummyHandleSubscription(Sender: TObject; Subject: TObject; const AName: string);
 
procedure GlobalRemoveElevationSubscription(Sender: TObject; Subject: TObject; const AName: string);
 
procedure GlobalRestoreElevationSubscription(Sender: TObject; Subject: TObject; const AName: string);
 
procedure GlobalRemoveHigherElevationSubscription(Sender: TObject; Subject: TObject; const AName: string);
 
procedure GlobalRestoreHigherElevationSubscription(Sender: TObject; Subject: TObject; const AName: string);
 
procedure GlobalRemoveLowerElevationSubscription(Sender: TObject; Subject: TObject; const AName: string);
 
procedure GlobalRestoreLowerElevationSubscription(Sender: TObject; Subject: TObject; const AName: string);
 
procedure GlobalRemoveBoundaryDataArraySubscription(Sender: TObject; Subject: TObject; const AName: string);
 
procedure GlobalRestoreBoundaryDataArraySubscription(Sender: TObject; Subject: TObject; const AName: string);
 
procedure GlobalRemovePhastBoundarySubscription(Sender: TObject; Subject: TObject; const AName: string);
 
procedure GlobalRestorePhastBoundarySubscription(Sender: TObject; Subject: TObject; const AName: string);
 
function IsValueInside(const First, Middle, Last: real): boolean;
 
function PointInConcavePolygon(const Point:TPoint2D; const Polygon:TPolygon2D):Boolean;
 

Types

T2DRealPointArray6 = array[0..5] of TPoint2D;

Windows is included to allow AnsiCompareText to be inlined. defines TBitmap32.

TWhichElevation = (...);

TWhichElevation is used when a TScreenObject to specify which one is being handled in the current operation.

Values
  • weHigher:  
  • weLower:  
TEdgePosition = (...);

TEdgePosition stores information about where a TScreenObject is intersecting the grid.

See TEdgePoint and TCellElementSegment.

Values
  • epFirst:  
  • epMiddle:  
  • epLast:  
PEdgePoint = ˆTEdgePoint;

PEdgePoint is a pointer to TEdgePoint;

TEdgePointArray = array of TEdgePoint;

TEdgePointArray is an array of TEdgePoints.

TIntersectionArray = array of TIntersection;
 
TAssignmentMethod = (...);
 
Values
  • amEnclose:  
  • amIntersect:  
TCachedCellArray = array[Low(TAssignmentLocation)..High(TAssignmentLocation)] of TCellAssignmentList;
 
TCustomScreenObjectDelegateClass = class of TCustomScreenObjectDelegate;
 
TSolutionType = (...);

TSolutionType specifies the type of solution in a specified head boundary condition. stAssociated means that the solution is merely associated with the head. stSpecified specifies / that the solution also has a fixed value.

Values
  • stAssociated:  
  • stSpecified:  
TScreenObjectClass = class of TScreenObject;

TScreenObjectClass is used in creating descendants of TScreenObject when reading a model from a file and when the user creates a new TScreenObject.

TResetProcedure = procedure(Compiler: TRbwParser) of object;
 

Constants

ObjectPrefix = 'Object';
 
StrInvalidScreenObjec = 'Invalid screen object vertex index.';
 
StrParentModel = 'Parent Model';
 

Author


Generated by PasDoc 0.12.1 on 2013-05-13 15:42:00