Class TSutraMesh3D

DescriptionHierarchyFieldsMethodsProperties

Unit

Declaration

type TSutraMesh3D = class(TCustomSutraMesh, IMesh)

Description

no description available, TCustomSutraMesh description follows
no description available, TCustomDiscretization description follows
no description available, TGoPhastPersistent description follows

Hierarchy

Overview

Fields

Private FElements: TSutraElement3D_Collection;
Private FNodes: TSutraNode3D_Collection;
Private FMesh2D: TSutraMesh2D;
Private FElementDrawingChoice: TDrawingChoice;
Private FMeshType: TMeshType;
Private FNodeArray: array of array of TSutraNode3D;
Private FElementArray: array of array of TSutraElement3D;
Private FMeshUpdate: integer;
Private FCanDraw: boolean;
Private FCrossSection: TCrossSection;
Private FThreeDGridObserver: TObserver;
Private FElevationsNeedUpdating: boolean;
Private FUpdatingElevations: boolean;
Private FNodeDrawingChoice: TDrawingChoice;
Private FOnSelectedLayerChange: TNotifyEvent;
Private FActiveNodes: TSutraNode3D_List;
Private FActiveElements: TSutraElement3DList;
Private FNeedToRecalculateTopColors: Boolean;
Private FNeedToRecalculateFrontColors: Boolean;
Private FStoredBlockAngle: double;
Private FStoredBlockPolygons: TCellElementPolygons2D;
Private FStoredBlockLimits: TLimitsArray;
Private FStoredNodeAngle: double;
Private FStoredNodePolygons: TCellElementPolygons2D;
Private FStoredNodeLimits: TLimitsArray;
Private FMaxDist: double;
Private FMinDist: double;
Private FLoading: Boolean;
Private FNodeIntervalTree: TRbwIntervalTree;
Private FElementIntervalTree: TRbwIntervalTree;
Private FNodeRangeTree: TRbwRangeTree;
Private FElementRangeTree: TRbwRangeTree;
Private FCanDraw3D: boolean;
Private FNeedToRedraw3d: Boolean;
Private FListsCreated: Boolean;
Private FCrossSectionGLIndex: GLuint;
Private FLayerGLIndex: GLuint;
Private FNeedToRecordLayer: Boolean;
Private FNeedToRecordCrossSection: Boolean;
Private FElementNumbers: TIntegerCollection;
Private FNodeNumbers: TIntegerCollection;

Methods

