Class TModflowDelegate

DescriptionHierarchyFieldsMethodsProperties

Unit

Declaration

type TModflowDelegate = class(TCustomScreenObjectDelegate)

Description

no description available, TCustomScreenObjectDelegate description follows

TCustomScreenObjectDelegate is an abstract base class. Descendants are used for assigning properties to TDataArrays from the front and side views.

Hierarchy

Overview

Methods

Strict Private procedure AssignColAndRowIndicies( var ColIndex, RowIndex, LayerIndex : Integer; const HorizontalIndex1, HorizontalIndex2, PerpendicularIndex: Integer);
Strict Private procedure AssignParallellLimits(AModel: TBaseModel; out FirstParallelIndexA, LastParallelIndexA, FirstParallelIndexB, LastParallelIndexB: Integer);
Strict Private function FindLayer(const ColOrRow: integer; const Location: TEdgePoint; const CellOutlines: T2DRealPointArray; const MovingUp: boolean): integer;
Strict Private function CountIntersectPointsOnEdge(const ColOrRow, Layer, EdgeIndex: integer; const FirstPoint, SecondPoint: TPoint2D; const CellOutlines: T2DRealPointArray; out PointsOnEdge: TRealPointArray): integer;
Strict Private function FindIntersectionSurface(const FirstCol, LastCol, LayerIndex: integer; const PreviousPoint, APoint: TEdgePoint; var IntersectionLocation: TEdgePoint; const CellOutlines: T2DRealPointArray; out Col: integer): boolean;
Strict Private function FindLayerOnEdge(const APoint, PreviousPoint: TEdgePoint; var IntersectionLocation: TEdgePoint; const CellOutline: T2DRealPointArray; const EdgeIndex: integer): integer;
Strict Private function OutlineVertex(const ColOrRow, Layer, PointIndex: integer; const CellOutlines: T2DRealPointArray): TPoint2D;
Strict Private function InCell(const ColOrRow, Layer: integer; const TestPoint: TEdgePoint; const CellOutlines: T2DRealPointArray): boolean;
Strict Private procedure GetHorizontalLimitsOfGrid(const Grid: TCustomModelGrid; out GridMinHorizontal, GridMaxHorizontal: real);
Strict Private procedure GetVerticalLimitsOfGrid(const Grid: TCustomModelGrid; out GridMinZ, GridMaxZ: Real);
Strict Private function GetColOrRow(const Grid: TCustomModelGrid; const APoint: TEdgePoint; const GridMinHorizontal, GridMaxHorizontal: Real): integer;
Strict Private procedure GetHorizontalLimits(const Grid: TCustomModelGrid; var HorizontalLimit: Integer; var PerpendicularLimit: Integer);
Strict Private procedure GetRotatedPoints(var RotatedPoints: TEdgePointArray);
Strict Private function GetHorizontalIndexFromLocation(const X: Real; const Grid: TCustomModelGrid): integer;
Strict Private procedure CreateSegment(const Point1,Point2: TEdgePoint; const LayerIndex, PerpendicularIndex, HorizontalIndex, VertexIndex, SectionIndex: Integer; var ASegment: TCellElementSegment);
Strict Private function IsPointInside(const CellLocation3D: T3DRealPoint; Grid: TCustomModelGrid; out SectionIndex: integer): boolean;
Strict Private function GetPerpendiularLimit(const Grid: TCustomModelGrid): integer;
Strict Private procedure AssignValuesToDataSet( const DataSet: TDataArray; OtherData: TObject; AModel: TBaseModel; UseLgrEdgeCells: TLgrCellTreatment; AssignmentLocation: TAssignmentLocation = alAll);
Strict Private procedure UpdateHorizontalRangeOfCellsToCheck( var FirstHorizontalIndex, LastHorizontalIndex: Integer; const HorizontalIndex, HorizontalLimit: Integer; const APoint, PreviousPoint: TEdgePoint);
Private function AssignElevations(Const ColIndex, RowIndex, LayerIndex: integer; AModel: TBaseModel): boolean;
Private function ElevationOk(const Grid: TCustomModelGrid; const PerpendicularIndex: integer; const ColIndex: integer; const RowIndex: integer): boolean;
Private function GetCellOutlines(const Grid: TCustomModelGrid; const RowOrCol: integer): T2DRealPointArray;
Private procedure UpdateSegments(AModel: TBaseModel; const EvaluatedAt: TEvaluatedAt);
Private procedure GetCellsToAssign( const DataSetFunction: string; OtherData: TObject; const EvaluatedAt: TEvaluatedAt; CellList: TCellAssignmentList; AssignmentLocation: TAssignmentLocation; Orientation: TDataSetOrientation; AModel: TBaseModel);
Private procedure AddFrontSideSubSegments(var ASegment: TCellElementSegment; AModel: TBaseModel; const CellOutlines: T2DRealPointArray);
Strict Protected function DataSetUsed(const DataSet: TDataArray; var OtherData: TObject; AModel: TBaseModel): boolean; override;
Protected procedure GetFrontCellsToAssign( const DataSetFunction: string; OtherData: TObject; const DataSet: TDataArray; CellList: TCellAssignmentList; AssignmentLocation: TAssignmentLocation; AModel: TBaseModel); override;
Protected procedure GetSideCellsToAssign( const DataSetFunction: string; OtherData: TObject; const DataSet: TDataArray; CellList: TCellAssignmentList; AssignmentLocation: TAssignmentLocation; AModel: TBaseModel); override;
Protected procedure GetTopCellsToAssign( const DataSetFunction: string; OtherData: TObject; const DataSet: TDataArray; CellList: TCellAssignmentList; AssignmentLocation: TAssignmentLocation; AModel: TBaseModel); override;
Public procedure InitializeExpression(out Compiler: TRbwParser; out DataSetFunction: string; out Expression: TExpression; const DataSet: TDataArray; const OtherData: TObject); override;
Public procedure AssignSelectedCells(AModel: TBaseModel); override;
Public procedure AssignValuesToFrontDataSet( const DataSet: TDataArray; OtherData: TObject; AModel: TBaseModel; UseLgrEdgeCells: TLgrCellTreatment; AssignmentLocation: TAssignmentLocation = alAll); override;
Public procedure AssignValuesToSideDataSet( const DataSet: TDataArray; OtherData: TObject; AModel: TBaseModel; UseLgrEdgeCells: TLgrCellTreatment; AssignmentLocation: TAssignmentLocation = alAll); override;
Public procedure AssignValuesToTopDataSet( const DataSet: TDataArray; OtherData: TObject; AModel: TBaseModel; UseLgrEdgeCells: TLgrCellTreatment; AssignmentLocation: TAssignmentLocation = alAll); override;
Public constructor Create(ScreenObject: TScreenObject); override;
Public procedure UpdateFrontSegments(AModel: TBaseModel; const EvaluatedAt: TEvaluatedAt); override;
Public procedure UpdateSideSegments(AModel: TBaseModel; const EvaluatedAt: TEvaluatedAt); override;
Public destructor Destroy; override;

