HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GEO_ImplicitSurfaceOp.h File Reference
#include <VEX/VEX_PodTypes.h>
#include <UT/UT_Interval.h>
#include <UT/UT_Vector4.h>
+ Include dependency graph for GEO_ImplicitSurfaceOp.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  GEO_ImplicitSurfaceOp< PREC >
 

Namespaces

 GEO_ImplicitSurfaceOps
 

Macros

#define __GEO_ImplicitSurfaceOp_h__
 

Enumerations

enum  GEO_ImplicitSurfaceOptFlag : int {
  GEO_ImplicitSurfaceOptFlag::None = 0, GEO_ImplicitSurfaceOptFlag::JustReturnA = 1, GEO_ImplicitSurfaceOptFlag::JustReturnB = 2, GEO_ImplicitSurfaceOptFlag::JustReturnNegA = 3,
  GEO_ImplicitSurfaceOptFlag::JustReturnNegB = 4
}
 
enum  GEO_ImplicitSurfaceOpID : int {
  GEO_ImplicitSurfaceOpID::Invalid = 0, GEO_ImplicitSurfaceOpID::Begin = 1, GEO_ImplicitSurfaceOpID::Invert = 2, GEO_ImplicitSurfaceOpID::Offset = 3,
  GEO_ImplicitSurfaceOpID::Shell = 4, GEO_ImplicitSurfaceOpID::Union = 5, GEO_ImplicitSurfaceOpID::Intersect = 6, GEO_ImplicitSurfaceOpID::Subtract = 7,
  GEO_ImplicitSurfaceOpID::Difference = 8, GEO_ImplicitSurfaceOpID::SmoothUnion = 9, GEO_ImplicitSurfaceOpID::SmoothIntersect = 10, GEO_ImplicitSurfaceOpID::SmoothSubtract = 11,
  GEO_ImplicitSurfaceOpID::SmoothDifference = 12, GEO_ImplicitSurfaceOpID::RoundUnion = 13, GEO_ImplicitSurfaceOpID::RoundIntersect = 14, GEO_ImplicitSurfaceOpID::RoundSubtract = 15,
  GEO_ImplicitSurfaceOpID::RoundDifference = 16, GEO_ImplicitSurfaceOpID::ChamferUnion = 17, GEO_ImplicitSurfaceOpID::ChamferIntersect = 18, GEO_ImplicitSurfaceOpID::ChamferSubtract = 19,
  GEO_ImplicitSurfaceOpID::ChamferDifference = 20, GEO_ImplicitSurfaceOpID::SmoothRepulsiveUnion = 21
}
 Operation ID enumeration matching VEX implicit_shapes_op.h. More...
 

Functions

template<typename T >
GEO_ImplicitSurfaceOps::opInvert (T a)
 Invert: r = -a. More...
 
template<typename T >
GEO_ImplicitSurfaceOps::opInvert (T a, T &da)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opInvert (const UT_IntervalT< T > &a)
 
template<typename T >
GEO_ImplicitSurfaceOps::opOffset (T offset, T a)
 Offset: r = a - offset. More...
 
template<typename T >
GEO_ImplicitSurfaceOps::opOffset (T offset, T a, T &doffset, T &da)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opOffset (T offset, const UT_IntervalT< T > &a)
 
template<typename T >
GEO_ImplicitSurfaceOps::opShell (T offset, T thickness, T a)
 Shell: r = abs(a - offset) - thickness. More...
 
template<typename T >
GEO_ImplicitSurfaceOps::opShell (T offset, T thickness, T a, T &doffset, T &dthickness, T &da)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opShell (T offset, T thickness, const UT_IntervalT< T > &a)
 
template<typename T >
GEO_ImplicitSurfaceOps::opUnion (T a, T b, int a_id, int b_id, int &id)
 Union: r = min(a, b) More...
 
template<typename T >
GEO_ImplicitSurfaceOps::opUnion (T a, T b, int a_id, int b_id, int &id, T &da, T &db)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opUnion (const UT_IntervalT< T > &a, const UT_IntervalT< T > &b)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opUnion (const UT_IntervalT< T > &a, const UT_IntervalT< T > &b, GEO_ImplicitSurfaceOptFlag &can_optimize)
 
template<typename T >
GEO_ImplicitSurfaceOps::opIntersect (T a, T b, int a_id, int b_id, int &id)
 Intersect: r = max(a, b) More...
 
