2 Copyright (C) 1999-2007 id Software, Inc. and contributors.
\r
3 For a list of contributors, see the accompanying CONTRIBUTORS file.
\r
5 This file is part of GtkRadiant.
\r
7 GtkRadiant is free software; you can redistribute it and/or modify
\r
8 it under the terms of the GNU General Public License as published by
\r
9 the Free Software Foundation; either version 2 of the License, or
\r
10 (at your option) any later version.
\r
12 GtkRadiant is distributed in the hope that it will be useful,
\r
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
15 GNU General Public License for more details.
\r
17 You should have received a copy of the GNU General Public License
\r
18 along with GtkRadiant; if not, write to the Free Software
\r
19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
\r
24 #include "entity_entitymodel.h"
\r
26 void Entity_UpdateClass(entity_t *e, const char* value)
\r
28 if(strcmp(value, "misc_model") == 0
\r
29 || (strcmp(value, "misc_gamemodel") == 0)
\r
30 || (strcmp(value, "model_static") == 0))
\r
32 if (e->model.pRender) e->model.pRender->DecRef();
\r
33 if (e->model.pSelect) e->model.pSelect->DecRef();
\r
34 if (e->model.pEdit) e->model.pEdit->DecRef();
\r
35 e->model.pRender = NULL;
\r
36 e->model.pSelect = NULL;
\r
37 e->model.pEdit = NULL;
\r
39 CEntityMiscModel *model = new CEntityMiscModel(e);
\r
41 e->model.pRender = (IRender*)model;
\r
42 e->model.pRender->IncRef();
\r
43 e->model.pSelect = (ISelect*)model;
\r
44 e->model.pSelect->IncRef();
\r
45 e->model.pEdit = (IEdit*)model;
\r
46 e->model.pEdit->IncRef();
\r
50 else if(e->eclass && e->eclass->modelpath)
\r
52 if (e->model.pRender) e->model.pRender->DecRef();
\r
53 if (e->model.pSelect) e->model.pSelect->DecRef();
\r
54 if (e->model.pEdit) e->model.pEdit->DecRef();
\r
55 e->model.pRender = NULL;
\r
56 e->model.pSelect = NULL;
\r
57 e->model.pEdit = NULL;
\r
59 CEntityEclassModel *model = new CEntityEclassModel;
\r
61 model->SetEclass(e->eclass);
\r
62 model->SetName(e->eclass->modelpath);
\r
64 e->model.pRender = (IRender*)model;
\r
65 e->model.pRender->IncRef();
\r
66 e->model.pSelect = (ISelect*)model;
\r
67 e->model.pSelect->IncRef();
\r
68 e->model.pEdit = (IEdit*)model;
\r
69 e->model.pEdit->IncRef();
\r
75 void pivot_draw(const vec3_t pivot)
\r
77 vec3_t vCenter, vMin, vMax;
\r
78 VectorCopy(pivot, vCenter);
\r
80 g_QglTable.m_pfn_qglPointSize(4);
\r
82 g_QglTable.m_pfn_qglBegin(GL_POINTS);
\r
83 g_QglTable.m_pfn_qglVertex3fv(vCenter);
\r
84 g_QglTable.m_pfn_qglEnd();
\r
86 g_QglTable.m_pfn_qglBegin(GL_LINES);
\r
88 g_QglTable.m_pfn_qglVertex3fv(vCenter);
\r
90 g_QglTable.m_pfn_qglVertex3fv(vCenter);
\r
93 g_QglTable.m_pfn_qglVertex3fv(vCenter);
\r
95 g_QglTable.m_pfn_qglVertex3fv(vCenter);
\r
98 g_QglTable.m_pfn_qglVertex3fv(vCenter);
\r
100 g_QglTable.m_pfn_qglVertex3fv(vCenter);
\r
102 g_QglTable.m_pfn_qglEnd();
\r
104 VectorCopy(vCenter, vMin);
\r
105 VectorCopy(vCenter, vMax);
\r
113 g_QglTable.m_pfn_qglBegin(GL_LINE_LOOP);
\r
114 g_QglTable.m_pfn_qglVertex3f(vMin[0],vMin[1],vMin[2]);
\r
115 g_QglTable.m_pfn_qglVertex3f(vMax[0],vMin[1],vMin[2]);
\r
116 g_QglTable.m_pfn_qglVertex3f(vMax[0],vMax[1],vMin[2]);
\r
117 g_QglTable.m_pfn_qglVertex3f(vMin[0],vMax[1],vMin[2]);
\r
118 g_QglTable.m_pfn_qglEnd();
\r
120 g_QglTable.m_pfn_qglBegin(GL_LINE_LOOP);
\r
121 g_QglTable.m_pfn_qglVertex3f(vMin[0],vMin[1],vMax[2]);
\r
122 g_QglTable.m_pfn_qglVertex3f(vMax[0],vMin[1],vMax[2]);
\r
123 g_QglTable.m_pfn_qglVertex3f(vMax[0],vMax[1],vMax[2]);
\r
124 g_QglTable.m_pfn_qglVertex3f(vMin[0],vMax[1],vMax[2]);
\r
125 g_QglTable.m_pfn_qglEnd();
\r
127 g_QglTable.m_pfn_qglBegin(GL_LINES);
\r
128 g_QglTable.m_pfn_qglVertex3f(vMin[0],vMin[1],vMin[2]);
\r
129 g_QglTable.m_pfn_qglVertex3f(vMin[0],vMin[1],vMax[2]);
\r
130 g_QglTable.m_pfn_qglVertex3f(vMin[0],vMax[1],vMax[2]);
\r
131 g_QglTable.m_pfn_qglVertex3f(vMin[0],vMax[1],vMin[2]);
\r
132 g_QglTable.m_pfn_qglVertex3f(vMax[0],vMin[1],vMin[2]);
\r
133 g_QglTable.m_pfn_qglVertex3f(vMax[0],vMin[1],vMax[2]);
\r
134 g_QglTable.m_pfn_qglVertex3f(vMax[0],vMax[1],vMax[2]);
\r
135 g_QglTable.m_pfn_qglVertex3f(vMax[0],vMax[1],vMin[2]);
\r
136 g_QglTable.m_pfn_qglEnd();
\r