Description

Methods

Strict Private procedure AssignColAndRowIndicies( var ColIndex, RowIndex, LayerIndex : Integer; const HorizontalIndex1, HorizontalIndex2, PerpendicularIndex: Integer);

AssignColAndRowIndicies assigns values of ColIndex, RowIndex, LayerIndex based on the FScreenObject.ViewDirection and HorizontalIndex1, HorizontalIndex2, and PerpendicularIndex

Strict Private procedure AssignParallellLimits(AModel: TBaseModel; out FirstParallelIndexA, LastParallelIndexA, FirstParallelIndexB, LastParallelIndexB: Integer);

AssignParallellLimits returns the extent of the grid that should be searched for enclosed or intersected cells.

Strict Private function FindLayer(const ColOrRow: integer; const Location: TEdgePoint; const CellOutlines: T2DRealPointArray; const MovingUp: boolean): integer;

FindLayer is used with the front and side views of the model. It returns the layer number of the cell containing Location.

Strict Private function CountIntersectPointsOnEdge(const ColOrRow, Layer, EdgeIndex: integer; const FirstPoint, SecondPoint: TPoint2D; const CellOutlines: T2DRealPointArray; out PointsOnEdge: TRealPointArray): integer;

CountIntersectPointsOnEdge counts the number of times a line segment defined by FirstPoint and SecondPoint intersects the edge of a cell outline specified by EdgeIndex. The result can be 0, 1 or 2. The latter occurs if the cell edge is colinear with the line and overlaps it.

