Identifizieren von Punkten |
Top Previous Next |
/* Identifizieren von Punkten */ /*============================*/ #include "moskito.h" /* ist alles drin */
/* SYSidentifyCoordinate liefert die Koordinaten der Stuetzpunkte, die der vom Anwender im Plan identifizierten Koordinate am nächsten liegen. SYSgetCoordinate liefert die gedrueckte Taste und die Koordinaten im Plan. Ueber die flags kann die Arbeitsweise der Routinen gesteuert werden. */ long int EXPORTENTRY Punkte_identifizieren(int argc, char* argv[], PROOT root) { PIOPIPES pipes = DBgetIOpipes(root); double xpos, ypos; /* Stuetzpktkoordinaten */ double ori_xpos, ori_ypos; /* echte Koordinaten */ T_PPOINT *points = NULL; ULONG flags1, flags2; int iRetValue; int iTaste = 0;
flags1 = SYS_COORD_MARK_IDENTIFIED /* Markierung setzen */ | SYS_COORD_MARKER /* eigene Markierung */ | SYS_COORD_RETURN_KEY /* gedrueckte Taste */ | SYS_COORD_RETURN_ORIGINAL_COORDS /* digit. Koordinaten */ | SYS_COORD_NO_MESSAGE_TEXT /* keine Meldungen */ ; IOwprintf(pipes, "SYSidentifyCoordinate:\n"); iRetValue = SYSidentifyCoordinate(root, &xpos, &ypos, points, flags1, DCgreenTriangle, &ori_xpos, &ori_ypos, &iTaste);
IOwprintf(pipes, "->Koordinate: %3.4f, %3.4f\n" "->Original: %3.4f, %3.4f\n" "->Taste: %d\n\n", xpos, ypos, ori_xpos, ori_ypos, iTaste);
flags2 = SYS_COORD_MARK_IDENTIFIED /* Markierung setzen */ | SYS_COORD_MARKER /* eigene Markierung */ | SYS_COORD_START_CLS /* auto. Einbinden */ | SYS_COORD_RETURN_ORIGINAL_COORDS /* digit. Koordinaten */ | SYS_COORD_NO_MESSAGE_TEXT /* keine Meldungen */ ; IOwprintf(pipes, "SYSgetCoordinate:\n"); iRetValue = SYSgetCoordinate(root, &iTaste, &xpos, &ypos, flags2, DCblueSquare, &ori_xpos, &ori_ypos); if (LINK_CON == iTaste) /* z.B. Abbruch des Benutzerdialogs */ ;
IOwprintf(pipes, "->Koordinate: %3.4f, %3.4f\n" "->Original: %3.4f, %3.4f\n" "->Taste: %d\n\n", xpos, ypos, ori_xpos, ori_ypos, iTaste); // ...
return iRetValue; } // Punkte_identifizieren /*---------------------------------------------------------------------------*/
|