1#ifndef FISH_POND_ANEMONEFISH_EDITFIELD_HPP
2#define FISH_POND_ANEMONEFISH_EDITFIELD_HPP 20200408
4#include <ocean/Anemonia/Brush.hpp>
5#include <ocean/shrimp/BoundingBox.hpp>
6#include <ocean/shrimp/Action.hpp>
7#include <ocean/shrimp/UndoStack.hpp>
8#include <pond/bone/FieldOperatorObject.hpp>
9#include <bundle/BundleProperty.hpp>
12#include "anemonefishDllApi.h"
23 int MaxUndoStackSize = 1024;
36 size_t LastNumberOfModifiedVertices = 0;
55 int MaxUndoStackSize);
68static void setUndoTooltipInfo(
const UndoStack&US,
71 int MaxUndoStackSize);
73static string UndoName(
int N);
91 Field&theField,
const string&Fieldname,
98 size_t VerticesModified = 0;
108 const string&Fieldname,
120 Field&theField,
const string&Fieldname);
125 Field&theField,
const string&Fieldname,
133 Field&theField,
const string&Fieldname,
137 size_t&VerticesModified)
const;
148 const string&Fieldname,
182 template <
class T,
class ValueType>
188 for(
const auto i : Indices)
196 template <
class T,
class ValueType>
200 return assignFieldValues( *C, Indices, Value );
An iterator with an optional DataCreator, which is just a class to intercept creation of data along a...
Definition CreativeIterator.hpp:34
A Field is a collection of CreativeArrayBase reference pointers which are accessed via FragmentID obj...
Definition Field.hpp:245
A Representation is a set of Field objects, each of them accessed via some FieldID identifier.
Definition Representation.hpp:101
Base class for objects that operate on Field objects and create new fields.
Definition FieldOperatorObject.hpp:44
note: cannot derive from FloatingSkeletonRenderer as long as independent base class TriangleRenderer ...
Definition EditField.hpp:35
Definition EditField.hpp:96
Definition EditField.hpp:19
static bool assignFieldValues(Chunk< T > &C, const std::vector< size_t > &Indices, const ValueType &Value)
Helper template function to assign field values as allowed by the given index array.
Definition EditField.hpp:183
virtual RefPtr< Fiber::MemBase > modifyFragment(Field &thePrimaryField, Field &theFieldToBeSaved, const std::vector< size_t > &Indices, const std::vector< double > &Weight, Fiber::Representation &theRepresentation, const RefPtr< Fiber::FragmentID > &fID, size_t &NumberOfModifiedVertices, VRequest &Context) const =0
The function to actually modify a given chunk of data, returns the previous data before modification ...
virtual bool allowModification(VRequest &Context, Fiber::Representation &theRepresentation, const string &Fieldname, Field &theField)=0
Virtual function to decide when an editing function should actually be performed, for instance when a...
string doUndoRedo(VRequest &Context, const UndoStack &US, Fiber::Representation &theRepresentation, const string &Fieldname, const RefPtr< Field > &theField) const
Definition EditField.hpp:62