Private procedure SetElements(const Value: TSutraElement3D_Collection);
Private procedure SetNodes(const Value: TSutraNode3D_Collection);
Private procedure SetMesh2D(const Value: TSutraMesh2D);
Private procedure SetElementDrawingChoice(const Value: TDrawingChoice);
Private procedure SetMeshType(const Value: TMeshType);
Private function GetNodeArrayMember(Layer, Col: Integer): TSutraNode3D;
Private procedure SetThreeDDataSet(const Value: TDataArray);
Private procedure SetTopDataSet(const Value: TDataArray);
Private function GetCanDraw: boolean;
Private procedure SetCanDraw(const Value: boolean);
Private function GetThreeDDataSet: TDataArray;
Private function GetTopDataSet: TDataArray;
Private procedure SetSelectedLayer(Value: integer);
Private function GetLayerCount: Integer;
Private function GetSelectedLayer: integer;
Private function GetElementArrayMember(Layer, Col: Integer): TSutraElement3D;
Private procedure SetCrossSection(const Value: TCrossSection);
Private procedure DrawFront(const BitMap: TBitmap32);
Private procedure DrawPointsOnCrossSection(BitMap: TBitmap32);
Private function GetTopGridObserver: TObserver;
Private procedure SetThreeDGridObserver(const Value: TObserver);
Private procedure SetTopGridObserver(const Value: TObserver);
Private procedure UpdateElevations;
Private procedure SetNodeDrawingChoice(const Value: TDrawingChoice);
Private function GetElementFont: TFont;
Private function GetNodeFont: TFont;
Private procedure SetElementFont(const Value: TFont);
Private procedure SetNodeFont(const Value: TFont);
Private function GetDrawNodeNumbers: Boolean;
Private procedure SetDrawNodeNumbers(const Value: Boolean);
Private function GetDrawElementNumbers: Boolean;
Private procedure SetDrawElementNumbers(const Value: Boolean);
Private procedure SetNeedToRecalculateFrontColors(const Value: Boolean);
Private procedure SetNeedToRecalculateTopColors(const Value: Boolean);
Private function GetIntervalTree(EvalAt: TEvaluatedAt; Angle: Double): TRbwIntervalTree;
Private function GetRangeTree(EvalAt: TEvaluatedAt; Angle: Double): TRbwRangeTree;
Private procedure GetXIntervalLimits(Subject: TObject; out LowerBoundary, UpperBoundary: double);
Private procedure GetYIntervalLimits(Subject: TObject; out LowerBoundary, UpperBoundary: double);
Private procedure SetThreeDContourDataSet(const Value: TDataArray);
Private procedure SetTopContourDataSet(const Value: TDataArray);
Private function GetThreeDContourDataSet: TDataArray;
Private function GetTopContourDataSet: TDataArray;
Private procedure DrawFrontContours(const ZoomBox: TQRbwZoomBox2; const BitMap: TBitmap32);
Private function GetCanDraw3D: Boolean;
Private procedure RecordLayer;
Private procedure RecordCrossSection;
Private procedure CrossSectionMoved(Sender: TObject);
Private procedure SetElementNumbers(const Value: TIntegerCollection);
Private procedure SetNodeNumbers(const Value: TIntegerCollection);
Private procedure SetElevationsNeedUpdating(const Value: boolean);
Protected procedure CalculateMinMax(DataSet: TDataArray; var MinMaxInitialized: Boolean; var MinMax: TMinMax; StringValues: TStringList); override;
Protected function GetActiveNodeCount: integer;
Protected function GetActiveNode(Index: Integer): INode;
Protected function GetActiveElementCount: integer;
Protected function GetActiveElement(Index: Integer): IElement;
Public Constructor Create(Model: TBaseModel);
Public destructor Destroy; override;
Public procedure UpdateNodeNumbers;
Public procedure UpdateElementNumbers;
Public procedure RestoreNodeNumbers;
Public procedure RestoreElementNumbers;
Public procedure Assign(Source: TPersistent); override;
Public procedure SimpleRenumber;
Public function Bandwidth: Integer;
Public function OkLocation(const DataSet: TDataArray; const Layer, Row, Col: integer): boolean; override;
Public procedure Clear;
Public procedure Draw(const BitMap: TBitmap32; const ViewDirection: TViewDirection);
Public function TopContainingCellOrElement(APoint: TPoint2D; const EvaluatedAt: TEvaluatedAt): T2DTopCell;
Public function MeshLimits(ViewDirection: TViewDirection): TGridLimit;
Public function MeshBox(ViewDirection: TViewDirection): TPolygon2D;
Public procedure MeshChanged;
Public procedure UpdateElementsInNodes;
Public function FrontPolygons(Angle: Double; EvaluatedAt: TEvaluatedAt; out Limits: TLimitsArray): TCellElementPolygons2D;
Public procedure GetMinMax(var MinMax: TMinMax; DataSet: TDataArray; StringValues: TStringList); override;
Public procedure EndUpdate; override;
Public procedure GetNodesOnCrossSection(NodeList: TSutraNode2D_List);
Public function GetCrossSectionStart: TPoint2D;
Public procedure GetElementsOnCrossSection(ElementList: TSutraElement2D_List);
Public function RotateFromRealWorldCoordinatesToMeshCoordinates (const APoint: TPoint2D): TPoint2D;
Public function RotateFromMeshCoordinatesToRealWorldCoordinates (const APoint: TPoint2D): TPoint2D; overload;
Public procedure CheckUpdateElevations;
Public procedure InvalidatePolygons;
Public procedure Draw3D;