Strict Private function FindIntersectionSurface(const FirstCol, LastCol, LayerIndex: integer; const PreviousPoint, APoint: TEdgePoint; var IntersectionLocation: TEdgePoint; const CellOutlines: T2DRealPointArray; out Col: integer): boolean;

FindIntersectionSurface returns True if a line segment defined by PreviousPoint and APoint intersects a cell boundary between two layers between FirstCol and LastCol. If it does, IntersectionLocation is set to the place where they first intersect.

Strict Private function FindLayerOnEdge(const APoint, PreviousPoint: TEdgePoint; var IntersectionLocation: TEdgePoint; const CellOutline: T2DRealPointArray; const EdgeIndex: integer): integer;

FindLayerOnEdge is used when a line segment defined by APoint and PreviousPoint intersect the vertical edge of the grid. FindLayerOnEdge is used to find the layer which the grid is intersected.

Strict Private function OutlineVertex(const ColOrRow, Layer, PointIndex: integer; const CellOutlines: T2DRealPointArray): TPoint2D;

OutlineVertex returns a point on the outline of a cell.

Strict Private function InCell(const ColOrRow, Layer: integer; const TestPoint: TEdgePoint; const CellOutlines: T2DRealPointArray): boolean;

InCell returns True if TestPoint is inside a cell.

Strict Private procedure GetHorizontalLimitsOfGrid(const Grid: TCustomModelGrid; out GridMinHorizontal, GridMaxHorizontal: real);

GetHorizontalLimitsOfGrid returns the extent of the grid along either columns or rows depending on FScreenObject.ViewDirection

Strict Private procedure GetVerticalLimitsOfGrid(const Grid: TCustomModelGrid; out GridMinZ, GridMaxZ: Real);

GetVerticalLimitsOfGrid returns the lowest and highest grid locations.

Strict Private function GetColOrRow(const Grid: TCustomModelGrid; const APoint: TEdgePoint; const GridMinHorizontal, GridMaxHorizontal: Real): integer;

GetColOrRow returns the column or row in the grid where APoint is located.

Strict Private procedure GetHorizontalLimits(const Grid: TCustomModelGrid; var HorizontalLimit: Integer; var PerpendicularLimit: Integer);

GetHorizontalLimits returns the maximum extent of the grid depending on FScreenObject.ViewDirection.

Strict Private procedure GetRotatedPoints(var RotatedPoints: TEdgePointArray);

GetRotatedPoints sets RotatedPoints from FScreenObject.EdgePoints. GetRotatedPoints depends on FScreenObject.ViewDirection.

Strict Private function GetHorizontalIndexFromLocation(const X: Real; const Grid: TCustomModelGrid): integer;
 
Strict Private procedure CreateSegment(const Point1,Point2: TEdgePoint; const LayerIndex, PerpendicularIndex, HorizontalIndex, VertexIndex, SectionIndex: Integer; var ASegment: TCellElementSegment);
 
Strict Private function IsPointInside(const CellLocation3D: T3DRealPoint; Grid: TCustomModelGrid; out SectionIndex: integer): boolean;

IsPointInside creates a set of segments for each cell intersected by FScreenObject in front or side views.

Strict Private function GetPerpendiularLimit(const Grid: TCustomModelGrid): integer;
 
