convert line ends
[canaan.git] / prj / cam / src / object / bintrait.h
blob618666ad814d8b4526793f23397c1b92fa0798ef
1 /*
2 @Copyright Looking Glass Studios, Inc.
3 1996,1997,1998,1999,2000 Unpublished Work.
4 */
6 // $Header: r:/t2repos/thief2/src/object/bintrait.h,v 1.1 1998/07/16 21:33:03 mahk Exp $
7 #pragma once
8 #ifndef __BINTRAIT_H
9 #define __BINTRAIT_H
10 #include <comtools.h>
12 ////////////////////////////////////////////////////////////
13 // Tools for using relations as "binary traits"
16 F_DECLARE_INTERFACE(ITrait);
17 F_DECLARE_INTERFACE(IRelation);
18 F_DECLARE_INTERFACE(ILinkQuery);
20 //------------------------------------------------------------
21 // SLOW, UNCACHED VERSIONS
24 // Query all links inherited by one or two objs
28 // All links out from me or my donors to just you, in inheritance order
29 // dest may be a wildcard
30 EXTERN ILinkQuery* QueryInheritedLinksSingleUncached(IRelation* rel, ObjID src, ObjID dest);
32 // All links from me and my donors to you and your donors, in inheritance order
33 // No wildcards allowed
34 EXTERN ILinkQuery* QueryInheritedLinksUncached(IRelation* rel, ObjID src, ObjID dest);
36 //------------------------------------------------------------
37 // CACHED VERSIONS
40 // Make a "trait" for use by these functions. You should do this once.
41 ITrait* MakeTraitFromRelation(IRelation* pRel);
44 // Query all links inherited by one or two objs
47 // All links out from me or my donors to just you, in inheritance order
48 // dest may be a wildcard
49 EXTERN ILinkQuery* QueryInheritedLinksSingle(ITrait* trait, IRelation* rel, ObjID src, ObjID dest);
51 // All links from me and my donors to you and your donors, in inheritance order
52 // No wildcards allowed
53 EXTERN ILinkQuery* QueryInheritedLinks(ITrait* trait, IRelation* rel, ObjID src, ObjID dest);
58 #endif // __BINTRAIT_H