Properties

Public property ActiveNodeCount: Integer read GetActiveNodeCount;
Public property ActiveElementCount: Integer read GetActiveElementCount;
Public property ElevationsNeedUpdating: boolean read FElevationsNeedUpdating write SetElevationsNeedUpdating;
Public property NodeArray[Layer:Integer;Col:Integer]: TSutraNode3D read GetNodeArrayMember;
Public property ElementArray[Layer:Integer;Col:Integer]: TSutraElement3D read GetElementArrayMember;
Public property ThreeDDataSet: TDataArray read GetThreeDDataSet write SetThreeDDataSet;
Public property TopDataSet: TDataArray read GetTopDataSet write SetTopDataSet;
Public property TopContourDataSet: TDataArray read GetTopContourDataSet write SetTopContourDataSet;
Public property ThreeDContourDataSet: TDataArray read GetThreeDContourDataSet write SetThreeDContourDataSet;
Public property CanDraw: boolean read GetCanDraw write SetCanDraw;
Public property LayerCount: Integer read GetLayerCount;
Public property TopGridObserver: TObserver read GetTopGridObserver write SetTopGridObserver;
Public property ThreeDGridObserver: TObserver read FThreeDGridObserver write SetThreeDGridObserver;
Public property OnSelectedLayerChange: TNotifyEvent read FOnSelectedLayerChange write FOnSelectedLayerChange;
Public property NodeFont: TFont read GetNodeFont write SetNodeFont;
Public property ElementFont: TFont read GetElementFont write SetElementFont;
Public property DrawNodeNumbers: Boolean read GetDrawNodeNumbers write SetDrawNodeNumbers;
Public property DrawElementNumbers: Boolean read GetDrawElementNumbers write SetDrawElementNumbers;
Public property NeedToRecalculateTopColors: Boolean read FNeedToRecalculateTopColors write SetNeedToRecalculateTopColors;
Public property NeedToRecalculateFrontColors: Boolean read FNeedToRecalculateFrontColors write SetNeedToRecalculateFrontColors;
Public property MaxDist: Double read FMaxDist;
Public property MinDist: Double read FMinDist;
Public property Loading: Boolean read FLoading write FLoading;
Public property IntervalTree[EvalAt:TEvaluatedAt;Angle:Double]: TRbwIntervalTree read GetIntervalTree;
Public property RangeTree[EvalAt:TEvaluatedAt;Angle:Double]: TRbwRangeTree read GetRangeTree;
Public property CanDraw3D: Boolean read GetCanDraw3D write FCanDraw3D;
Published property Nodes: TSutraNode3D_Collection read FNodes write SetNodes stored False;
Published property Elements: TSutraElement3D_Collection read FElements write SetElements stored False;
Published property Mesh2D: TSutraMesh2D read FMesh2D write SetMesh2D;
Published property ElementDrawingChoice: TDrawingChoice read FElementDrawingChoice write SetElementDrawingChoice Stored True;
Published property NodeDrawingChoice: TDrawingChoice read FNodeDrawingChoice write SetNodeDrawingChoice Stored True;
Published property MeshType: TMeshType read FMeshType write SetMeshType stored True;
Published property SelectedLayer: integer read GetSelectedLayer write SetSelectedLayer stored True;
Published property CrossSection: TCrossSection read FCrossSection write SetCrossSection;
Published property NodeNumbers: TIntegerCollection read FNodeNumbers write SetNodeNumbers;
Published property ElementNumbers: TIntegerCollection read FElementNumbers write SetElementNumbers;

Description

Fields

Private FElements: TSutraElement3D_Collection;
 
Private FNodes: TSutraNode3D_Collection;
 
Private FMesh2D: TSutraMesh2D;
 
Private FElementDrawingChoice: TDrawingChoice;
 
Private FMeshType: TMeshType;
 
Private FNodeArray: array of array of TSutraNode3D;
 
