3
* $Id: wchroma.h 3535 2011-03-18 17:57:05Z carlos $
6
* Copyright 2008-10 MetaEmotion S.L. All rights reserved.
7
* http://ginkgo-cadx.com
9
* This file is licensed under LGPL v3 license.
10
* See License.txt for details
15
#include <api/iwidgets.h>
16
#include <widgets/observers/iobservadorchroma.h>
25
//---------------------------------------------------------------------
27
class WChromaBuilder : public GNC::GCS::Widgets::IWidgetBuilder, public GNC::GCS::Widgets::Notificadores::INotificadorChroma {
29
WChromaBuilder(GNC::GCS::IWidgetsManager* pManager, long gid, GNC::GCS::Widgets::Observadores::IObservadorChroma* pObservador = NULL);
33
virtual void OnMouseEvents(GNC::GCS::Eventos::EventoRaton&);
35
virtual void OnKeyEvents(GNC::GCS::Eventos::EventoTeclado&);
37
virtual void Render(GNC::GCS::Contexto3D* c);
39
virtual GNC::GCS::Widgets::TipoCursor GetCursor();
44
GNC::GCS::Vector m_VerticesSeleccion[2];
45
GNC::GCS::Nodo m_Nodo;
50
//---------------------------------------------------------------------
52
class WChroma : public GNC::GCS::Widgets::IWidget {
55
//region "Constructor y destructor"
58
WChroma(IWidgetsManager* pManager, long vid, GNC::GCS::Nodo nodo, const char* nombre, long gid, bool oculto = false);
64
//region "Interfaz especifica"
66
virtual void OnMouseEvents(GNC::GCS::Eventos::EventoRaton&);
68
virtual void OnKeyEvents(GNC::GCS::Eventos::EventoTeclado&);
70
virtual bool HitTest(float x, float y, float umbralCuadrado);
72
virtual bool HitTest(GNC::GCS::Vector* vertices, int numVertices);
74
virtual void Render(GNC::GCS::Contexto3D* c);
76
virtual bool SoportaAutoBorrado() const {
80
virtual GNC::GCS::Nodo& GetNodo() {
84
virtual bool EsMarcador() const
89
virtual bool DelimitaArea() const
94
virtual void GetPosicion(GNC::GCS::Vector& posicion) const
99
virtual void Seleccionar(bool seleccionar)
101
SeleccionarNodo(m_Nodo, seleccionar);
104
virtual void Iluminar(bool iluminar)
106
if (iluminar != m_Nodo.EstaIluminado()) {
107
IluminarNodo(m_Nodo, iluminar);
112
virtual void SeleccionarNodo(GNC::GCS::Nodo& nodo, bool seleccionar)
114
if(seleccionar != nodo.EstaSeleccionado()){
115
nodo.Seleccionar(seleccionar);
120
virtual bool EstaSeleccionado() const
122
return m_Nodo.EstaSeleccionado();
125
virtual bool EstaIluminado() const
127
return m_Nodo.EstaIluminado();
132
//region "Estado interno"
137
//region "Propiedades geometricas"
139
GNC::GCS::Nodo m_Nodo;
140
GNC::GCS::Vector m_PosAntigua;
143
friend std::ostream& operator<<(std::ostream& out, const WChroma& w) {
144
out << "[ P=" << w.m_Nodo << ", GID=" << w.m_GID << ", TID=" << w.m_TID << " UID=" << w.m_UID << " ]";
148
friend std::ostream& operator<<(std::ostream& out, const WChroma* w) {