14 #include "geometrymod.h" 37 virtual int size()
const = 0;
38 virtual int get(int)
const = 0;
39 virtual int indexOf(
const int) = 0;
40 virtual void append(
int ) = 0;
41 virtual void append(
const int*,
int num) = 0;
42 virtual void setEmpty() = 0;
60 virtual int pop() = 0;
61 virtual int set(int,int) = 0;
62 virtual void set(
const int*,
int num) = 0;
70 virtual int size()
const;
71 virtual int get(int)
const;
73 virtual void append(
int );
74 virtual void append(
const int*,
int num);
75 virtual void setEmpty();
79 virtual int set(int,int);
80 virtual void set(
const int*,
int num);
94 virtual int indexOf(
const int) = 0;
107 static void setCreator(PrimitiveSetCreator*);
110 virtual PrimitiveSet* doCreate(
bool indexed,
bool large) = 0;
119 virtual PrimitiveSet* doCreate(
bool indexed,
bool large);
129 enum Type { Points, Lines, Triangles, TriangleStrip, TriangleFan };
134 SetType settype =IndexSet,
bool large =
false);
141 virtual ~IndexedGeometry();
149 void hide(
bool yn) { ishidden_ = yn; }
152 void appendCoordIndices(
const TypeSet<int>&,
bool reverse=
true);
166 void appendCoordIndicesAsTriangles(
const TypeSet<int>&,
bool);
167 void appendCoordIndicesAsTriangleStrips(
const TypeSet<int>&);
168 void appendCoordIndicesAsTriangleFan(
const TypeSet<int>&);
185 virtual ~IndexedShape();
189 bool createnew =
true);
235 #define mGetIndexedShapeWriteLocker4Geometries() \ 236 Threads::Locker lckr( geometrieslock_, Threads::Locker::WriteLock ) 254 void removeFromGeometries(
int geoidx);
virtual bool update(bool forceall, TaskRunner *=0)
Definition: indexedshape.h:191
#define mExpClass(module)
Definition: commondefs.h:160
Definition: indexedshape.h:182
To be able to send and/or receive CallBacks, inherit from this class.
Definition: callback.h:272
void hide(bool yn)
Definition: indexedshape.h:149
Type getPrimitiveType() const
Definition: indexedshape.h:155
Interface for a list of Coord3 with automatically maintained IDs.
Definition: positionlist.h:72
Definition: indexedshape.h:29
A lock of a type that (hopefully) suits your needs. To use it, you need the Locker class...
Definition: threadlock.h:53
int version_
Definition: indexedshape.h:232
PrimitiveType primitivetype_
Definition: indexedshape.h:50
Coord3List * coordlist_
Definition: indexedshape.h:222
Coord3List * normallist_
Definition: indexedshape.h:173
const Coord3List * textureCoordList() const
Definition: indexedshape.h:249
Definition: indexedshape.h:126
Coord3List * textureCoordList()
Definition: indexedshape.h:212
virtual ~PrimitiveSetCreator()
Definition: indexedshape.h:102
ObjectSet< T >::size_type indexOf(const ObjectSet< T > &os, const S &val)
Locate object in set.
Definition: objectset.h:169
bool isHidden() const
Definition: indexedshape.h:148
bool ischanged_
Definition: indexedshape.h:159
Coord3List * texturecoordlist_
Definition: indexedshape.h:172
#define mDeclareEnumUtils(enm)
Some utilities surrounding the often needed enum <-> string table.
Definition: enums.h:258
ObjectSet< IndexedGeometry > geometries_
Definition: indexedshape.h:220
ExplicitIndexedShape()
Definition: indexedshape.h:243
bool righthandednormals_
Definition: indexedshape.h:225
Definition: indexedshape.h:88
bool append(TypeSetBase< T, I > &to, const TypeSetBase< S, J > &from)
append allowing a different type to be merged into set
Definition: typeset.h:198
const Coord3List * coordList() const
Definition: indexedshape.h:205
Set of pointers to objects.
Definition: commontypes.h:32
#define mRefCountImplNoDestructor(ClassName)
Macro to setup a class without destructor for reference counting.
Definition: refcount.h:167
const Coord3List * normalCoordList() const
Definition: indexedshape.h:246
Class that can execute a task.
Definition: task.h:169
bool ishidden_
Definition: indexedshape.h:170
Coord3List * texturecoordlist_
Definition: indexedshape.h:224
Coord3List * normallist_
Definition: indexedshape.h:223
SetType primitivesettype_
Definition: indexedshape.h:162
Coord3List * coordlist_
Definition: indexedshape.h:171
PrimitiveSet * getCoordsPrimitiveSet()
Definition: indexedshape.h:154
Coord3List * coordList()
Definition: indexedshape.h:206
Coord3List * textureCoordList()
Definition: indexedshape.h:250
TypeSet< int > indexset_
Definition: indexedshape.h:84
Geometry::PrimitiveSet * primitiveset_
Definition: indexedshape.h:174
virtual bool createsTextureCoords() const
Definition: indexedshape.h:201
static uiHor3DInterpol * create(uiParent *)
Threads::Lock geometrieslock_
Definition: indexedshape.h:219
static PtrMan< PrimitiveSetCreator > creator_
Definition: indexedshape.h:112
Coord3List * normalCoordList()
Definition: indexedshape.h:247
virtual bool needsUpdate() const
Definition: indexedshape.h:190
Definition: indexedshape.h:34
Definition: indexedshape.h:33
Coord3List * normalCoordList()
Definition: indexedshape.h:209
~ExplicitIndexedShape()
Definition: indexedshape.h:244
Definition: indexedshape.h:239
SetType getPrimitiveSetType() const
Definition: indexedshape.h:156
int getVersion() const
Definition: indexedshape.h:214
bool isEmpty(const NLAModel *mdl)
Definition: indexedshape.h:54
virtual bool createsNormals() const
Definition: indexedshape.h:200
Definition: indexedshape.h:116
Definition: indexedshape.h:99
virtual void setRightHandedNormals(bool)
Definition: indexedshape.h:193
Definition: arraytesselator.h:21
SetType
Definition: indexedshape.h:130
Type primitivetype_
Definition: indexedshape.h:161
Definition: indexedshape.h:66
Threads::Lock lock_
Definition: indexedshape.h:158
const Coord3List * normalCoordList() const
Definition: indexedshape.h:208
PrimitiveType
Definition: indexedshape.h:33
Type
Definition: indexedshape.h:129
const Coord3List * textureCoordList() const
Definition: indexedshape.h:211