Private FElementArray: array of array of TSutraElement3D;
 
Private FMeshUpdate: integer;
 
Private FCanDraw: boolean;
 
Private FCrossSection: TCrossSection;
 
Private FThreeDGridObserver: TObserver;
 
Private FElevationsNeedUpdating: boolean;
 
Private FUpdatingElevations: boolean;
 
Private FNodeDrawingChoice: TDrawingChoice;
 
Private FOnSelectedLayerChange: TNotifyEvent;
 
Private FActiveNodes: TSutraNode3D_List;
 
Private FActiveElements: TSutraElement3DList;
 
Private FNeedToRecalculateTopColors: Boolean;
 
Private FNeedToRecalculateFrontColors: Boolean;
 
Private FStoredBlockAngle: double;
 
Private FStoredBlockPolygons: TCellElementPolygons2D;
 
Private FStoredBlockLimits: TLimitsArray;
 
Private FStoredNodeAngle: double;
 
Private FStoredNodePolygons: TCellElementPolygons2D;
 
Private FStoredNodeLimits: TLimitsArray;
 
Private FMaxDist: double;
 
Private FMinDist: double;
 
Private FLoading: Boolean;
 
Private FNodeIntervalTree: TRbwIntervalTree;
 
Private FElementIntervalTree: TRbwIntervalTree;
 
Private FNodeRangeTree: TRbwRangeTree;
 
Private FElementRangeTree: TRbwRangeTree;
 
Private FCanDraw3D: boolean;
 
Private FNeedToRedraw3d: Boolean;
 
Private FListsCreated: Boolean;
 
Private FCrossSectionGLIndex: GLuint;
 
Private FLayerGLIndex: GLuint;
 
Private FNeedToRecordLayer: Boolean;
 
Private FNeedToRecordCrossSection: Boolean;
 
Private FElementNumbers: TIntegerCollection;
 
Private FNodeNumbers: TIntegerCollection;
 

Methods

Private procedure SetElements(const Value: TSutraElement3D_Collection);
 
Private procedure SetNodes(const Value: TSutraNode3D_Collection);
 
Private procedure SetMesh2D(const Value: TSutraMesh2D);
 
Private procedure SetElementDrawingChoice(const Value: TDrawingChoice);
 
Private procedure SetMeshType(const Value: TMeshType);
 
Private function GetNodeArrayMember(Layer, Col: Integer): TSutraNode3D;
 
Private procedure SetThreeDDataSet(const Value: TDataArray);
 
Private procedure SetTopDataSet(const Value: TDataArray);
 
Private function GetCanDraw: boolean;
 
Private procedure SetCanDraw(const Value: boolean);
 
Private function GetThreeDDataSet: TDataArray;
 
Private function GetTopDataSet: TDataArray;
 
Private procedure SetSelectedLayer(Value: integer);
 
Private function GetLayerCount: Integer;
 
Private function GetSelectedLayer: integer;
 
Private function GetElementArrayMember(Layer, Col: Integer): TSutraElement3D;
 
Private procedure SetCrossSection(const Value: TCrossSection);
 
Private procedure DrawFront(const BitMap: TBitmap32);
 
Private procedure DrawPointsOnCrossSection(BitMap: TBitmap32);
 
Private function GetTopGridObserver: TObserver;
 
Private procedure SetThreeDGridObserver(const Value: TObserver);
 
Private procedure SetTopGridObserver(const Value: TObserver);
 
Private procedure UpdateElevations;
 
Private procedure SetNodeDrawingChoice(const Value: TDrawingChoice);
 
Private function GetElementFont: TFont;
 
Private function GetNodeFont: TFont;
 
Private procedure SetElementFont(const Value: TFont);
 
Private procedure SetNodeFont(const Value: TFont);
 
Private function GetDrawNodeNumbers: Boolean;
 
Private procedure SetDrawNodeNumbers(const Value: Boolean);
 
Private function GetDrawElementNumbers: Boolean;
 
