00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include <string.h>
00025 #include <ctype.h>
00026 #include <stdio.h>
00027 #include <stdlib.h>
00028 #include "config.h"
00029 #include "CmdLabel.h"
00030 #include "utilities.h"
00031 #include "Inform.h"
00032
00033
00034
00035
00037 CmdLabelAddspring::CmdLabelAddspring(int themol, int theatom1, int theatom2,
00038 float thek) :
00039 Command(LABEL_ADDSPRING) {
00040
00041 molid = themol;
00042 atom1 = theatom1;
00043 atom2 = theatom2;
00044 k = thek;
00045 }
00046
00047 void CmdLabelAddspring::create_text() {
00048 *cmdText << "label addspring " << molid << " " << atom1 << " "
00049 << atom2 << " " << k << ends;
00050 }
00051
00053 CmdLabelAdd::CmdLabelAdd(const char *geomcat, int n, int *middata,
00054 int *atmdata)
00055 : Command(LABEL_ADD) {
00056
00057 sprintf(geomcatStr, "%s ", geomcat);
00058 num_geomitems = n;
00059 for (int j=0; j<n; j++) {
00060 char buf[50];
00061 sprintf(buf,"%d/%d",middata[j], atmdata[j]);
00062 geomitems[j] = stringdup(buf);
00063 }
00064 }
00065
00066 void CmdLabelAdd::create_text(void) {
00067 *cmdText << "label add " << geomcatStr;
00068 for (int i=0; i<num_geomitems; i++)
00069 *cmdText << geomitems[i] << " ";
00070 *cmdText << ends;
00071 }
00072
00073 CmdLabelAdd::~CmdLabelAdd(void) {
00074 for (int i=0; i<num_geomitems; i++)
00075 delete [] geomitems[i];
00076 }
00077
00078
00080 CmdLabelShow::CmdLabelShow(const char *geomcat, int n, int s) :
00081 Command(LABEL_SHOW), item(n), show(s) {
00082 sprintf(geomcatStr, "%s", geomcat);
00083 }
00084
00085 void CmdLabelShow::create_text(void) {
00086 *cmdText << "label " << (show ? "show" : "hide") << " " << geomcatStr;
00087 if(item >= 0)
00088 *cmdText << " " << item;
00089 *cmdText << ends;
00090 }
00091
00093 CmdLabelDelete::CmdLabelDelete(const char *geomcat, int n) :
00094 Command(LABEL_DELETE), item(n) {
00095 sprintf(geomcatStr, "%s", geomcat);
00096 }
00097
00098 void CmdLabelDelete::create_text(void) {
00099 *cmdText << "label delete " << geomcatStr;
00100 if (item >= 0)
00101 *cmdText << " " << item;
00102 *cmdText << ends;
00103 }
00104
00105 void CmdLabelTextSize::create_text() {
00106 *cmdText << "label textsize " << size << ends;
00107 }
00108
00109 void CmdLabelTextThickness::create_text() {
00110 *cmdText << "label textthickness " << thickness << ends;
00111 }
00112
00113 CmdLabelTextOffset::CmdLabelTextOffset(const char *name, int ind, float x, float y)
00114 : Command(LABEL_TEXTSIZE), n(ind), m_x(x), m_y(y) {
00115 nm = stringdup(name);
00116 }
00117 CmdLabelTextOffset::~CmdLabelTextOffset() {
00118 delete [] nm;
00119 }
00120
00121 void CmdLabelTextOffset::create_text() {
00122 *cmdText << "label textoffset " << (const char *)nm << " " << n << " { " << m_x << " " << m_y << " } " << ends;
00123 }
00124
00125 CmdLabelTextFormat::CmdLabelTextFormat(const char *name, int ind,
00126 const char *fmt)
00127 : Command(LABEL_TEXTSIZE), n(ind) {
00128 nm = stringdup(name);
00129 format = stringdup(fmt);
00130 }
00131 CmdLabelTextFormat::~CmdLabelTextFormat() {
00132 delete [] nm;
00133 delete [] format;
00134 }
00135
00136 void CmdLabelTextFormat::create_text() {
00137 *cmdText << "label textformat " << (const char *)nm << " " << n
00138 << " { " << format << " " << " } " << ends;
00139 }
00140