Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

ADFTraversalNode Class Reference

#include <adf.h>

Inheritance diagram for ADFTraversalNode:

Inheritance graph
[legend]
Collaboration diagram for ADFTraversalNode:

Collaboration graph
[legend]
List of all members.

Detailed Description

Used for temporary storage of ADF nodes during traversal or construction.

Note that samples are not automatically extracted during traversal, for efficiency; extract_samples_from must be called before performing any real operations with the node. get_local_coord_distance assumes the point is in the local coordinate frame of the node.

Definition at line 219 of file adf.h.

Public Member Functions

void extract_samples_from (ADF *adfp)
 Grabs samples from ADF and stores locally.

bool is_reconstruction_valid (ADF *adfp)
 Checks ADF node reconstruction against samples.

double get_distance (const gmVector3 &p)
 Returns the reconstructed distance at world-coordinate point p.

double get_local_coord_distance (const gmVector3 &p)
 Returns the reconstructed distance at cell-coordinate point p.

void estimate_normal (const gmVector3 &p, gmVector3 *normal)
 Returns (in normal) the central-differenced gradient at world-coordinate point p.


Public Attributes

ADFSampleAddress address
double samples [8]


Member Function Documentation

void ADFTraversalNode::estimate_normal const gmVector3 &  p,
gmVector3 *  normal
 

Returns (in normal) the central-differenced gradient at world-coordinate point p.

Definition at line 802 of file adf.cpp.

References OctreeTraversalNode::center, collect_bilinear_weights(), OctreeTraversalNode::length, and samples.

Referenced by ADF::get_distance().

void ADFTraversalNode::extract_samples_from ADF adfp  ) 
 

Grabs samples from ADF and stores locally.

TraversalNode has its own sample array.

Definition at line 719 of file adf.cpp.

References address, ADFSampleAddress::adjust_for_corner_sample(), ADF::get_sample(), and samples.

Referenced by ADF::createADF(), ADF::get_distance(), and ADFRefiner::should_split().

double ADFTraversalNode::get_distance const gmVector3 &  p  ) 
 

Returns the reconstructed distance at world-coordinate point p.

Definition at line 763 of file adf.cpp.

References OctreeTraversalNode::center, get_local_coord_distance(), and OctreeTraversalNode::length.

Referenced by ADF::get_distance().

double ADFTraversalNode::get_local_coord_distance const gmVector3 &  pp  ) 
 

Returns the reconstructed distance at cell-coordinate point p.

Definition at line 781 of file adf.cpp.

References collect_trilinear_weights(), and samples.

Referenced by get_distance(), and is_reconstruction_valid().

bool ADFTraversalNode::is_reconstruction_valid ADF adfp  ) 
 

Checks ADF node reconstruction against samples.

Todo:
this is place to change if we want to change the sampling testing with the new interval testing.

Definition at line 736 of file adf.cpp.

References address, ADF_sample_offset, ADFSampleAddress::adjust_for_sample(), ADF::epsilon, get_local_coord_distance(), and ADF::get_sample().

Referenced by ADFRefiner::should_split().


Member Data Documentation

ADFSampleAddress ADFTraversalNode::address
 

Definition at line 230 of file adf.h.

Referenced by ADF::copy_traversal_node(), ADF::createADF(), extract_samples_from(), ADF::init_traversal_node(), is_reconstruction_valid(), and ADFPruner::is_used().

double ADFTraversalNode::samples[8]
 

Definition at line 231 of file adf.h.

Referenced by ADF::copy_traversal_node(), estimate_normal(), extract_samples_from(), and get_local_coord_distance().


The documentation for this class was generated from the following files:
Generated on Mon Jun 28 15:01:58 2004 for Advanced Surface Library by doxygen 1.3.4