template<typename T >
GEO_ImplicitSurfaceOps::opIntersect (T a, T b, int a_id, int b_id, int &id, T &da, T &db)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opIntersect (const UT_IntervalT< T > &a, const UT_IntervalT< T > &b)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opIntersect (const UT_IntervalT< T > &a, const UT_IntervalT< T > &b, GEO_ImplicitSurfaceOptFlag &can_optimize)
 
template<typename T >
GEO_ImplicitSurfaceOps::opSubtract (T a, T b, int a_id, int b_id, int &id)
 Subtract: r = max(a, -b) More...
 
template<typename T >
GEO_ImplicitSurfaceOps::opSubtract (T a, T b, int a_id, int b_id, int &id, T &da, T &db)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opSubtract (const UT_IntervalT< T > &a, const UT_IntervalT< T > &b)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opSubtract (const UT_IntervalT< T > &a, const UT_IntervalT< T > &b, GEO_ImplicitSurfaceOptFlag &can_optimize)
 
template<typename T >
GEO_ImplicitSurfaceOps::opDifference (T a, T b, int a_id, int b_id, int &id)
 Difference: r = max(min(a,b), -max(a,b)) More...
 
template<typename T >
GEO_ImplicitSurfaceOps::opDifference (T a, T b, int a_id, int b_id, int &id, T &da, T &db)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opDifference (const UT_IntervalT< T > &a, const UT_IntervalT< T > &b)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opDifference (const UT_IntervalT< T > &a, const UT_IntervalT< T > &b, GEO_ImplicitSurfaceOptFlag &can_optimize)
 
template<typename T >
GEO_ImplicitSurfaceOps::opSmoothUnion (T k, T a, T b, int a_id, int b_id, int &id)
 Smooth union: polynomial smooth min. More...
 
