source: trunk/source/visualization/HepRep/include/HEPREP/HepRepInstance.h @ 834

Last change on this file since 834 was 834, checked in by garnier, 16 years ago

import all except CVS

File size: 4.2 KB
Line 
1// -*- C++ -*-
2// AID-GENERATED
3// =========================================================================
4// This class was generated by AID - Abstract Interface Definition         
5// DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it.
6// =========================================================================
7#ifndef HEPREP_HEPREPINSTANCE_H
8#define HEPREP_HEPREPINSTANCE_H 1
9
10// Copyright 2000-2005, FreeHEP.
11
12#include <vector>
13
14#include "HEPREP/HepRepAttribute.h"
15
16namespace HEPREP {
17
18class HepRepInstanceTree;
19class HepRepPoint;
20class HepRepSelectFilter;
21class HepRepType;
22class HepRepTypeTree;
23
24/**
25 * HepRepInstance interface.
26 *
27 * @author Mark Donszelmann
28 */
29class HepRepInstance : virtual public HepRepAttribute {
30
31public: 
32    /// Destructor.
33    virtual ~HepRepInstance() { /* nop */; }
34
35    /**
36     * Overlays the instance on the current instance.
37     *
38     * Attributes of the instance override or are added to the current instance.
39     * Sub-instances of the instance are added only if the current instance has no sub-instances.
40     * Points of the instance are added only if the current instance has no points.
41     */
42    virtual void overlay(HepRepInstance * instance) = 0;
43
44    /**
45     * Adds an sub-instance to this instance.
46     *
47     * @param instance sub-instance.
48     */
49    virtual void addInstance(HepRepInstance * instance) = 0;
50
51    /**
52     * Removes a sub-instance from this instance.
53     *
54     * @param instance sub-instance.
55     */
56    virtual void removeInstance(HepRepInstance * instance) = 0;
57
58    /**
59     * Returns a collection of all sub-instances this instance keeps.
60     *
61     * @return collection of HepRepInstances.
62     */
63    virtual std::vector<HepRepInstance *>  getInstances() = 0;
64
65    /**
66     * Returns the associated type for this instance.
67     *
68     * @return associated HepRepType.
69     */
70    virtual HepRepType * getType() = 0;
71
72    /**
73     * Adds a point to this instance.
74     *
75     * @param point to be added.
76     */
77    virtual void addPoint(HepRepPoint * point) = 0;
78
79    /**
80     * Returns a collection of all points this instance keeps.
81     *
82     * @return collection of HepRepPoints.
83     */
84    virtual std::vector<HepRepPoint *>  getPoints() = 0;
85
86    /**
87     * Fills a double[3][n] array with the coordinates of all points, if
88     * none of the points have any attributes defined on them.
89     * The actual number of points filled is returned. In case the number
90     * of points is larger than n, or if any points have attributes, -1 is returned.
91     * One could then call getPoint().
92     *
93     * @see #getPoints()
94     *
95     * @param xyz a double[3][n] array to be filled with points.
96     * @return number of points filled in xyz, or -1 in case of error or non-implementation.
97     *
98     * ONLY in JAVA
99     */
100    /**
101     * Returns true if this instance has a frame. Speedy access for iterator.
102     *
103     * ONLY in JAVA
104     */
105    /**
106     * Returns String layername. Speedy access for iterator.
107     *
108     * ONLY in JAVA
109     */
110    /**
111     * Returns the parent of this instance.
112     *
113     * @return parent of instance, or null if top-level.
114     */
115    virtual HepRepInstance * getSuperInstance() = 0;
116
117    /**
118     * Returns a deep copy of this instance.
119     *
120     * @param typeTree needed to find the associated type.
121     * @param parent to which the copy is added.
122     * @param filter run on all instances before copying.
123     * @return copy of this instance.
124     */
125    virtual HepRepInstance * copy(HepRepTypeTree * typeTree, HepRepInstance * parent, HepRepSelectFilter * filter = NULL) = 0;
126
127    /**
128     * Returns a deep copy of this instance.
129     *
130     * @param typeTree needed to find the associated type.
131     * @param parent to which the copy is added.
132     * @param filter run on all instances before copying.
133     * @return copy of this instance.
134     */
135    virtual HepRepInstance * copy(HepRepTypeTree * typeTree, HepRepInstanceTree * parent, HepRepSelectFilter * filter = NULL) = 0;
136}; // class
137} // namespace HEPREP
138#endif /* ifndef HEPREP_HEPREPINSTANCE_H */
Note: See TracBrowser for help on using the repository browser.