Private procedure SetDrawElementNumbers(const Value: Boolean);
 
Private procedure SetNeedToRecalculateFrontColors(const Value: Boolean);
 
Private procedure SetNeedToRecalculateTopColors(const Value: Boolean);
 
Private function GetIntervalTree(EvalAt: TEvaluatedAt; Angle: Double): TRbwIntervalTree;
 
Private function GetRangeTree(EvalAt: TEvaluatedAt; Angle: Double): TRbwRangeTree;
 
Private procedure GetXIntervalLimits(Subject: TObject; out LowerBoundary, UpperBoundary: double);
 
Private procedure GetYIntervalLimits(Subject: TObject; out LowerBoundary, UpperBoundary: double);
 
Private procedure SetThreeDContourDataSet(const Value: TDataArray);
 
Private procedure SetTopContourDataSet(const Value: TDataArray);
 
Private function GetThreeDContourDataSet: TDataArray;
 
Private function GetTopContourDataSet: TDataArray;
 
Private procedure DrawFrontContours(const ZoomBox: TQRbwZoomBox2; const BitMap: TBitmap32);
 
Private function GetCanDraw3D: Boolean;
 
Private procedure RecordLayer;
 
Private procedure RecordCrossSection;
 
Private procedure CrossSectionMoved(Sender: TObject);
 
Private procedure SetElementNumbers(const Value: TIntegerCollection);
 
Private procedure SetNodeNumbers(const Value: TIntegerCollection);
 
Private procedure SetElevationsNeedUpdating(const Value: boolean);
 
Protected procedure CalculateMinMax(DataSet: TDataArray; var MinMaxInitialized: Boolean; var MinMax: TMinMax; StringValues: TStringList); override;
 
Protected function GetActiveNodeCount: integer;
 
Protected function GetActiveNode(Index: Integer): INode;
 
Protected function GetActiveElementCount: integer;
 
Protected function GetActiveElement(Index: Integer): IElement;
 
Public Constructor Create(Model: TBaseModel);
 
Public destructor Destroy; override;
 
Public procedure UpdateNodeNumbers;
 
Public procedure UpdateElementNumbers;
 
Public procedure RestoreNodeNumbers;
 
Public procedure RestoreElementNumbers;
 
Public procedure Assign(Source: TPersistent); override;
 
Public procedure SimpleRenumber;
 
Public function Bandwidth: Integer;
 
Public function OkLocation(const DataSet: TDataArray; const Layer, Row, Col: integer): boolean; override;
 
Public procedure Clear;
 
Public procedure Draw(const BitMap: TBitmap32; const ViewDirection: TViewDirection);
 
Public function TopContainingCellOrElement(APoint: TPoint2D; const EvaluatedAt: TEvaluatedAt): T2DTopCell;
 
Public function MeshLimits(ViewDirection: TViewDirection): TGridLimit;
 
Public function MeshBox(ViewDirection: TViewDirection): TPolygon2D;
 
Public procedure MeshChanged;
 
Public procedure UpdateElementsInNodes;
 
Public function FrontPolygons(Angle: Double; EvaluatedAt: TEvaluatedAt; out Limits: TLimitsArray): TCellElementPolygons2D;
 
Public procedure GetMinMax(var MinMax: TMinMax; DataSet: TDataArray; StringValues: TStringList); override;
 
Public procedure EndUpdate; override;
 
Public procedure GetNodesOnCrossSection(NodeList: TSutraNode2D_List);
 
Public function GetCrossSectionStart: TPoint2D;
 
Public procedure GetElementsOnCrossSection(ElementList: TSutraElement2D_List);
 
Public function RotateFromRealWorldCoordinatesToMeshCoordinates (const APoint: TPoint2D): TPoint2D;
 
Public function RotateFromMeshCoordinatesToRealWorldCoordinates (const APoint: TPoint2D): TPoint2D; overload;
 
Public procedure CheckUpdateElevations;
 
Public procedure InvalidatePolygons;
 
