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

Radiografia De Una Entidad De GambasCAD
-----------------------------------
(este post ira modificandose a medida que agregamos cosas)

IMPORTANTE: estos puntos no estan en PIXEL sino en METROS

[img]https://foro.gambas-es.org/files/images/2399/captura_de_pantalla_de_2020_05_02_09_17_20.png[/img]

Los puntos se guardan en arrays de Float[] en pares x0,y0,x1,y1,x2.....

[code linenumbers=false syntax=gambas]
' El nombe de la entidad, que difiere del nombre del archivo de la clase, desde la linea de comandos podra invocarse este nombre para dibujar algo, sin tener que hacer click en un boton. Listo para ser traducido.
Public gender As String = ("Slab")

' Este numero se usa para determinar que cosa se dibuja primero. El 0 se dibuja primero y es tapado por el resto de las cosas.
Public Const DrawingOrder As Integer = 1        ' 1 = draws first 
numero de puntos minimo para que pueda dibujarse algo
Public Const PointsToDraw As Integer = 1             ' minimal point requered for drawing something usefull

' esto se escribe en el prompt, como ayuda al user
Public Const HelperTrabajo As String = ("Insert a Slab")


'  a partir de aqui se guardan cosas en el disco             
'========================================================================
 son los puntos que definen las cosas, lo que le usuario debera marcar al dibujarlas.
Public P As New Float[]                         'X,Z pairs

' un parametro de texto, pero puede servir para alojar una lista separable con Split()
Public StringData As String

' estos todavia no los usamos
Public Layer As Integer
Public Block As Integer
Public _Color As Integer                     ' Para darle un color distinto
Public LineType As Integer                  
Public LineWidth As Integer                  
'========================================================================
' hasta aqui se guardan cosas en el disco, lo que sigue son variables durante el uso
indica si algun punto fue seleccionado con el recuadro verde
Public Psel As New Boolean[] 

' True si durante la construccion ya tiene suficientes elementos para poder hacer una representacion digna
Public DrawAble As Boolean = False

' si ya lo terminamos de dibujar
Public Finished As Boolean = False

 ' Pertenecemos a un grupo?
Public Group As Integer = 0             

' es un backup de P[] , muy util a la hora de volver las cosas al lugar original cuando el use se arrepiente de una accion
Public B As New Float[]   

' define un poligono alrededor de las cosas y sirve para detectar cuando se hace click en algo para sleeccionarlo. Esta dibujado en azul y puede verse con F6 a modo de Debug
Public BoundingPoligon As New Float[]  
[/code]


