Radiografia De Una Entidad De GambasCAD


Subject: 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

captura_de_pantalla_de_2020_05_02_09_17_20

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

' 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[]

Last edited by tercoIDE on Tuesday, 05 May 2020, 02:41; edited 2 times in total
Profile PM  
Subject: Re: Radiografia De Una Entidad De GambasCADE

'' 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

Last edited by tercoIDE on Saturday, 02 May 2020, 13:13; edited 2 times in total
Profile PM  
Subject: Re: Radiografia De Una Entidad De GambasCADE
Las entidades generan un array de puntos de donde engancharnos. Se llaman POI[] por "puntos de interes" en ingles.

El array es analizado duarante el MouseMove y nos engancha al punto en cuestion, es el Snap de los CAD

Profile PM  

Page 1 of 1


  
You cannot post new topics
You cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events

   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.0929s (PHP: -13% SQL: 113%)
SQL queries: 24 - Debug Off - GZIP Enabled