eng::Node::Value Class Reference

A Node's Value is dual-purpose: it's a Node's state and its key. More...

#include <eng_node.hh>

Inheritance diagram for eng::Node::Value:

eng::MaterialNode::Value eng::ModesNode::Value eng::NormalsNode::Value eng::PartitionNode::Value eng::SpecialNode::Value eng::TextureNode::Value eng::TransformNode::Value eng::VertexsNode::Value

List of all members.

Public Member Functions

 Value (void)
virtual ~Value ()

Protected Types

enum  ePriority1 {
  ePriority1_LodNode = 10, ePriority1_PartitionNode = 9, ePriority1_TransformNode = 8, ePriority1_VertexsNode = 7,
  ePriority1_NormalsNode = 6, ePriority1_ModesNode = 5, ePriority1_MaterialNode = 4, ePriority1_TextureNode = 3,
  ePriority1_ColorsNode = 2, ePriority1_PolygonNode = 1, ePriority1_SpecialNode = 0
}

Protected Member Functions

virtual ePriority1 GetPriority1 (void) const =0
virtual bool LessThan (const Value &otherValue) const

Friends

bool operator< (const Node &node1, const Node &node2)


Detailed Description

A Node's Value is dual-purpose: it's a Node's state and its key.

Each Node derivative defines, in turn, a derivative of Node::Value. The base Node::Value is used for sorting and placing Nodes according to priority. As a key, Value has two orders of priority. 1st-order priority is a constant: which level in a subtree this type of Node belongs. 2nd-order priority is dynamically computed for certain specific types of Nodes. In other words, 1st-order is heterogeneous priority, 2nd-order is homogeneous. Net priority of nodes determines optimal order of Nodes in a Graph.

Nodes with equal net priorities still have a defined placement order. A new equal Node should be appended to the oldest equal one (to the right of). That is, within equal siblings, the order is from oldest to youngest.


Member Enumeration Documentation

enum eng::Node::Value::ePriority1 [protected]

1st-order priority of heterogeneous nodes are constants.

Enumerator:
ePriority1_LodNode 
ePriority1_PartitionNode 
ePriority1_TransformNode 
ePriority1_VertexsNode 
ePriority1_NormalsNode 
ePriority1_ModesNode 
ePriority1_MaterialNode 
ePriority1_TextureNode 
ePriority1_ColorsNode 
ePriority1_PolygonNode 
ePriority1_SpecialNode 


Constructor & Destructor Documentation

eng::TextureNode::Value::Value ( void   )  [inline]

Reimplemented in eng::ModesNode::Value, eng::MaterialNode::Value, eng::TextureNode::Value, and eng::SpecialNode::Value.

virtual eng::Node::Value::~Value (  )  [inline, virtual]


Member Function Documentation

virtual ePriority1 eng::Node::Value::GetPriority1 ( void   )  const [protected, pure virtual]

Implemented in eng::PartitionNode::Value, eng::TransformNode::Value, eng::VertexsNode::Value, eng::NormalsNode::Value, eng::ModesNode::Value, eng::MaterialNode::Value, eng::TextureNode::Value, and eng::SpecialNode::Value.

bool eng::ColorsNode::Value::LessThan ( const Value otherValue  )  const [inline, protected, virtual]

Compare Node two-order priorities.

Reimplemented in eng::PartitionNode::Value, eng::TransformNode::Value, eng::ModesNode::Value, eng::MaterialNode::Value, and eng::TextureNode::Value.


Friends And Related Function Documentation

bool operator< ( const Node node1,
const Node node2 
) [friend]


The documentation for this class was generated from the following files: Palomino 3D Engine documents generated by doxygen 1.5.3 on Fri Nov 23 11:26:22 2007