template<typename T >
GEO_ImplicitSurfaceOps::opSmoothUnion (T k, T a, T b, int a_id, int b_id, int &id, T &dk, T &da, T &db)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opSmoothUnion (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opSmoothUnion (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b, GEO_ImplicitSurfaceOptFlag &can_optimize)
 
template<typename T >
GEO_ImplicitSurfaceOps::opSmoothRepulsiveUnion (T k, T repulsion, T a, T b, int a_id, int b_id, int &id)
 Smooth repulsive union. More...
 
template<typename T >
GEO_ImplicitSurfaceOps::opSmoothRepulsiveUnion (T k, T repulsion, T a, T b, int a_id, int b_id, int &id, T &dk, T &drepulsion, T &da, T &db)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opSmoothRepulsiveUnion (T k, T repulsion, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opSmoothRepulsiveUnion (T k, T repulsion, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b, GEO_ImplicitSurfaceOptFlag &can_optimize)
 
template<typename T >
GEO_ImplicitSurfaceOps::opSmoothIntersect (T k, T a, T b, int a_id, int b_id, int &id)
 Smooth intersect: -smooth_union(-a, -b) More...
 
template<typename T >
GEO_ImplicitSurfaceOps::opSmoothIntersect (T k, T a, T b, int a_id, int b_id, int &id, T &dk, T &da, T &db)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opSmoothIntersect (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opSmoothIntersect (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b, GEO_ImplicitSurfaceOptFlag &can_optimize)
 
template<typename T >
GEO_ImplicitSurfaceOps::opSmoothSubtract (T k, T a, T b, int a_id, int b_id, int &id)
 Smooth subtract: smooth_intersect(a, -b) More...
 
template<typename T >
GEO_ImplicitSurfaceOps::opSmoothSubtract (T k, T a, T b, int a_id, int b_id, int &id, T &dk, T &da, T &db)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opSmoothSubtract (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opSmoothSubtract (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b, GEO_ImplicitSurfaceOptFlag &can_optimize)
 
template<typename T >
GEO_ImplicitSurfaceOps::opSmoothDifference (T k, T a, T b, int a_id, int b_id, int &id)
 Smooth difference. More...
 
template<typename T >
GEO_ImplicitSurfaceOps::opSmoothDifference (T k, T a, T b, int a_id, int b_id, int &id, T &dk, T &da, T &db)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opSmoothDifference (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opSmoothDifference (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b, GEO_ImplicitSurfaceOptFlag &can_optimize)
 
template<typename T >
GEO_ImplicitSurfaceOps::opRoundUnion (T k, T a, T b, int a_id, int b_id, int &id)
 Round union. More...
 
template<typename T >
GEO_ImplicitSurfaceOps::opRoundUnion (T k, T a, T b, int a_id, int b_id, int &id, T &dk, T &da, T &db)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opRoundUnion (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opRoundUnion (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b, GEO_ImplicitSurfaceOptFlag &can_optimize)
 
template<typename T >
GEO_ImplicitSurfaceOps::opRoundIntersect (T k, T a, T b, int a_id, int b_id, int &id)
 Round intersect. More...
 
template<typename T >
GEO_ImplicitSurfaceOps::opRoundIntersect (T k, T a, T b, int a_id, int b_id, int &id, T &dk, T &da, T &db)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opRoundIntersect (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opRoundIntersect (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b, GEO_ImplicitSurfaceOptFlag &can_optimize)
 
template<typename T >
GEO_ImplicitSurfaceOps::opRoundSubtract (T k, T a, T b, int a_id, int b_id, int &id)
 Round subtract. More...
 
template<typename T >
GEO_ImplicitSurfaceOps::opRoundSubtract (T k, T a, T b, int a_id, int b_id, int &id, T &dk, T &da, T &db)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opRoundSubtract (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opRoundSubtract (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b, GEO_ImplicitSurfaceOptFlag &can_optimize)
 
template<typename T >
GEO_ImplicitSurfaceOps::opRoundDifference (T k, T a, T b, int a_id, int b_id, int &id)
 Round difference. More...
 
template<typename T >
GEO_ImplicitSurfaceOps::opRoundDifference (T k, T a, T b, int a_id, int b_id, int &id, T &dk, T &da, T &db)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opRoundDifference (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opRoundDifference (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b, GEO_ImplicitSurfaceOptFlag &can_optimize)
 
template<typename T >
GEO_ImplicitSurfaceOps::opChamferUnion (T k, T a, T b, int a_id, int b_id, int &id)
 Chamfer union. More...
 
template<typename T >
GEO_ImplicitSurfaceOps::opChamferUnion (T k, T a, T b, int a_id, int b_id, int &id, T &dk, T &da, T &db)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opChamferUnion (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opChamferUnion (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b, GEO_ImplicitSurfaceOptFlag &can_optimize)
 
template<typename T >
GEO_ImplicitSurfaceOps::opChamferIntersect (T k, T a, T b, int a_id, int b_id, int &id)
 Chamfer intersect. More...
 
template<typename T >
GEO_ImplicitSurfaceOps::opChamferIntersect (T k, T a, T b, int a_id, int b_id, int &id, T &dk, T &da, T &db)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opChamferIntersect (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opChamferIntersect (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b, GEO_ImplicitSurfaceOptFlag &can_optimize)
 
template<typename T >
GEO_ImplicitSurfaceOps::opChamferSubtract (T k, T a, T b, int a_id, int b_id, int &id)
 Chamfer subtract. More...
 
template<typename T >
GEO_ImplicitSurfaceOps::opChamferSubtract (T k, T a, T b, int a_id, int b_id, int &id, T &dk, T &da, T &db)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opChamferSubtract (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opChamferSubtract (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b, GEO_ImplicitSurfaceOptFlag &can_optimize)
 
template<typename T >
GEO_ImplicitSurfaceOps::opChamferDifference (T k, T a, T b, int a_id, int b_id, int &id)
 Chamfer difference. More...
 
template<typename T >
GEO_ImplicitSurfaceOps::opChamferDifference (T k, T a, T b, int a_id, int b_id, int &id, T &dk, T &da, T &db)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opChamferDifference (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b)
 
template<typename T >
UT_IntervalT< T > GEO_ImplicitSurfaceOps::opChamferDifference (T k, const UT_IntervalT< T > &a, const UT_IntervalT< T > &b, GEO_ImplicitSurfaceOptFlag &can_optimize)
 

Macro Definition Documentation

#define __GEO_ImplicitSurfaceOp_h__

Definition at line 14 of file GEO_ImplicitSurfaceOp.h.

Enumeration Type Documentation

Operation ID enumeration matching VEX implicit_shapes_op.h.

Enumerator
Invalid 
Begin 
Invert 
Offset 
Shell 
Union 
Intersect 
Subtract 
Difference 
SmoothUnion 
SmoothIntersect 
SmoothSubtract 
SmoothDifference 
RoundUnion 
RoundIntersect 
RoundSubtract 
RoundDifference 
ChamferUnion 
ChamferIntersect 
ChamferSubtract 
ChamferDifference 
SmoothRepulsiveUnion 

Definition at line 32 of file GEO_ImplicitSurfaceOp.h.

Optimization flags returned by interval operations Indicates when one operand dominates and the other can be skipped

Enumerator
None 
JustReturnA 
JustReturnB 
JustReturnNegA 
JustReturnNegB 

Definition at line 22 of file GEO_ImplicitSurfaceOp.h.