Public procedure Draw3D;
 

Properties

Public property ActiveNodeCount: Integer read GetActiveNodeCount;
 
Public property ActiveElementCount: Integer read GetActiveElementCount;
 
Public property ElevationsNeedUpdating: boolean read FElevationsNeedUpdating write SetElevationsNeedUpdating;
 
Public property NodeArray[Layer:Integer;Col:Integer]: TSutraNode3D read GetNodeArrayMember;
 
Public property ElementArray[Layer:Integer;Col:Integer]: TSutraElement3D read GetElementArrayMember;
 
Public property ThreeDDataSet: TDataArray read GetThreeDDataSet write SetThreeDDataSet;
 
Public property TopDataSet: TDataArray read GetTopDataSet write SetTopDataSet;
 
Public property TopContourDataSet: TDataArray read GetTopContourDataSet write SetTopContourDataSet;
 
Public property ThreeDContourDataSet: TDataArray read GetThreeDContourDataSet write SetThreeDContourDataSet;
 
Public property CanDraw: boolean read GetCanDraw write SetCanDraw;
 
Public property LayerCount: Integer read GetLayerCount;

LayerCount is the number of layers of elements.

Public property TopGridObserver: TObserver read GetTopGridObserver write SetTopGridObserver;
 
Public property ThreeDGridObserver: TObserver read FThreeDGridObserver write SetThreeDGridObserver;
 
Public property OnSelectedLayerChange: TNotifyEvent read FOnSelectedLayerChange write FOnSelectedLayerChange;
 
Public property NodeFont: TFont read GetNodeFont write SetNodeFont;
 
Public property ElementFont: TFont read GetElementFont write SetElementFont;
 
Public property DrawNodeNumbers: Boolean read GetDrawNodeNumbers write SetDrawNodeNumbers;
 
Public property DrawElementNumbers: Boolean read GetDrawElementNumbers write SetDrawElementNumbers;
 
Public property NeedToRecalculateTopColors: Boolean read FNeedToRecalculateTopColors write SetNeedToRecalculateTopColors;
 
Public property NeedToRecalculateFrontColors: Boolean read FNeedToRecalculateFrontColors write SetNeedToRecalculateFrontColors;
 
Public property MaxDist: Double read FMaxDist;

MaxDist is the relative position of the node on the cross section that is furthest from the cross section in the positive direction.

Public property MinDist: Double read FMinDist;

MinDist is the relative position of the node on the cross section that is furthest from the cross section in the negative direction.

Public property Loading: Boolean read FLoading write FLoading;
 
Public property IntervalTree[EvalAt:TEvaluatedAt;Angle:Double]: TRbwIntervalTree read GetIntervalTree;
 
Public property RangeTree[EvalAt:TEvaluatedAt;Angle:Double]: TRbwRangeTree read GetRangeTree;
 
Public property CanDraw3D: Boolean read GetCanDraw3D write FCanDraw3D;
 
Published property Nodes: TSutraNode3D_Collection read FNodes write SetNodes stored False;
 
Published property Elements: TSutraElement3D_Collection read FElements write SetElements stored False;
 
Published property Mesh2D: TSutraMesh2D read FMesh2D write SetMesh2D;
 
Published property ElementDrawingChoice: TDrawingChoice read FElementDrawingChoice write SetElementDrawingChoice Stored True;
 
Published property NodeDrawingChoice: TDrawingChoice read FNodeDrawingChoice write SetNodeDrawingChoice Stored True;
 
Published property MeshType: TMeshType read FMeshType write SetMeshType stored True;
 
Published property SelectedLayer: integer read GetSelectedLayer write SetSelectedLayer stored True;
 
Published property CrossSection: TCrossSection read FCrossSection write SetCrossSection;
 
Published property NodeNumbers: TIntegerCollection read FNodeNumbers write SetNodeNumbers;
 
Published property ElementNumbers: TIntegerCollection read FElementNumbers write SetElementNumbers;
 

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