Open Inventor Reference
SoChildList.h
Go to the documentation of this file.
1/*
2 *
3 * Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * Further, this software is distributed without any warranty that it is
16 * free of the rightful claim of any third person regarding infringement
17 * or the like. Any license provided herein, whether implied or
18 * otherwise, applies only to this software file. Patent licenses, if
19 * any, provided herein do not apply to combinations of this program with
20 * other software, or any other product whatsoever.
21 *
22 * You should have received a copy of the GNU Lesser General Public
23 * License along with this library; if not, write to the Free Software
24 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25 *
26 * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
27 * Mountain View, CA 94043, or:
28 *
29 * http://www.sgi.com
30 *
31 * For further information regarding this notice, see:
32 *
33 * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
34 *
35 */
36
37
38/*
39 * Copyright (C) 1990,91,92 Silicon Graphics, Inc.
40 *
41 _______________________________________________________________________
42 ______________ S I L I C O N G R A P H I C S I N C . ____________
43 |
44 | $Revision: 1.1.1.1 $
45 |
46 | Description:
47 | This file contains the definition of the extender SoChildList
48 | class.
49 |
50 | Author(s) : Paul S. Strauss
51 |
52 ______________ S I L I C O N G R A P H I C S I N C . ____________
53 _______________________________________________________________________
54 */
55
56#ifndef _SO_CHILD_LIST_
57#define _SO_CHILD_LIST_
58
59#include <Inventor/SoLists.h>
60
80
81class SoAction;
82
84
85 public:
87 SoChildList(SoNode *parentNode);
88 SoChildList(SoNode *parentNode, int size);
89 SoChildList(SoNode *parentNode, const SoChildList &l);
91
94 void append(SoNode * child);
95 void insert(SoNode *child, int addBefore);
96 void remove(int which);
97 void truncate(int start);
98 void copy(const SoChildList &l);
99 void set(int i, SoNode *child);
100
103 void traverse(SoAction *action)
104 { traverse(action, 0, getLength() - 1); }
105
107 void traverse(SoAction *action, int childIndex)
108 { traverse(action, childIndex, childIndex); }
109
112 void traverse(SoAction *action,
113 int firstChild, int lastChild);
114
115 SoINTERNAL public:
118 void addPathAuditor(SoPath *p) { auditors.append(p); }
120 { auditors.remove(auditors.find(p)); }
121
122 private:
123 SoNode *parent;
126 SbPList auditors;
127};
128
129#endif /* _SO_CHILD_LIST_ */
#define SoEXTENDER
Provide inline template functions for abs, swap, min, max, and clamp.
Definition SbBasic.h:154
#define SoINTERNAL
Definition SbBasic.h:155
#define INVENTOR_API
Disable some annoying warnings on MSVC 6.
Definition SbSystem.h:77
List of generic (void *) pointers.
Definition SbPList.h:78
int getLength() const
Returns number of pointers in list.
Definition SbPList.h:110
Abstract base class for all actions.
Definition SoAction.h:179
This class maintains a list of child nodes for any node.
Definition SoChildList.h:83
void append(SoNode *child)
All of these override the standard SoBaseList methods so they can maintain auditors correctly.
void copy(const SoChildList &l)
void removePathAuditor(SoPath *p)
void traverse(SoAction *action, int firstChild, int lastChild)
Traverses all children between two indices, inclusive.
void set(int i, SoNode *child)
void traverse(SoAction *action, int childIndex)
Traverses just one child.
void traverse(SoAction *action)
Traverses all children to apply action.
void truncate(int start)
void addPathAuditor(SoPath *p)
SoPath calls these to be notified of changes in scene graph topology:
SoChildList(SoNode *parentNode)
Constructors and destructor.
void insert(SoNode *child, int addBefore)
void remove(int which)
SoChildList(SoNode *parentNode, const SoChildList &l)
SoChildList(SoNode *parentNode, int size)
Maintains a list of pointers to nodes.
Definition SoLists.h:177
Abstract base class for all database nodes.
Definition SoNode.h:103
Path that points to a list of hierarchical nodes.
Definition SoPath.h:109