RioEngine  0.1
My first attempt to create a 3D WYSIWYG Game Engine
clgeometry.cpp
Go to the documentation of this file.
1 //--------------------------------------------------------------- @License begins
2 // RioEngine: The late night Coke -without whores- debugging sessions
3 // 2012-2015 Leopoldo Lomas Flores. Torreon, Coahuila. MEXICO
4 // leopoldolomas [at] gmail
5 // www.rioengine.com
6 // www.leopoldolomas.info
7 // "You have a problem, you face it like a man."
8 //
9 // This is free and unencumbered software released into the public domain.
10 //
11 // Anyone is free to copy, modify, publish, use, compile, sell, or distribute this
12 // software, either in source code form or as a compiled binary, for any purpose,
13 // commercial or non-commercial, and by any means.
14 //
15 // In jurisdictions that recognize copyright laws, the author or authors of this
16 // software dedicate any and all copyright interest in the software to the public
17 // domain. We make this dedication for the benefit of the public at large and to
18 // the detriment of our heirs and successors. We intend this dedication to be
19 // an overt act of relinquishment in perpetuity of all present and future
20 // rights to this software under copyright law.
21 //
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS
24 // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE
25 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
26 // CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27 // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28 //--------------------------------------------------------------- @License ends
29 
30 #include "cengine/carray.h"
31 #include "clengine/clmesh.h"
32 #include "clengine/clgeometry.h"
33 
34 //-----------------------------------------------------------------------------
35 
37  m_mesh = new CLMesh();
38  m_polygons = NULL;
39 }
40 
41 //-----------------------------------------------------------------------------
42 
43 CLGeometry::CLGeometry(const CLGeometry& original_obj) : CObject() {
44  copyValuesFromObject(original_obj);
45 }
46 
47 //-----------------------------------------------------------------------------
48 
49 void CLGeometry::copyValuesFromObject(const CLGeometry& original_obj) {
50  m_mesh = (CLMesh*)original_obj.getMesh()->retain();
51  m_polygons = NULL;
52 
53  CArray<CLPolygon>* polygons_array = original_obj.getPolygons();
54  setPolygons(polygons_array);
55 }
56 
57 //-----------------------------------------------------------------------------
58 
60  if (this == &original_obj) {
61  return *this;
62  }
63 
64  copyValuesFromObject(original_obj);
65 
66  return *this;
67 }
68 
69 //-----------------------------------------------------------------------------
70 
72  RE_ASSERT(polygons_array);
73  SAFE_RELEASE(m_polygons);
74  SAFE_RETAIN(polygons_array);
75  m_polygons = polygons_array;
76 }
77 
78 //-----------------------------------------------------------------------------
79 
81  return m_polygons;
82 }
83 
84 //-----------------------------------------------------------------------------
85 
87  return m_mesh;
88 }
89 
90 //-----------------------------------------------------------------------------
91 
93  SAFE_RELEASE(m_polygons);
94  SAFE_RELEASE(m_mesh);
95 }
CArray< CLPolygon > * getPolygons() const
Definition: clgeometry.cpp:80
virtual void copyValuesFromObject(const CLGeometry &geometry)
Definition: clgeometry.cpp:49
Definition: clmesh.h:47
#define SAFE_RELEASE(x)
Definition: cobject.h:36
CLMesh * getMesh() const
Definition: clgeometry.cpp:86
CLGeometry & operator=(const CLGeometry &geometry)
Definition: clgeometry.cpp:59
#define SAFE_RETAIN(x)
Definition: cobject.h:35
#define RE_ASSERT
Definition: macro.h:57
void setPolygons(CArray< CLPolygon > *)
Definition: clgeometry.cpp:71
CObject * retain()
Definition: cobject.cpp:66