1 /*
2 * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
142 import com.sun.javafx.scene.BoundsAccessor;
143 import com.sun.javafx.scene.CameraHelper;
144 import com.sun.javafx.scene.CssFlags;
145 import com.sun.javafx.scene.DirtyBits;
146 import com.sun.javafx.scene.EventHandlerProperties;
147 import com.sun.javafx.scene.LayoutFlags;
148 import com.sun.javafx.scene.NodeEventDispatcher;
149 import com.sun.javafx.scene.NodeHelper;
150 import com.sun.javafx.scene.SceneHelper;
151 import com.sun.javafx.scene.SceneUtils;
152 import com.sun.javafx.scene.input.PickResultChooser;
153 import com.sun.javafx.scene.transform.TransformHelper;
154 import com.sun.javafx.scene.transform.TransformUtils;
155 import com.sun.javafx.scene.traversal.Direction;
156 import com.sun.javafx.sg.prism.NGNode;
157 import com.sun.javafx.tk.Toolkit;
158 import com.sun.prism.impl.PrismSettings;
159 import com.sun.scenario.effect.EffectHelper;
160
161 import javafx.scene.shape.Shape3D;
162 import sun.util.logging.PlatformLogger;
163 import sun.util.logging.PlatformLogger.Level;
164
165 /**
166 * Base class for scene graph nodes. A scene graph is a set of tree data structures
167 * where every item has zero or one parent, and each item is either
168 * a "leaf" with zero sub-items or a "branch" with zero or more sub-items.
169 * <p>
170 * Each item in the scene graph is called a {@code Node}. Branch nodes are
171 * of type {@link Parent}, whose concrete subclasses are {@link Group},
172 * {@link javafx.scene.layout.Region}, and {@link javafx.scene.control.Control},
173 * or subclasses thereof.
174 * <p>
175 * Leaf nodes are classes such as
176 * {@link javafx.scene.shape.Rectangle}, {@link javafx.scene.text.Text},
177 * {@link javafx.scene.image.ImageView}, {@link javafx.scene.media.MediaView},
178 * or other such leaf classes which cannot have children. Only a single node within
179 * each scene graph tree will have no parent, which is referred to as the "root" node.
180 * <p>
181 * There may be several trees in the scene graph. Some trees may be part of
182 * a {@link Scene}, in which case they are eligible to be displayed.
183 * Other trees might not be part of any {@link Scene}.
|
1 /*
2 * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
142 import com.sun.javafx.scene.BoundsAccessor;
143 import com.sun.javafx.scene.CameraHelper;
144 import com.sun.javafx.scene.CssFlags;
145 import com.sun.javafx.scene.DirtyBits;
146 import com.sun.javafx.scene.EventHandlerProperties;
147 import com.sun.javafx.scene.LayoutFlags;
148 import com.sun.javafx.scene.NodeEventDispatcher;
149 import com.sun.javafx.scene.NodeHelper;
150 import com.sun.javafx.scene.SceneHelper;
151 import com.sun.javafx.scene.SceneUtils;
152 import com.sun.javafx.scene.input.PickResultChooser;
153 import com.sun.javafx.scene.transform.TransformHelper;
154 import com.sun.javafx.scene.transform.TransformUtils;
155 import com.sun.javafx.scene.traversal.Direction;
156 import com.sun.javafx.sg.prism.NGNode;
157 import com.sun.javafx.tk.Toolkit;
158 import com.sun.prism.impl.PrismSettings;
159 import com.sun.scenario.effect.EffectHelper;
160
161 import javafx.scene.shape.Shape3D;
162 import com.sun.javafx.logging.PlatformLogger;
163 import com.sun.javafx.logging.PlatformLogger.Level;
164
165 /**
166 * Base class for scene graph nodes. A scene graph is a set of tree data structures
167 * where every item has zero or one parent, and each item is either
168 * a "leaf" with zero sub-items or a "branch" with zero or more sub-items.
169 * <p>
170 * Each item in the scene graph is called a {@code Node}. Branch nodes are
171 * of type {@link Parent}, whose concrete subclasses are {@link Group},
172 * {@link javafx.scene.layout.Region}, and {@link javafx.scene.control.Control},
173 * or subclasses thereof.
174 * <p>
175 * Leaf nodes are classes such as
176 * {@link javafx.scene.shape.Rectangle}, {@link javafx.scene.text.Text},
177 * {@link javafx.scene.image.ImageView}, {@link javafx.scene.media.MediaView},
178 * or other such leaf classes which cannot have children. Only a single node within
179 * each scene graph tree will have no parent, which is referred to as the "root" node.
180 * <p>
181 * There may be several trees in the scene graph. Some trees may be part of
182 * a {@link Scene}, in which case they are eligible to be displayed.
183 * Other trees might not be part of any {@link Scene}.
|