Last updated

API / geotoolkit / scene / AnimatedNode / AnimatedNode

Class: AnimatedNode

scene.AnimatedNode.AnimatedNode

Defines an abstract implementation of an animated node.

Hierarchy

Table of contents

Constructors
Methods
Css Properties
Name Type Description
cssclassstringThe css class name of this node
idstring | numberId of the node, its a unique identifier
namestringName of the node. It is often used for debugging purposes or to simplify queries
selectablebooleanSelectable node, a boolean to determine if selection should consider this node
taganyCustom information associated with node. It is a user object which can be used by client code to store information or attach an application object to the shape
visiblebooleanVisibility of the node, a boolean to determine if the node should be rendered or not
z-indexnumberDefine node z-index

Contents

Constructors

new AnimatedNode(options)

Protected new AnimatedNode(options?)

Creates animated node

Parameters

Name Type Description
Optional optionsOptionsoptions

Overrides

Node.constructor

Methods

addCssClass

addCssClass(cssclass): AnimatedNode

Adds new css class to node

Parameters

Name Type Description
cssclassstring | string[]css class name('s)

Returns

AnimatedNode

this

Inherited from

Node.addCssClass


addInvalidateHandler

addInvalidateHandler(handler): AnimatedNode

Add invalidate handler

Deprecated

since 4.0, use Node.on instead

Parameters

Name Type Description
handlerFunctionhandler to be notified about invalidation

Returns

AnimatedNode

this

Inherited from

Node.addInvalidateHandler


checkCollision

checkCollision(context): boolean

Check if this node is within the area being rendered by the context

Parameters

Name Type Description
contextRenderingContextRendering Context

Returns

boolean

true if object is inside of renderable area

Inherited from

Node.checkCollision


clone

clone(): Node

All subclasses should override copyConstructor or provide custom implementation for this method

Returns

Node

clone

Inherited from

Node.clone


connectStyle

connectStyle(style, type, callback): AnimatedNode

Connects style.

This convenience method subscribes a listener to given style for the specified type.
And automatically un-subscribes listener if node is disposed to prevent memory leaks

Parameters

Name Type Description
styleEventDispatcherconnect style
typestringtype of event or property
callbackAttributeCallback<EventDispatcher>function to be called

Returns

AnimatedNode

this

Inherited from

Node.connectStyle


copyConstructor

Protected copyConstructor(src, deepCopy?): AnimatedNode

Copy constructor function.
Function used as part of the cloning mechanism.
Implementations should copy the given instance state to this instance.

Parameters

Name Type Description
srcAnimatedNodeSource to copy from
Optional deepCopybooleandeep copy

Returns

AnimatedNode

this

Overrides

Node.copyConstructor


disconnectStyle

disconnectStyle(style, type, callback): AnimatedNode

Disconnect style
This convenience method un-subscribes a listener to given style for the specified type.

Parameters

Name Type Description
styleEventDispatcherconnect style
typestringtype of event or property
callbackAttributeCallback<EventDispatcher>function to be called

Returns

AnimatedNode

this

Inherited from

Node.disconnectStyle


dispose

dispose(): void

Disposes this node, once disposes a node should not be used anymore.
Clear all listeners, and disconnect styles to avoid memory leaks.
Also aggressively 'cleanup' this node by setting some of its members to null.

Returns

void

Inherited from

Node.dispose


enableEventPropagation

enableEventPropagation(enable): AnimatedNode

Enable event propagation from the node hierarchy from bottom to top

This option is similar to DOM Event bubbling, which allows to get any event from child node. By default it is disabled for better performance.

Example

import {Group} from '@int/geotoolkit/scene/Group';
import {Events as SceneEvents} from '@int/geotoolkit/scene/Node';
const parentGroup = new Group()
.setName('ParentGroup')
.enableEventPropagation(true);
const childGroup = new Group()
.setName('ChildGroup');

parentGroup.addChild(childGroup);
parentGroup.on(SceneEvents.Invalidate, (eventName, sender, args) => {
// Got notifications from all children of parent group
});
childGroup.invalidate();

Parameters

Name Type Description
enablebooleanenable

Returns

AnimatedNode

this

Inherited from

Node.enableEventPropagation


execute

execute(delegate): AnimatedNode

Executes delegate and return the result. It allows us to keep all initialization calls in one place,
and we do not need to scroll up or down in IDE to find how and where it was initialized.

Example

// All setters (.setName() for example) returns reference to the this.
// In order to modify inner object like LineStyle or Pattern, to get this object (property) we should call getter to get object reference.
// Then modify it as shown below in Option 1 or you can use execute methods shown in Option 2.
import {Group} from '@int/geotoolkit/scene/Group';
import {Rect} from '@int/geotoolkit/util/Rect';
// Option 1
const group = new Group()
.setName('MyGroup')
.setBounds(new Rect(0, 0, 42, 16))
.enableClipping(true)
.setTag({'type': 'sometype'});

group.getLineStyle().setPattern('pattern');
return group;

// Options 2 ( using execute method )
return group
.execute(function () {
this.getLineStyle()
.setPattern("pattern");
});

Parameters

Name Type Description
delegate(this: AnimatedNode) => voidFunction to execute

Returns

AnimatedNode

The result if any or this

Inherited from

Node.execute

execute<T>(delegate): T

Type parameters

Name
T

Parameters

Name Type
delegate(this: AnimatedNode) => T

Returns

T

Inherited from

Node.execute


getAnimationStyle

getAnimationStyle(): AnimationStyle

Return animation style

Returns

AnimationStyle

animationStyle current animation style


getClassName

getClassName(): string

Returns

string

Inherited from

Node.getClassName


getCssClass

getCssClass(): string

Returns css class name to be used to apply CSS style

Returns

string

the css class name

Inherited from

Node.getCssClass


getCssClasses

getCssClasses(): string[]

Gets list of css class names which applied to this node

Returns

string[]

Inherited from

Node.getCssClasses


getId

getId(): string | number

Returns the associated identifier of the node

Returns

string | number

The node's id

Inherited from

Node.getId


getName

getName(): string

Returns the node name

Returns

string

The node name

Inherited from

Node.getName


getParent

getParent(): Node

Return parent node

Returns

Node

parent node

Inherited from

Node.getParent


getProperties

getProperties(context?): OptionsOut

Gets all the properties pertaining to this object

Parameters

Name Type Description
Optional contextISerializationContextserializer context

Returns

OptionsOut

properties

Overrides

Node.getProperties


getProperty

getProperty(name): any

Gets dynamic property by name. These properties can be used as a property bags

Parameters

Name Type Description
namestringproperty name

Returns

any

Inherited from

Node.getProperty


getPropertyKeys

getPropertyKeys(): string[]

Returns known properties keys

Returns

string[]

Inherited from

Node.getPropertyKeys


getRoot

getRoot(): Node

Returns root node.
If node doesn't have parent then it returns itself.

Returns

Node

the root node

Inherited from

Node.getRoot


getSceneTransform

getSceneTransform(): Transformation

Returns transformation from node to root scene

Returns

Transformation

a transformation from node to root scene

Inherited from

Node.getSceneTransform


getTag

getTag(): any

Returns the object associated with the node by user.

Returns

any

The node's user-object

Inherited from

Node.getTag


getVisible

getVisible(): boolean

Return visibility of the node

Returns

boolean

true if node is visible

Inherited from

Node.getVisible


getWorldTransform

getWorldTransform(): Transformation

getWorldTransform retrieves the local transformation of the inner node coordinates to parent coordinates.

Returns

Transformation

the world transform.

Inherited from

Node.getWorldTransform


getZIndex

getZIndex(): number

Returns node z-index (null if not set)

Returns

number

Inherited from

Node.getZIndex


hasCssClass

hasCssClass(cssClass): boolean

Check if node has specified css class

Parameters

Name Type Description
cssClassstringcss class name

Returns

boolean

Inherited from

Node.hasCssClass


hasEventListener

hasEventListener(type, callback?): boolean

Check if a list of event listeners for this type contains this listener

Parameters

Name Type Description
typestringtype of event or property
Optional callbackFunctionto be called, if null, check if any callback is registered

Returns

boolean

Inherited from

Node.hasEventListener


invalidate

invalidate(bounds?, force?): AnimatedNode

Invalidate area of the shape. This method invalidates parent by default. invalidated from parent to root node.

Parameters

Name Type Description
Optional boundsRectbounds of the invalid rectangle in the inner node coordinates
Optional forcebooleantrue if parent should be invalidated immediately if null is provided then cache (if any will be completely refreshed) otherwise only specified rect or node.bounds will be refreshed

Returns

AnimatedNode

this

Inherited from

Node.invalidate


invalidateParent

Protected invalidateParent(bounds?, force?): AnimatedNode

Invalidate parent and notify all listeners. NOTE: Don't keep arguments of the event, because instance can be changed

Fires

Events.Invalidate

Parameters

Name Type Description
Optional boundsRectbounds of the invalid rectangle in the inner node coordinates
Optional forcebooleanforce rendering

Returns

AnimatedNode

this

Inherited from

Node.invalidateParent


isDisposed

isDisposed(): boolean

Returns whether this object has been disposed

Returns

boolean

Inherited from

Node.isDisposed


isEventPropagationEnabled

isEventPropagationEnabled(): boolean

Return true if event propagation is enabled from child to parent

Returns

boolean

Inherited from

Node.isEventPropagationEnabled


isNotificationEnabled

isNotificationEnabled(): boolean

return state of notification

Returns

boolean

current notification state

Inherited from

Node.isNotificationEnabled


isSelectable

isSelectable(): boolean

Returns true if node can be picked/selected.

Returns

boolean

The selectable flag

Inherited from

Node.isSelectable


isSilent

isSilent(): boolean

Return true if the event dispatcher doesn't notify any events

Returns

boolean

Inherited from

Node.isSilent


notify

notify<E>(type, source, args?): AnimatedNode

Notify listeners of the Node

Type parameters

NameType
Eextends string

Parameters

Name Type Description
typeEtype of event
sourceAnimatedNodesource who called the event
Optional argsEventMap[E]event arguments

Returns

AnimatedNode

this

Overrides

Node.notify


off

off<E>(type?, callback?): AnimatedNode

Detach listener on event. Calling .off() with no arguments removes all attached listeners. Calling .off(type) with no callback removes all attached listeners for specific type.

Type parameters

NameType
Eextends string

Parameters

Name Type Description
Optional typeEtype of the event
Optional callback(eventType: E, sender: AnimatedNode, args: EventMap[E]) => voidfunction to be called

Returns

AnimatedNode

this

Overrides

Node.off


on

on<E>(type, callback): AnimatedNode

Attach listener on event that will be called whenever the specified event is delivered to the target

If the callback function is already in the list of event listeners for this target, the function is not added a second time.

If a particular anonymous function is in the list of event listeners registered for a certain target, and then later in the code, an identical anonymous function is given in an "on" call, the second function will also be added to the list of event listeners for that target.

Type parameters

NameType
Eextends string

Parameters

Name Type Description
typeEtype of event or property
callback(eventType: E, sender: AnimatedNode, args: EventMap[E]) => voidto be called

Returns

AnimatedNode

this

Overrides

Node.on


onParentChanged

Protected onParentChanged(node): AnimatedNode

This method is called when parent changes. Do not call it directly.

Parameters

Name Type Description
nodeNodenode to change parent

Returns

AnimatedNode

this

Inherited from

Node.onParentChanged


onVisibilityChanged

Protected onVisibilityChanged(): void

This method is called if visibility is changed. Send event Events.VisibilityChanged

Returns

void

Inherited from

Node.onVisibilityChanged


registerAnimationStyle

registerAnimationStyle(root): void

Register animation style.

Parameters

Name Type Description
rootNoderoot node for node

Returns

void


removeCssClass

removeCssClass(cssclass): AnimatedNode

Removes css class from node

Parameters

Name Type Description
cssclassstring | string[]css class name('s)

Returns

AnimatedNode

this

Inherited from

Node.removeCssClass


removeInvalidateHandler

removeInvalidateHandler(handler): AnimatedNode

Remove invalidate handler

Deprecated

since 4.0, use Node.off instead

Parameters

Name Type Description
handlerFunctionhandler to be notified about invalidation

Returns

AnimatedNode

this

Inherited from

Node.removeInvalidateHandler


render

Abstract render(context): void

Renders node

Parameters

Name Type Description
contextRenderingContextThe rendering context to be used to draw the node

Returns

void

Inherited from

Node.render


renderAsync

renderAsync(context, callback): void

Render node in asynchronous mode. Default implementation creates call method "render" inside

Parameters

Name Type Description
contextRenderingContextThe rendering context to be used to draw the node
callback() => voidcallback function

Returns

void

Inherited from

Node.renderAsync


setAnimationStyle

setAnimationStyle(animationStyle): AnimatedNode

Sets animation style

Parameters

Name Type Description
animationStyleTypeanimation style

Returns

AnimatedNode


setCssClass

setCssClass(name): AnimatedNode

Sets css class name of the node to be used to apply CSS style

Parameters

Name Type Description
namestringcss class name of the node

Returns

AnimatedNode

this

Inherited from

Node.setCssClass


setId

setId(id): AnimatedNode

Allows the user to associate any identifier

Parameters

Name Type Description
idstring | numberobject id

Returns

AnimatedNode

this

Inherited from

Node.setId


setName

setName(name): AnimatedNode

Sets name of the node

Parameters

Name Type Description
namestringThe node name

Returns

AnimatedNode

this

Inherited from

Node.setName


setNotification

setNotification(notify, force?): AnimatedNode

set notification state

Parameters

Name Type Description
notifybooleanflag set to invalidate parent or not
Optional forcebooleantrue if parent should be invalidated immediately

Returns

AnimatedNode

this

Inherited from

Node.setNotification


setProperties

setProperties(properties?): AnimatedNode

Sets all the properties pertaining to this object

Parameters

Name Type Description
Optional propertiesOptionsobject containing the properties to set

Returns

AnimatedNode

Overrides

Node.setProperties


setProperty

setProperty(name, value): AnimatedNode

Sets dynamic property by name

Parameters

Name Type Description
namestringproperty name
valueanyproperty value

Returns

AnimatedNode

this

Inherited from

Node.setProperty


setSelectable

setSelectable(selectable): AnimatedNode

Allows to select node. If node is not selectable then child node is not selectable.

Parameters

Name Type Description
selectablebooleanflag to allow node selection

Returns

AnimatedNode

this

Inherited from

Node.setSelectable


setSilent

setSilent(bool): AnimatedNode

Set silent mode

Parameters

Name Type Description
boolbooleanflag to enable silent mode

Returns

AnimatedNode

this

Inherited from

Node.setSilent


setTag

setTag(tag): AnimatedNode

Allows the user to associate any arbitrary object with the node.

Parameters

Name Type Description
taganyThe object to be associated with the node.

Returns

AnimatedNode

this

Inherited from

Node.setTag


setVisible

setVisible(value): AnimatedNode

Sets visibility of the node. Send event Events.VisibilityChanged

Parameters

Name Type Description
valuebooleanflag specifying visibility of the node

Returns

AnimatedNode

this

Inherited from

Node.setVisible


setZIndex

setZIndex(value): AnimatedNode

Sets z-index for node (set null for default)

Parameters

Name Type Description
valuenumberindex determining node z-position

Returns

AnimatedNode

this

Inherited from

Node.setZIndex


toString

toString(): string

Returns a string representation of this object (generally the classname)

Returns

string

A string representation

Inherited from

Node.toString


unregisterAnimationStyle

unregisterAnimationStyle(root): void

Unregister animation style.

Parameters

Name Type Description
rootNoderoot node for node

Returns

void


updateSceneTransformation

updateSceneTransformation(): AnimatedNode

Update scene transformation

Returns

AnimatedNode

this

Inherited from

Node.updateSceneTransformation


updateState

updateState(regions?, changes?): AnimatedNode

Update state. These methods reset node state and update state for children. this method is useful to refresh a scene graph

Parameters

Name Type Description
Optional regionsRect[]optional array to return invalid rectangles in the parent coordinates
Optional changesStateChangesoptional parameter to specify a reason of changes

Returns

AnimatedNode

this

Inherited from

Node.updateState


updateTimeStamp

Protected updateTimeStamp(): AnimatedNode

Update time stamp to indicate that Node or Children has been changed.

Returns

AnimatedNode

this

Inherited from

Node.updateTimeStamp


enableSceneGraphNotification

Static enableSceneGraphNotification(enabled): void

Enable / disable all notifications

Parameters

Name Type Description
enabledbooleansets if this object sends notifications

Returns

void

Inherited from

Node.enableSceneGraphNotification


findParent

Static findParent<T>(node, classType, filter?): InstanceType<T>

Find root of the node with specified type

Type parameters

NameType
Textends Constructor<any>

Parameters

Name Type Description
nodeNodenode to start search
classTypeTtype of the class to search for
Optional filter(node: Node) => booleanadditional filter to apply

Returns

InstanceType<T>

Inherited from

Node.findParent

Static findParent(node, classType, filter?): Node

Find root of the node with specified type

Parameters

Name Type Description
nodeNodenode to start search
classTypestringinterface name to search for
Optional filter(node: Node) => booleanadditional filter to apply

Returns

Node

Inherited from

Node.findParent


getClassName

Static getClassName(): string

Returns

string

Inherited from

Node.getClassName


isSceneGraphNotificationEnabled

Static isSceneGraphNotificationEnabled(): boolean

Return status of the global notification for all nodes.

Returns

boolean

Inherited from

Node.isSceneGraphNotificationEnabled