irefarray.h
来自「hl2 source code. Do not use it illegal.」· C头文件 代码 · 共 56 行
H
56 行
/**********************************************************************
*<
FILE: IRefArray.h
DESCRIPTION: An interface to facilitate maintaining multiple arrays of references.
CREATED BY: John Hutchinson
HISTORY: created 9/1/98
*> Copyright (c) 1994, All Rights Reserved.
**********************************************************************/
#pragma once
#ifndef _IREFARRAY
#define _IREFARRAY
//Forward declarations
typedef Tab<ReferenceTarget*> ReferenceArray;
class IRefArray {
public :
virtual int NumRefCols() const = 0; // The size of my arrays (same size!)
virtual int NumRefRows() const = 0; // The number of arrays I maintain including inner
virtual void EnlargeAndInitializeArrays(int newsize) = 0; //allocator
virtual ReferenceArray& RefRow(int which)= 0; //access to the rows
virtual const ReferenceArray& RefRow(int which) const = 0; //const version of above
protected:
virtual int TotalRefs() const = 0; // Equivalent of NumRefs
virtual IRefArray* Inner() = 0; //PI Access to the containee
virtual const IRefArray* Inner() const = 0; //PI Access to the containee
virtual int InnerArrays() const = 0; //the number of arrays in any containee
virtual int Remap(int row, int col) const = 0; //Converts an index for processing by the inner
virtual int ArrayOffset() const = 0; // the number of special (non-array) references
virtual bool IsSubArrayIndex(int i) const = 0;
virtual RefTargetHandle GetSubArrayReference(int i) = 0;//
virtual void SetSubArrayReference(int i, RefTargetHandle rtarg) = 0;
public:
//Referencemaker overloads
virtual RefTargetHandle GetReference(int row, int col) = 0;
virtual void SetReference(int row, int col, RefTargetHandle rtarg) = 0;
virtual RefResult MakeRefByID(Interval refInterval, int row, int col, RefTargetHandle rtarg) = 0;
virtual RefResult ReplaceReference(int row, int col, RefTargetHandle newtarg, BOOL delOld=TRUE) = 0;
virtual RefResult DeleteReference(int row, int col) = 0;
virtual BOOL CanTransferReference(int row, int col) = 0;
virtual bool FindRef(RefTargetHandle rtarg, int& row, int& col) = 0;
virtual void CloneRefs(ReferenceMaker *, RemapDir& remap) = 0;
};
#endif //_IREFARRAY
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?