Strict Private procedure AssignValuesToDataSet( const DataSet: TDataArray; OtherData: TObject; AModel: TBaseModel; UseLgrEdgeCells: TLgrCellTreatment; AssignmentLocation: TAssignmentLocation = alAll);
 
Strict Private procedure UpdateHorizontalRangeOfCellsToCheck( var FirstHorizontalIndex, LastHorizontalIndex: Integer; const HorizontalIndex, HorizontalLimit: Integer; const APoint, PreviousPoint: TEdgePoint);
 
Private function AssignElevations(Const ColIndex, RowIndex, LayerIndex: integer; AModel: TBaseModel): boolean;

AssignElevations assigns values to FTopElevation and FBottomElevation based on the cell specified by ColIndex, RowIndex, and LayerIndex.

Private function ElevationOk(const Grid: TCustomModelGrid; const PerpendicularIndex: integer; const ColIndex: integer; const RowIndex: integer): boolean;
 
Private function GetCellOutlines(const Grid: TCustomModelGrid; const RowOrCol: integer): T2DRealPointArray;
 
Private procedure UpdateSegments(AModel: TBaseModel; const EvaluatedAt: TEvaluatedAt);
 
Private procedure GetCellsToAssign( const DataSetFunction: string; OtherData: TObject; const EvaluatedAt: TEvaluatedAt; CellList: TCellAssignmentList; AssignmentLocation: TAssignmentLocation; Orientation: TDataSetOrientation; AModel: TBaseModel);
 
Private procedure AddFrontSideSubSegments(var ASegment: TCellElementSegment; AModel: TBaseModel; const CellOutlines: T2DRealPointArray);
 
Strict Protected function DataSetUsed(const DataSet: TDataArray; var OtherData: TObject; AModel: TBaseModel): boolean; override;
 
Protected procedure GetFrontCellsToAssign( const DataSetFunction: string; OtherData: TObject; const DataSet: TDataArray; CellList: TCellAssignmentList; AssignmentLocation: TAssignmentLocation; AModel: TBaseModel); override;
 
Protected procedure GetSideCellsToAssign( const DataSetFunction: string; OtherData: TObject; const DataSet: TDataArray; CellList: TCellAssignmentList; AssignmentLocation: TAssignmentLocation; AModel: TBaseModel); override;
 
Protected procedure GetTopCellsToAssign( const DataSetFunction: string; OtherData: TObject; const DataSet: TDataArray; CellList: TCellAssignmentList; AssignmentLocation: TAssignmentLocation; AModel: TBaseModel); override;
 
Public procedure InitializeExpression(out Compiler: TRbwParser; out DataSetFunction: string; out Expression: TExpression; const DataSet: TDataArray; const OtherData: TObject); override;
 
Public procedure AssignSelectedCells(AModel: TBaseModel); override;
 
Public procedure AssignValuesToFrontDataSet( const DataSet: TDataArray; OtherData: TObject; AModel: TBaseModel; UseLgrEdgeCells: TLgrCellTreatment; AssignmentLocation: TAssignmentLocation = alAll); override;

See AssignValuesToDataSet.

Public procedure AssignValuesToSideDataSet( const DataSet: TDataArray; OtherData: TObject; AModel: TBaseModel; UseLgrEdgeCells: TLgrCellTreatment; AssignmentLocation: TAssignmentLocation = alAll); override;

See AssignValuesToDataSet.

Public procedure AssignValuesToTopDataSet( const DataSet: TDataArray; OtherData: TObject; AModel: TBaseModel; UseLgrEdgeCells: TLgrCellTreatment; AssignmentLocation: TAssignmentLocation = alAll); override;

See AssignValuesToDataSet.

Public constructor Create(ScreenObject: TScreenObject); override;
 
Public procedure UpdateFrontSegments(AModel: TBaseModel; const EvaluatedAt: TEvaluatedAt); override;
 
Public procedure UpdateSideSegments(AModel: TBaseModel; const EvaluatedAt: TEvaluatedAt); override;
 
Public destructor Destroy; override;
 

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