https://foro.gambas-es.org/viewtopic.php?f=24&t=8005&p=48156#p48156
-----------------------------------
tercoIDE
Martes, 28 Abril 2020, 20:49

Re: Radiografia De Una Entidad De GambasCADE
-----------------------------------
[code linenumbers=false syntax=gambas]

'' La rutina principal de la clase: dibujarse
'' Esta rutina es la UNICA que se invoca a intervalos regulares, la clase deberia utilizarla para hacer todas las tareas
'' que dependan del tiempo, como por ejemplo moverse a cierta velocidad, transmitir agua , etc
Public Sub Draw()
   
    If Not Me.DrawAble Then Return                
    If FMain.DrawOriginales Then DrawOriginal
      ' AQUI VAN LAS RUTINAS DE DIBUJO 
      Paint.Reset ' dejamos todo en orden para la proxima entidad
End


'' Esta rutina pude utilizarse para dibujar un fantasma durante alguna operacion como Copiar
'' es invocada por .Draw()
Public Sub DrawOriginal()
       
End


'' Determina si el objeto puede moverse, en general es cuando todos sus puntos estan seleccionados.
'' La entidad puede negarse al movimiento!!!
Public Function Movable() As Boolean

    If "MIS CONDICIONES PARA PERMITIR MOVIMIENTOS" Then   
        Return True
    Else
        Return False
    End If

End

'' Idem, tambien puede negarse a que la deformen !!!!
Public Function Stretchable() As Boolean
    
  If "MIS CONDICIONES PARA PERMITIR ESTIRAMIENTOS" Then 
      
        Return True
    Else
       Return False
       
    Endif
                                            
End


'' Recibe un punto y debe responder si esta dentro de si misma
Public Sub PointSelection(Xr As Float, Zr As Float) As Boolean
    
    
    If "MIS CONDICIONES PARA VER SI UN PUNTO CUALQUIERA Xr,Zr ESTA DENTRO DE ESTE ELEMENTO" Then
      
        Return True 
    Else
            
        Return False
    End If
End



'' Aqui se crea el poligono que envuelve a la entidad y sirve para cosas como detectar clicks
Public Sub CreateBoundingPoligon()
    
End


'' Esto se invoca una unica vez al finalizar la creacion de la entidad, o sea cuando el user
'' marco todos lo puntos y escribio los parametros numericos.
Public Sub Finish()
        
    If " all is OK?" Then
    
        ForDeletion = False
        DrawAble = True
    
    Else
        
        ForDeletion = True 
        DrawAble = False
    
    End If
    
End [/code]


