https://foro.gambas-es.org/viewtopic.php?f=24&t=7988&p=48052#p48052
-----------------------------------
tercoIDE
Sabado, 25 Abril 2020, 14:20

Re: GambasCAD: Presentacion  Del Primer Alfa 0.0.1
-----------------------------------
Analisis de las clases de elementos. Cada "elemento" es una cosa que se dibuja en el grafico. En realidad se autodibuja.


[code linenumbers=false syntax=gambas]Public Const DrawingOrder As Integer = 1 
[/code]

Este numero es utilizado por el metodo interno que tiene los arrays de objetos [color=#0C00FF]_Compare()[/color] y sirve para ver que clase de elemento se dibuja antes que otra. Un numero alto hará que nunca sea tapada.

[code linenumbers=false syntax=gambas]Public Const PointsTotal As Integer = 2
[/code]
Este es el total de puntos del elemento. Por ejemplo un triangulo tendrá 3 vértices. A partir de la V0.0.2 se puede dejar en 0 para que el numero de vértices sea determinado por el usuario, por ejemplo una polilinea.

[code linenumbers=false syntax=gambas]Public Const PointsToDraw As Integer = 1
[/code]
Esto se usa durante la construcción y establece la mínima cantidad de puntos necesarios para que pueda dibujarse mientras muevo el mouse. Es ignorado una vez construido.

[code linenumbers=false syntax=gambas]Public Const OrtogonalIgnorado As Boolean = True
Public Const OrtogonalForzado As Boolean = False
[/code]
Es le indica al constructor clsElementBuilder en que condiciones recibo los puntos. Ortogonal significa que las lineas son verticales u horizontales.
[code linenumbers=false syntax=gambas]
Public Const HelperTrabajo As String = ("Insert a Slab")[/code]
Una ayuda al usuario que se escribe en la parte inferior izquierda del area de dibujo
[code linenumbers=false syntax=gambas]
Public Px As New Float[]
Public Pz As New Float[]
Public StringData as String       ' nuevo parametro de los elementos

Public Bx As New Float[]           ' Backup de los X
Public Bz As New Float[]           ' Backup de los Z
Public Psel As New Boolean[]        ' selected points
[/code]

Basicamente son los vertices de mi elemento, en metros. Pero tambien puede ser cualquier parametro que nos sirva. Tambien guardo puntos backup y boolean para ver si los han seleccionado

[code linenumbers=false syntax=gambas]' For future use in CAD implementation
Public Layer As Integer                      ' Capa o Layer
Public Block As Integer                     ' Para tener la posibilidade de juntar cosas en un block
Public _Color As Integer                     ' Para darle un color distinto al del layer
Public LineType As Integer                  
Public LineWidth As Integer                  
[/code]
Esto se implementara a posteriori para poder abrir DXF de otros CAD


[code linenumbers=false syntax=gambas]Public PointsDone As Integer = 0          ' La cantidad de puntos que el usuario marco para el elementoo actual, usado durante la construccion.
Public Selected As Boolean                   ' Determina si ha sido seleccionado para ser modificado por una Herramienta
Public ForDeletion As Boolean = True   ' Como hemos visto, a una clase le cuesta inmolarse. Usamos esta Flag para eliminarla en alguna purga.
Public DrawAble As Boolean = False     ' esta Flag es chequeada por el metodo .Draw para ver si se va a dibujar. Si la tengo que eliminar, o no tiene suficientes puntos marcados, no vale la pena dibujarla.
Public Finished As Boolean = False        ' se coloca en True cuando se llegue a completar la construccion. A veces el usuario se arrepiente en el camino con presionando Esc
Public Group As Integer = 0                     ' Pertenecemos a un grupo? Para uso futuro[/code]


