40 #ifndef INCLUDED_DISTI_GROUP_H
41 #define INCLUDED_DISTI_GROUP_H
55 DISTI_DEPRECATED(
"This identifier is forbidden by the C++ standard. Use BaseClass instead." )
66 bool _performGroupCullCheck;
70 bool _cullTestChildren;
75 virtual GLS_EXPORT
void onVertexchanged(
void );
78 void DummySetUnsignedInt(
const unsigned int& ) {}
79 Group& operator=(
const Group& ) DISTI_SPECIAL_MEM_FUN_DELETE;
80 Group(
const Group& that ) DISTI_SPECIAL_MEM_FUN_DELETE;
95 friend class GroupEditor;
173 unsigned int Count(
void )
const {
return _objects.
Count(); }
199 GLS_EXPORT
explicit Group(
int generateInstance = FALSE );
205 GLS_EXPORT
Group(
const Group& group,
bool generateNames );
215 virtual GLS_EXPORT
~Group();
235 virtual GLS_EXPORT
void Draw(
void ) DISTI_METHOD_OVERRIDE;
241 virtual GLS_EXPORT
bool Hit(
float x,
float y,
float z,
float scale, const
Vector& directionVector,
Vector* collisionPoint ) DISTI_METHOD_OVERRIDE;
245 const
Vector& logicalCoords,
247 const
Vector& directionVector,
254 virtual GLS_EXPORT
void Parent(
DisplayFrame* par ) DISTI_METHOD_OVERRIDE;
260 virtual GLS_EXPORT
void CalculateBoundingBox(
void );
266 virtual GLS_EXPORT
void Location( const
Vertex& v ) DISTI_METHOD_OVERRIDE;
267 virtual GLS_EXPORT
void Location(
float x,
float y,
float z ) DISTI_METHOD_OVERRIDE;
270 virtual GLS_EXPORT
void Translate(
float x,
float y,
float z ) DISTI_METHOD_OVERRIDE;
273 virtual GLS_EXPORT
void Translate(
float transAmount[] ) DISTI_METHOD_OVERRIDE;
276 virtual GLS_EXPORT
void TranslateVertices(
float x,
float y,
float z ) DISTI_METHOD_OVERRIDE;
282 virtual GLS_EXPORT
void GetExtents(
float& x,
float& y,
float& z,
float& x1,
float& y1,
float& z1 ) DISTI_METHOD_OVERRIDE;
291 virtual GLS_EXPORT
void Rotate( const
Vector& orig,
float angle, const
Vector& axis ) DISTI_METHOD_OVERRIDE;
294 virtual GLS_EXPORT
void Scale(
float scale_x,
float scale_y );
297 GLS_EXPORT
void Scale(
float scale_x,
float scale_y,
float scale_z,
Vertex* anchor = NULL,
int handle = 0 ) DISTI_METHOD_OVERRIDE;
305 virtual GLS_EXPORT
void InsertObject(
DisplayObject* obj,
bool reparent = true,
bool recalculateBoundingbox = true,
int loc = -1 );
319 virtual GLS_EXPORT
void ReorderObject(
unsigned int oldIndex,
unsigned int newIndex );
346 virtual GLS_EXPORT
void LineWidth(
float width ) DISTI_METHOD_OVERRIDE;
347 virtual GLS_EXPORT
float LineWidth(
void ) DISTI_METHOD_OVERRIDE;
355 virtual GLS_EXPORT
int PolygonMode(
void ) DISTI_METHOD_OVERRIDE;
356 virtual GLS_EXPORT
void PolygonMode(
int mode ) DISTI_METHOD_OVERRIDE;
358 virtual GLS_EXPORT
void PolygonEnd( const
int mode ) DISTI_METHOD_OVERRIDE;
359 virtual GLS_EXPORT
int PolygonEnd(
void ) DISTI_METHOD_OVERRIDE;
361 virtual GLS_EXPORT
void Shading( const
int mode ) DISTI_METHOD_OVERRIDE;
362 virtual GLS_EXPORT
int Shading(
void ) DISTI_METHOD_OVERRIDE;
364 virtual GLS_EXPORT
void DepthTest(
unsigned char mode ) DISTI_METHOD_OVERRIDE;
365 virtual GLS_EXPORT
int DepthTest(
void ) DISTI_METHOD_OVERRIDE;
367 virtual GLS_EXPORT
void AntiAlias(
bool mode ) DISTI_METHOD_OVERRIDE;
368 virtual GLS_EXPORT
bool AntiAlias(
void ) DISTI_METHOD_OVERRIDE;
370 virtual GLS_EXPORT
void AlphaMode(
int mode ) DISTI_METHOD_OVERRIDE;
371 virtual GLS_EXPORT
int AlphaMode(
void ) DISTI_METHOD_OVERRIDE;
373 virtual GLS_EXPORT
void CullBackFace( const
bool mode ) DISTI_METHOD_OVERRIDE;
374 virtual GLS_EXPORT
bool CullBackFace(
void ) DISTI_METHOD_OVERRIDE;
377 virtual GLS_EXPORT
void LightingEnabled(
bool lighting ) DISTI_METHOD_OVERRIDE;
382 virtual GLS_EXPORT
void SetBlendColor( const
GlsColor& color ) DISTI_METHOD_OVERRIDE;
387 virtual GLS_EXPORT
GlsColor GetBlendColor(
void ) DISTI_METHOD_OVERRIDE;
392 virtual GLS_EXPORT
void SetColor( const
GlsColor& color ) DISTI_METHOD_OVERRIDE;
397 virtual GLS_EXPORT
GlsColor GetColor(
void ) DISTI_METHOD_OVERRIDE;
402 virtual GLS_EXPORT
void SetFillColor( const
GlsColor& color ) DISTI_METHOD_OVERRIDE;
407 virtual GLS_EXPORT
GlsColor GetFillColor(
void ) DISTI_METHOD_OVERRIDE;
409 virtual GLS_EXPORT
void TextureRepeat( const
int rep ) DISTI_METHOD_OVERRIDE;
424 virtual GLS_EXPORT
void Calculate(
double time ) DISTI_METHOD_OVERRIDE;
436 GLS_EXPORT CompatabilityListItem();
438 GLS_EXPORT CompatabilityListItem* Next();
440 GLS_EXPORT CompatabilityListItem* Prev();
444 static GLS_EXPORT
void RecalcCompatabilityList(
Group* whichGroup );
462 virtual GLS_EXPORT
void SetGroupTextureRepeat(
const int mode );
DisplayObject * FindNonRecursive(DisplayObject *obj)
Definition: display_frame.h:85
virtual const Vertex & Location(void) const
unsigned int Count(void) const
Definition: group.h:173
#define DISTI_DEPRECATED(msg)
Defines whether this compiler supports the C++14 deprecated attribute.
Definition: gls_cpp_lang_support.h:436
virtual void GrowBoundingBox(DisplayObject *obj)
unsigned Count() const
Definition: dynamic_array.h:204
virtual DisplayObject * Pick3D(const Vector &winLoc, const Vector &logicalCoords, float scale, const Vector &directionVector, Vector &collisionWinLoc, const OpenGLMatrices &drawnMatrices) override
bool IsEmpty() const
Definition: group.h:188
virtual void CopyProperties(DisplayObject *src) override
virtual void InsertObject(DisplayObject *obj, bool reparent=true, bool recalculateBoundingbox=true, int loc=-1)
The disti::DynamicArray class. A templated array of objects capable of dynamically growing...
virtual int PolygonEnd(void) override
Class to contain current OpenGL view, projection and draw matrices.
Definition: util.h:471
virtual void PreDraw(const OpenGLMatrices ¤t, Culler &culler) override
virtual void TranslateVertices(float x, float y, float z) override
void DeleteVertexAt(unsigned) override
Definition: group.h:328
DisplayFrame * Parent(void) const
Definition: display.h:932
virtual bool Hit(float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint) override
void SetPainter(GlsPainter *painter) override
virtual bool CullBackFace(void) override
DisplayObject * Item(unsigned int index)
const DisplayObjectArray & Objects() const
Definition: group.h:152
virtual void GetExtents(float &x, float &y, float &z, float &x1, float &y1, float &z1) override
virtual int TextureMinificationFilter(void) override
virtual void DeleteAllChildren()
virtual DisplayObject * CloneObject(bool generateNames=false) override
DisplayObject * FirstObject()
virtual void Rotate(const Vector &orig, float angle, const Vector &axis) override
virtual int Shading(void) override
virtual void SetBlendColor(const GlsColor &color) override
The disti::DisplayObject class and global enumerations.
const DisplayObject * operator[](unsigned int index) const
Definition: group.h:179
virtual float LineWidth(void) override
virtual InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList=NULL) override
virtual void Calculate(double time) override
Definition: gls_painter.h:51
virtual int TextureMappingTechnique(void) override
DisplayObjectPtr operator[](unsigned int index)
Definition: group.h:176
virtual void ReorderObject(unsigned int oldIndex, unsigned int newIndex)
virtual void PushObject(DisplayObject *obj)
CompatabilityListItem * First()
virtual bool DeleteObject(DisplayObject *obj, bool recalculateBoundingbox=true)
virtual GlsColor GetFillColor(void) override
virtual bool AntiAlias(void) override
CompatabilityListItem * Last()
virtual void Translate(float x, float y, float z) override
bool CullTestChildren(void) const
Definition: group.h:167
DisplayObject * FindByName(const char *name)
void InitialGroupCount(unsigned int cnt)
bool PerformGroupCullCheck(void) const
Definition: group.h:161
virtual void CopyGeometry(DisplayObject *src) override
Definition: gls_color.h:53
char * InstanceName(void)
int Position(const DisplayObject *obj) const
virtual void CalculateTextureCoordinates(void) override
DistiAttribDict::const_iterator begin(const DistiAttribDict &dict)
Definition: disti_metadata.h:863
virtual void SetGroupLocation(const Vertex &v)
DisplayObject * LastObject(void)
virtual int TextureMagnificationFilter(void) override
DisplayObject * FindByName(DisplayObject *obj)
Definition: group.h:129
virtual GlsColor GetBlendColor(void) override
DisplayObject * FindByQualifiedName(const char *name)
virtual void SetColor(const GlsColor &color) override
virtual void SetAvailableAttributes(unsigned int value) override
virtual int LineStipplePattern(void) override
virtual void SetFillColor(const GlsColor &color) override
virtual GlsColor GetColor(void) override
virtual void Draw(void) override
virtual DisplayObject * FindByNameSameFrame(const char *name)
DisplayObjectArray & Objects()
Definition: group.h:149
virtual void GetResources(std::ostream &outstr, GlsResourceFilter *filter=NULL) override
Definition: gls_resources.h:50
virtual bool TextureRepeat(void)
virtual int PolygonMode(void) override
virtual bool LightingEnabled() override
Macros and helper code to determine what subset of C++11/14/17 is available.
virtual int DepthTest(void) override
virtual int LineStippleMultiplier(void) override
Definition: bmpimage.h:46
void InsertVertexAt(unsigned) override
Definition: group.h:331
virtual void GetTransformedExtents(Vector &min, Vector &max, const GlsMatrixType &matrix, bool resetMinMax=true) override
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *array) override
virtual int AlphaMode(void) override
const DisplayObjectPtr * end(const Group &group)
Overload begin() so that range-for loops and other constructs work with Group.
Definition: group.h:484
virtual void AddAvailableAttributes(unsigned int availableAttributes)
virtual DisplayObject * handle(DisplayEvent *ev)