diff options
author | randomguy3 <randomguy3@7c02a99a-9b00-45e3-bf44-6f3dd7fddb64> | 2012-01-09 11:00:50 +0000 |
---|---|---|
committer | randomguy3 <randomguy3@7c02a99a-9b00-45e3-bf44-6f3dd7fddb64> | 2012-01-09 11:00:50 +0000 |
commit | a8a8dfb90d6a51ae369c042c95162f45754c7c4b (patch) | |
tree | 0e7a5f82febebe7129ebfb015f05b114064c39fd /tikzit/src/common/Node.h | |
parent | e1cf0babff63e670e0d550b4072c22649a117fa7 (diff) |
Move tikzit into "trunk" directory
git-svn-id: https://tikzit.svn.sourceforge.net/svnroot/tikzit/trunk@365 7c02a99a-9b00-45e3-bf44-6f3dd7fddb64
Diffstat (limited to 'tikzit/src/common/Node.h')
-rw-r--r-- | tikzit/src/common/Node.h | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/tikzit/src/common/Node.h b/tikzit/src/common/Node.h new file mode 100644 index 0000000..73a4653 --- /dev/null +++ b/tikzit/src/common/Node.h @@ -0,0 +1,134 @@ +// +// Node.h +// TikZiT +// +// Copyright 2010 Aleks Kissinger. All rights reserved. +// +// +// This file is part of TikZiT. +// +// TikZiT is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// TikZiT is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with TikZiT. If not, see <http://www.gnu.org/licenses/>. +// + + +// Node : store the data associated with a node. + +#import <Foundation/Foundation.h> + +#import "NodeStyle.h" +#import "GraphElementData.h" + +/*! + @class Node + @brief A graph node, with associated location and style data. + */ +@interface Node : NSObject { + NSPoint point; + NodeStyle *style; + NSString *name; + NSString *label; + GraphElementData *data; +} + +/*! + @property point + @brief The point where this node is located. + */ +@property (assign) NSPoint point; + +/*! + @property style + @brief The style of this node. + */ +@property (retain) NodeStyle *style; + +/*! + @property name + @brief The name of this node. This is a temporary name and may change between + successive TikZ outputs. + */ +@property (copy) NSString *name; + +/*! + @property label + @brief The latex label that appears on this node. + */ +@property (copy) NSString *label; + +/*! + @property data + @brief Associated extra data. + */ +@property (copy) GraphElementData *data; + +/*! + @brief Initialize a new node with the given point. + @param p a point. + @result A node. + */ +- (id)initWithPoint:(NSPoint)p; + +/*! + @brief Initialize a new node at (0,0). + @result A node. + */ +- (id)init; + +/*! + @brief Try to attach a style of the correct name from the given style list. + @param styles an array of styles. + @result YES if successfully attached, NO otherwise. + */ +- (BOOL)attachStyleFromTable:(NSArray*)styles; + +/*! + @brief Set node properties from <tt>GraphElementData</tt>. + */ +- (void)updateData; + +/*! + @brief Copy this node. + @result A copy of this node. + */ +- (id)copy; + +/*! + @brief Set properties of this node to match the given node. + @param nd a node to mimic. + */ +- (void)setPropertiesFromNode:(Node *)nd; + +/*! + @brief Compare a node to another node using a lex ordering on coordinates. + @param nd another node. + @result A comparison result. + */ +- (NSComparisonResult)compareTo:(id)nd; + +/*! + @brief Factory method to construct a node with the given point. + @param p a point. + @result A node. + */ ++ (Node*)nodeWithPoint:(NSPoint)p; + +/*! + @brief Factory method to construct a node at (0,0). + @result A node. + */ ++ (Node*)node; + +@end + +// vi:ft=objc:noet:ts=4:sts=4:sw=4 |