Description | Hierarchy | Fields | Methods | Properties |
type TPolyhedron = class(TObject)
FF: integer; |
|
FV: integer; |
|
FVertices: array of TPointd; |
|
FFaces: array of TPointi; |
|
FBox: array of TPointdArray; |
|
FOctTree: TRbwOctTree; |
|
bmin: TPointd; |
|
bmax: TPointd; |
|
radius: extended; |
|
StorageIndex: integer; |
function GetF: integer; |
|
function GetV: integer; |
|
function Inbox(q: TPointd): boolean; |
|
procedure RandomRay(var ray: TPointd); |
|
function BoxTest(n: integer; a, b: TPointd): TBoxTestResult; |
|
procedure AddVec(q: TPointd; var ray: TPointd); |
|
procedure NormalVec(a, b, c: TPointd; var n: TPointd); |
|
function Dot(a: TPointd; b: TPointd): extended; |
|
function PlaneCoeff(T: TPointi; var n: TPointd; var D: extended): integer; |
|
procedure SubVec(a, b: TPointd; var c: TPointd); |
|
function SegPlaneInt(T: TPointi; q, r: TPointd; var p: TPointd; var m: integer): TSegPlaneIntersectResult; |
|
function AreaSign(a, b, c: TPointd): integer; |
|
function InTri2D(Tp: array of TPointd; pp: TPointd): TInTriangleResult; |
|
function InTri3D(T: TPointi; m: integer; p: TPointd): TInTriangleResult; |
|
function InPlane(T: TPointi; m: integer; q, r: TPointd; p: TPointd) : TSegTriangleIntersectionResult; |
|
function VolumeSign(a, b, c, D: TPointd): integer; |
|
function SegTriCross(T: TPointi; q, r: TPointd) : TSegTriangleIntersectionResult; |
|
function SegTriInt(T: TPointi; q, r: TPointd; var p: TPointd) : TSegTriangleIntersectionResult; |
|
function FacesSame(FaceIndex1, FaceIndex2: integer): boolean; |
|
Function GetVertex(const VIndex: integer): TPointd; |
|
Function GetFace(const FIndex: integer): TPointi; |
|
Function GetBox(const BIndex: integer): TPointdArray; |
|
procedure SetVertexValue(const VIndex, DimIndex: integer; const Value: extended); |
|
procedure SetVertex(const VIndex: integer; const Value: TPointd); |
|
procedure SetFace(const FIndex: integer; const Value: TPointi); |
|
procedure SetFaceValue(const FIndex, DimIndex: integer; const Value: integer); |
|
procedure SetBox(const BIndex: integer; const Value: TPointdArray); |
|
procedure SetBoxPointd(const BIndex, CornerIndex: integer; const Value: TPointd); |
|
procedure SetBoxValue(const BIndex, CornerIndex, DimIndex: integer; const Value: extended); |
|
constructor Create(VertexCount, FaceCount: integer); |
|
destructor Destroy; override; |
|
function InPolyHedron(q: TPointd): TInPolyhedronResult; |
|
procedure ComputePolyhedronBox; |
|
function ComputeBox: extended; |
|
function SegmentIntersection(Const ASegment: TSegmentObject): TSegmentList; |
|
Procedure GetProps(Var Vol, Area: extended); |
|
function PolygonIntersect(APolygon: TXYZPlane): TXYZPlaneList; |
|
function VertexIndex(Avertex: TPointd; const LastVertex: integer; EpsilonX: double = 1E-6; EpsilonY: double = 1E-6; EpsilonZ: double = 1E-6) : integer; overload; |
|
function VertexIndex(Avertex: TPointd): integer; overload; |
|
Procedure EliminateInternalFaces(LastFace, LastVertex: integer); |
|
procedure FreeArrays; |
|
procedure SetArrayLengths(LastFace, LastVertex: integer); |
property F: integer read GetF write FF; |
|
property V: integer read GetV write FV; |
|
property OctTree: TRbwOctTree read FOctTree; |
|
property Vertices[constVIndex:integer]: TPointd read GetVertex
write SetVertex; |
|
property VertexValue[constVIndex,DimIndex:integer]: extended
write SetVertexValue; |
|
property Faces[constFIndex:integer]: TPointi read GetFace write SetFace; |
|
property FaceValue[constFIndex,DimIndex:integer]: integer
write SetFaceValue; |
|
property Box[constBIndex:integer]: TPointdArray read GetBox write SetBox; |
|
property BoxPointd[constBIndex,CornerIndex:integer]: TPointd
write SetBoxPointd; |
|
property BoxValue[constBIndex,CornerIndex,DimIndex:integer]: extended
write SetBoxValue; |
|
property FaceCount: integer read GetF; |
|
property VertexCount: integer read GetV; |
FF: integer; |
|
number of faces |
FV: integer; |
|
number of vertices. |
FVertices: array of TPointd; |
|
adapted from "Computational Geometry in C" |
FFaces: array of TPointi; |
|
adapted from "Computational Geometry in C" |
FBox: array of TPointdArray; |
|
adapted from "Computational Geometry in C" |
FOctTree: TRbwOctTree; |
|
bmin: TPointd; |
|
bmax: TPointd; |
|
radius: extended; |
|
StorageIndex: integer; |
|
function GetF: integer; |
|
function GetV: integer; |
|
function Inbox(q: TPointd): boolean; |
|
adapted from "Computational Geometry in C" |
procedure RandomRay(var ray: TPointd); |
|
adapted from "Computational Geometry in C" |
function BoxTest(n: integer; a, b: TPointd): TBoxTestResult; |
|
adapted from "Computational Geometry in C" |
procedure AddVec(q: TPointd; var ray: TPointd); |
|
adapted from "Computational Geometry in C" |
procedure NormalVec(a, b, c: TPointd; var n: TPointd); |
|
adapted from "Computational Geometry in C" |
function Dot(a: TPointd; b: TPointd): extended; |
|
adapted from "Computational Geometry in C" |
function PlaneCoeff(T: TPointi; var n: TPointd; var D: extended): integer; |
|
adapted from "Computational Geometry in C" |
procedure SubVec(a, b: TPointd; var c: TPointd); |
|
adapted from "Computational Geometry in C" |
function SegPlaneInt(T: TPointi; q, r: TPointd; var p: TPointd; var m: integer): TSegPlaneIntersectResult; |
|
adapted from "Computational Geometry in C" |
function AreaSign(a, b, c: TPointd): integer; |
|
adapted from "Computational Geometry in C" |
function InTri2D(Tp: array of TPointd; pp: TPointd): TInTriangleResult; |
|
adapted from "Computational Geometry in C" |
function InTri3D(T: TPointi; m: integer; p: TPointd): TInTriangleResult; |
|
adapted from "Computational Geometry in C" |
function InPlane(T: TPointi; m: integer; q, r: TPointd; p: TPointd) : TSegTriangleIntersectionResult; |
|
adapted from "Computational Geometry in C" |
function VolumeSign(a, b, c, D: TPointd): integer; |
|
adapted from "Computational Geometry in C" |
function SegTriCross(T: TPointi; q, r: TPointd) : TSegTriangleIntersectionResult; |
|
adapted from "Computational Geometry in C" |
function SegTriInt(T: TPointi; q, r: TPointd; var p: TPointd) : TSegTriangleIntersectionResult; |
|
adapted from "Computational Geometry in C" |
function FacesSame(FaceIndex1, FaceIndex2: integer): boolean; |
|
Function GetVertex(const VIndex: integer): TPointd; |
|
Function GetFace(const FIndex: integer): TPointi; |
|
Function GetBox(const BIndex: integer): TPointdArray; |
|
procedure SetVertexValue(const VIndex, DimIndex: integer; const Value: extended); |
|
procedure SetVertex(const VIndex: integer; const Value: TPointd); |
|
procedure SetFace(const FIndex: integer; const Value: TPointi); |
|
procedure SetFaceValue(const FIndex, DimIndex: integer; const Value: integer); |
|
procedure SetBox(const BIndex: integer; const Value: TPointdArray); |
|
procedure SetBoxPointd(const BIndex, CornerIndex: integer; const Value: TPointd); |
|
procedure SetBoxValue(const BIndex, CornerIndex, DimIndex: integer; const Value: extended); |
|
constructor Create(VertexCount, FaceCount: integer); |
|
adapted from "Computational Geometry in C" |
destructor Destroy; override; |
|
function InPolyHedron(q: TPointd): TInPolyhedronResult; |
|
procedure ComputePolyhedronBox; |
|
adapted from "Computational Geometry in C" |
function ComputeBox: extended; |
|
function SegmentIntersection(Const ASegment: TSegmentObject): TSegmentList; |
|
adapted from "Computational Geometry in C" |
Procedure GetProps(Var Vol, Area: extended); |
|
function PolygonIntersect(APolygon: TXYZPlane): TXYZPlaneList; |
|
function VertexIndex(Avertex: TPointd; const LastVertex: integer; EpsilonX: double = 1E-6; EpsilonY: double = 1E-6; EpsilonZ: double = 1E-6) : integer; overload; |
|
function VertexIndex(Avertex: TPointd): integer; overload; |
|
Procedure EliminateInternalFaces(LastFace, LastVertex: integer); |
|
procedure FreeArrays; |
|
procedure SetArrayLengths(LastFace, LastVertex: integer); |
|
property F: integer read GetF write FF; |
|
property V: integer read GetV write FV; |
|
property OctTree: TRbwOctTree read FOctTree; |
|
property Vertices[constVIndex:integer]: TPointd read GetVertex
write SetVertex; |
|
property VertexValue[constVIndex,DimIndex:integer]: extended
write SetVertexValue; |
|
property Faces[constFIndex:integer]: TPointi read GetFace write SetFace; |
|
adapted from "Computational Geometry in C" |
property FaceValue[constFIndex,DimIndex:integer]: integer
write SetFaceValue; |
|
property Box[constBIndex:integer]: TPointdArray read GetBox write SetBox; |
|
adapted from "Computational Geometry in C" |
property BoxPointd[constBIndex,CornerIndex:integer]: TPointd
write SetBoxPointd; |
|
property BoxValue[constBIndex,CornerIndex,DimIndex:integer]: extended
write SetBoxValue; |
|
property FaceCount: integer read GetF; |
|
property VertexCount: integer read GetV; |
|