#include "winding.h"
#include "brush_primit.h"
-#define CONTENTS_DETAIL 0x8000000
-
+const unsigned int BRUSH_DETAIL_FLAG = 27;
+const unsigned int BRUSH_DETAIL_MASK = (1 << BRUSH_DETAIL_FLAG);
enum EBrushType
{
inline void ContentsFlagsValue_assignMasked(ContentsFlagsValue& flags, const ContentsFlagsValue& other)
{
- bool detail = bitfield_enabled(flags.m_contentFlags, CONTENTS_DETAIL);
+ bool detail = bitfield_enabled(flags.m_contentFlags, BRUSH_DETAIL_MASK);
flags = other;
if(detail)
{
- flags.m_contentFlags = bitfield_enable(flags.m_contentFlags, CONTENTS_DETAIL);
+ flags.m_contentFlags = bitfield_enable(flags.m_contentFlags, BRUSH_DETAIL_MASK);
}
else
{
- flags.m_contentFlags = bitfield_disable(flags.m_contentFlags, CONTENTS_DETAIL);
+ flags.m_contentFlags = bitfield_disable(flags.m_contentFlags, BRUSH_DETAIL_MASK);
}
}
};
bool face_filtered(Face& face);
+void add_face_filter(FaceFilter& filter, int mask, bool invert = false);
void Brush_addTextureChangedCallback(const SignalHandler& callback);
void Brush_textureChanged();
bool isDetail() const
{
- return (m_shader.m_flags.m_contentFlags & CONTENTS_DETAIL) != 0;
+ return (m_shader.m_flags.m_contentFlags & BRUSH_DETAIL_MASK) != 0;
}
void setDetail(bool detail)
{
undoSave();
if(detail && !isDetail())
{
- m_shader.m_flags.m_contentFlags |= CONTENTS_DETAIL;
+ m_shader.m_flags.m_contentFlags |= BRUSH_DETAIL_MASK;
}
else if(!detail && isDetail())
{
- m_shader.m_flags.m_contentFlags &= ~CONTENTS_DETAIL;
+ m_shader.m_flags.m_contentFlags &= ~BRUSH_DETAIL_MASK;
}
m_observer->shaderChanged();
}
m_render_faces(m_faceCentroidPoints, GL_POINTS),
m_render_vertices(m_uniqueVertexPoints, GL_POINTS),
m_render_edges(m_uniqueEdgePoints, GL_POINTS),
- m_planeChanged(false),
- m_transformChanged(false),
m_evaluateTransform(evaluateTransform),
- m_boundsChanged(boundsChanged)
+ m_boundsChanged(boundsChanged),
+ m_planeChanged(false),
+ m_transformChanged(false)
{
planeChanged();
}
m_render_faces(m_faceCentroidPoints, GL_POINTS),
m_render_vertices(m_uniqueVertexPoints, GL_POINTS),
m_render_edges(m_uniqueEdgePoints, GL_POINTS),
- m_planeChanged(false),
- m_transformChanged(false),
m_evaluateTransform(evaluateTransform),
- m_boundsChanged(boundsChanged)
+ m_boundsChanged(boundsChanged),
+ m_planeChanged(false),
+ m_transformChanged(false)
{
copy(other);
}
TransformNode(other),
Bounded(other),
Cullable(other),
+ Snappable(),
Undoable(other),
FaceObserver(other),
Filterable(other),