00001 /** 00002 * @file Complement.h 00003 * Represents the intersection of two implicit surfaces. 00004 * @author Steve Zelinka, Ed Bachta 00005 */ 00006 00007 #ifndef _COMPLEMENT_H 00008 #define _COMPLEMENT_H 00009 00010 #include "UnaryOp.h" 00011 #include "Implicit/Algebraic/Algebraic.h" 00012 00013 class Complement : public UnaryOp 00014 { 00015 public: 00016 /// Constructors 00017 Complement() { m_f = NULL; } 00018 Complement(Implicit *f) { m_f = f; } 00019 00020 #ifndef INTERVAL_EVAL_ONLY 00021 virtual double proc(gmVector3 x); 00022 virtual gmVector3 grad(gmVector3 x); 00023 virtual gmMatrix3 hess(gmVector3 x); 00024 #endif 00025 00026 virtual Intervald proc(Box<double>); 00027 virtual Box3d grad(Box<double>); 00028 virtual IMatrix3d hess(Box<double>); 00029 00030 virtual void procq(gmVector3 p, double * q); 00031 00032 MAKE_NAME(); 00033 }; 00034 00035 #endif 00036
1.3.4