Logo Search packages:      
Sourcecode: adun.app version File versions  Download package

AdSystemNode Class Reference

#import <AdunSystemNode.h>

Inheritance diagram for AdSystemNode:

AdObject < AdUpdating > < AdCreation > < AdEnvironmentObservation >

List of all members.


Detailed Description

Category containing methods use to monitor the status of systems

Category containing basic methods for adding and removing relationships

Manages a collection of AdSystems & AdInteractionSystems, and the relationships between them. There are two possible relationships types "interacts" and "contains" and every pairwise relationship is represented by an AdRelationshipObject. For every AdSystem that interacts with another an AdInteractionSystem is created. For every AdSystem that contains others AdSystemNode inserts them into it - this requires that the containing AdSystems dataSource supports insertion by implementing the setExclusionPoints:radius method.

In addition AdSystemNode also keeps track of the status (See AdSystem and AdInteractionSystem for the allowed states) of each of the consituent systems. When the status of a subsystem changes AdSystemNode updates the active, inactive and passive lists taking into account interaction systems that are affected by the change i.e. if an AdSystem status becomes "inactive" it will have the effect of changing the status to "inactive" of any AdInteractionSystems that it was involved in. It will then post an AdSystemStatusDidChangeNotification (see below for more information).

Notifications

AdSystemNode posts an AdSystemStatusDidChangeNotification for the original subsystem whose status changed. The object of the notification is the AdSystemNode and it contains a userInfo dict with the following self explanatory keys: @"Subsystem", @"PreviousStatus", @"CurrentStatus". Note no notification will be sent for subsequent changes involving AdInteractionSystems. If necessary, objects that observe this notification should use the "interactionSystemsForAdSystem:" method to find which interaction systems were affected (only necessary when a AdSystem becomes inactive).

Todo:
On creation of the systems and before creating the interactions AdSystemNode should remove all translational degrees of freedom.
Todo:
Add "rigid" as a system status

Definition at line 53 of file AdunSystemNode.m.


Public Member Functions

(void) - _addRelationship: [implementation]
(id) - _interactionSystemForRelationship: [implementation]
(id) - _relationshipForInteractionSystem: [implementation]
(NSArray *) - _relationshipsForSystemWithName: [implementation]
(NSArray *) - _relationshipsForSystemWithName:ofType: [implementation]
(void) - _removeRelationship: [implementation]
(void) - _updateSubsystemStatus: [implementation]
(BOOL) - _validateNamesOfSystems:error: [implementation]
(NSArray *) - activeSystems
(void) - addRelationship:
(void) - addSystem:withRelationships:
(NSArray *) - allRelationships
(NSArray *) - allSystems
(BOOL) - containsRelationship:
(void) - dealloc [implementation]
(void) - deallocRelationshipVariables [implementation]
(void) - deallocStatusVariables [implementation]
(void) - deregisterWithEnvironment [implementation]
(void) - encodeWithCoder: [implementation]
(void) - frameUpdate [implementation]
(NSArray *) - inactiveSystems
(id) - init [implementation]
(void) - initRelationshipVariables [implementation]
(void) - initStatusVariables [implementation]
(id) - initWithCoder: [implementation]
(id) - initWithEnvironment: [implementation]
(id) - initWithEnvironment:observe: [implementation]
(id) - initWithSystems:relationships: [implementation]
(id) - initWithSystems:relationships:environment:
(id) - interactionSystemForRelationship:
(id) - interactionSystems [implementation]
(BOOL) - observesEnvironment [implementation]
(void) - observeStatusOfSystem: [implementation]
(NSArray *) - passiveSystems
(void) - registerWithEnvironment [implementation]
(id) - relationshipForInteractionSystem:
(NSArray *) - relationshipsForSystemWithName:
(NSArray *) - relationshipsForSystemWithName:ofType:
(void) - removeRelationship:
(void) - removeSystemFromStatusObservation: [implementation]
(void) - removeSystemWithName:
(void) - setEnvironment: [implementation]
(void) - setObservesEnvironment: [implementation]
(id) - soluteSystem [implementation]
(id) - solventSystem [implementation]
(void) - synchroniseWithEnvironment [implementation]
(NSArray *) - systemsOfType:withStatus:
(id) - systemWithName:
(void) - update [implementation]
(void) - updateDependantsOfKey: [implementation]
(void) - updateForKey:value:object: [implementation]
(void) - updateSystemsRelatedWithSystem: [implementation]
(BOOL) - validateRelationship:error: [implementation]
(BOOL) - validateRelationship:forSystems:error: [implementation]
(BOOL) - validateRelationships:error: [implementation]

The documentation for this class was generated from the following files:

Generated by  Doxygen 1.6.0   Back to index