Class TElevationStorage

DescriptionHierarchyFieldsMethodsProperties

Unit

Declaration

type TElevationStorage = class(TObject)

Description

TElevationStorage is intended to store a series of points that represent upper or lower "elevations" of a TScreenObject perpendicular to a TScreenObject whose ViewDirection is vdFront or vdSide.

TElevationStorage is used in MODFLOW models to define the "upper" and "lower" surfaces of 3D objects drawn on the front or side views of the model. It is needed on those views because the layers may not be flat. Both row and column boundaries are vertical planes so TElevationStorage isn't need for the top view.

Hierarchy

Overview

Fields

Strict Private FFirstCapacity: integer;
Strict Private FSecondCapacity: integer;
Strict Private FSecondCount: array of integer;
Strict Private FElevations: T3DRealPointArray2;
Strict Private FCachedElevations: T3DRealPointArray2;
Strict Private FElevationsUpToDate: boolean;

Methods

Private function GetElevations: T3DRealPointArray2;
Private function PointsAreDifferent(const OtherPoint, Point: T3DRealPoint): boolean;
Private procedure UpdateCache;
Public procedure AddPoint(const FirstIndex: integer; const Point: T3DRealPoint);
Public procedure Clear;
Public procedure SetCapacities(const FirstCapacity, SecondCapacity: integer);

Properties

Public property Elevations: T3DRealPointArray2 read GetElevations;

Description

Fields

Strict Private FFirstCapacity: integer;

FFirstCapacity is the maximum size of the first dimension of Elevations. FFirstCapacity would normally be the number of rows for the front view or the number of columns for the side view.

Strict Private FSecondCapacity: integer;

FSecondCapacity is the maximum size of the second dimension of Elevations. FSecondCapacity would normally be the number of columns times the number of layers for the front view or the number of rows times the number of layers for the side view.

Strict Private FSecondCount: array of integer;

FSecondCount records how many items are stored for each row or column in FElevations

Strict Private FElevations: T3DRealPointArray2;

FElevations is used to store the elevations internally. See Elevations;

Strict Private FCachedElevations: T3DRealPointArray2;

FCachedElevations is used to report the elevations to consumers. The elevations are sorted before being reported. See Elevations;

Strict Private FElevationsUpToDate: boolean;

FElevationsUpToDate is used to record whether FCachedElevations are up-to-date or whether they need to be recalculated.

Methods

Private function GetElevations: T3DRealPointArray2;

See Elevations

Private function PointsAreDifferent(const OtherPoint, Point: T3DRealPoint): boolean;

PointsAreDifferent tests whether OtherPoint and Point are different.

Private procedure UpdateCache;

UpdateCache updates FCachedElevations.

Public procedure AddPoint(const FirstIndex: integer; const Point: T3DRealPoint);

AddPoint adds a point on the front or side view of the TScreenObject.

Parameters
FirstIndex
is the row or column number of the location being added.
Point
is the location being added.
Public procedure Clear;

Clear clears all the elevations in the TElevationStorage.

Public procedure SetCapacities(const FirstCapacity, SecondCapacity: integer);

SetCapacities sets the maximum size of Elevations.

Properties

Public property Elevations: T3DRealPointArray2 read GetElevations;

Elevations are the "elevations" on the front or side views. The first index is a row or column number. The points in each row or column will be sorted in ascending order. Elevations will be recalculated if required.


Generated by PasDoc 0.12.1 on 2013-05-13 15:41:31