⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 icadapi.h

📁 mtext,编辑器,支持潜入对象
💻 H
📖 第 1 页 / 共 3 页
字号:
}

// *** Structures
typedef struct //*** Windows metafile information.
	{
	HMETAFILE hMetaFile;
	RECT rectWmf;
	WORD inch;
	} ICADWMFINFO;

struct SDS_ucs_llist {
	sds_point org;
	sds_point xdir;
	sds_point ydir;
	char *name;			//must be freed independently of structure
	struct SDS_ucs_llist *next;
	struct SDS_ucs_llist *prev;
};

struct SDS_textdtext_globalpacket {
	sds_real  lastang;	 //*** Stores the last text angle entered.
	sds_real  txtheight; //*** Stores the last text height entered.
	sds_point nextpt;	 //*** Stores point for next piece of text UNLESS last
						 //		text was aligned or fitted.  Then it keeps text's point
	sds_point nextfitpt; //*** Stores point for next fitted piece of text  UNLESS last
						 //		text was aligned or fitted.  Then it keeps text's point
	sds_name  lastent;	 //*** Stores last ent made, so we can highlight it before making new ent
	char halign;		 //*** Stores last horiz alignment mode
	char valign;		 //*** Stores last vert alignment mode
	char isnextpt;		 //*** Flag indicating a valid next point is available.
};

struct SDS_mTextData {
	sds_point		ptInsertion,				//	Insertion point for block of text
					ptOppCorner;				//	Opposite corner point for block of text
	sds_real		rTextHeight,				//	Text Height		(*** I set the default as 1.0, but I don't know what it is supposed to be.	***)
					rRotAngle  ,				//	Rotation angle for block of text
					rBoxWidth  ;
	char			szTextStyle[IC_ACADBUF];	//	Text Style (default is STANDARD?)
	int				nAlignment,
					nDirection;
	CString			text;
	
 //gaowen NO2003-11-11-1[
	int             nLineSpaceStyle;
	sds_real		rLineSpaceFractor;
 //gaowen NO2003-11-11-1]
 //gaowen NO2003-11-17-15:19[
	int				nColor;
 //gaowen NO2003-11-17-15:19]
};

struct SDS_InternalCmdList {
	char* globalName;
	void* funcPtr;
	short cmdFlags; // See SDS_CMDxxx above
	char* localName;
	int   cmdIndex;
};
 
struct CNodeData
{
	sds_point m_cen;

	CNodeData(){};
	CNodeData( sds_point cen ){ ic_ptcpy(m_cen, cen); }
};

//4M Item:28->
class MEntNodesArray;

class MNodeData{
private:
	sds_point * points;
   MNodeData * next;
public:
	MNodeData();
	MNodeData(int NoPointsPerBlock);
   MNodeData(MNodeData const &MD);
   MNodeData& operator=(MNodeData const &MD);
   ~MNodeData();
   int Add(int index, sds_point p);
   int Get(int index, sds_point p)const;
   friend class MEntNodesArray;
};

class MEntNodesArray{
private:
   int NoPointsPerBlock;
   int NoPoints;
   int NoBlocks;
   MNodeData * pNodes;
   MNodeData * pLastNode;
public:
   MEntNodesArray();
   MEntNodesArray(int noPointsPerBlock);
   MEntNodesArray(MEntNodesArray const & n);
   MEntNodesArray &operator=(MEntNodesArray const &n);
   ~MEntNodesArray();
   void RemoveAll();
   void SetNoPointsPerBlock(int noPointsPerBlock);
   int GetCount()const{return NoPoints;}
   int Add(sds_point p);
   int Get(int index, sds_point p)const;
};

class CGripNodesArray{
private:
   MEntNodesArray GripNodes;
public:
   CGripNodesArray();
   ~CGripNodesArray();
   void Add(sds_point p);
   void Reset();
   int GetNoGrips()const;
   int GetSize()const{return GripNodes.GetCount();}
   int Get(int index, sds_point p){return GripNodes.Get(index,p);}
};
//<-4M Item:28
//4M Item:25->
// Replacement of SDS_NodeList with SDS_NodeList_new
/*
typedef CArray< CNodeData, CNodeData& > CEntNodesArray;

struct SDS_NodeListDef {
	sds_name ename;
	CEntNodesArray ptArray;
	SDS_NodeListDef *next;

	SDS_NodeListDef(){ ename[0] = ename[1] =0L; next = NULL; }
	SDS_NodeListDef( sds_name name ){ ic_encpy(ename, name); next = NULL; }
};

class SDS_NodeList
{
public:
	SDS_NodeListDef *m_beg, *m_end;

	SDS_NodeList(){ m_beg = m_end = NULL;}
	~SDS_NodeList();
	void add( sds_name ename, sds_point pt );
	void remove( sds_name ename );
	void removeAll();

	// Iterate through all points
	void begin();
	BOOL getPair( sds_name ename, sds_point pt );

protected:
	SDS_NodeListDef *find( sds_name ename, SDS_NodeListDef *&prev, SDS_NodeListDef *&next );

private:
	SDS_NodeListDef *m_cur;
	int m_ptIdx;
};
*/
#include "CSdsName.h"

class NodePoints{
private:
   MEntNodesArray Points;
public:
   NodePoints();
   NodePoints(sds_point pt);
   NodePoints(const NodePoints &n);
   ~NodePoints();
   NodePoints& operator=(const NodePoints &n);
   void Add(sds_point pt);
   int GetSize()const;
   void GetAt(int ind, sds_point pt){Points.Get(ind,pt);}
};


class SDS_NodeList_New
{
private:
	POSITION m_pos;
	CSdsName m_curhandle;
   int m_ptIdx;
   NodePoints  m_CurNodePoints;
   int m_NoPoints;
   CMap<CSdsName, CSdsName&, NodePoints, NodePoints&> EntitiesWithNodes;
public:
   SDS_NodeList_New();
	~SDS_NodeList_New();
	void add( sds_name handle, sds_point pt );
	void remove( sds_name handle );
	void removeAll();
   int GetNoEntities(){return EntitiesWithNodes.GetCount();}

	// Iterate through all points
	void begin();
	BOOL getPair( sds_name ename, sds_point pt );
   BOOL getEntityName( sds_name ename);

private:
   BOOL find( CSdsName handle, NodePoints &);
};
//<-4M Item:25


struct SDS_GrDrawStruct {
	sds_point pt1;
	sds_point pt2;
	int col;
	int hl;
};


struct SDS_CmdHist {
	char   *cmd;
	struct	SDS_CmdHist *prev;
	struct	SDS_CmdHist *next;
};


struct SDS_dragvars {
	int 		   mode;
	int 		   applyortho;
	int 		   enternub;
	int 		   gotnub;
	int 		   it;
	int 		   firstdrag;
	int 		   color;
	int 		   dashmode;
	int 		   cursor;
	int 		   breakout;
	bool		   numok;
	sds_matrix	   matx;
	sds_name	   nmSelSet;
	sds_point	   pt1, pt2, pt3, OrthoPt, LastDrag;
	sds_real	   ang;
	sds_real	   nub;
	sds_real	   scrht;
	sds_point	   xfa[4];
	sds_point	   extru;
	sds_real		 dang;
	double *elpt;
	db_handitem *elp;
	db_drawing *flp;
	struct resbuf *vects;
	int (*scnf) (sds_point pt, sds_matrix mt) ;
	struct resbuf *rblst;
};

struct SDS_BinChange {
	void *where;
	void *data;
	int   len;
	struct SDS_BinChange *next;
};

struct SDS_prevview {
	sds_point viewctr;		//center point in UCS coordinates (not necessarily at current elev)
	//NOTE:  If perspective view is active, viewctr will contain the TARGET instead of viewctr
	sds_real  viewsize;		//size of screen in projection plane, in dwg units
	sds_point viewdir;		//direction of view (TOWARD camera from either TARGET or VIEWCTR)
	int	  viewmode;			//mode used for viewing (Ortho, Perspective, Clipping, etc.)
	sds_real  twist;		//twist for this view
	sds_real  frontz;		//front clipping dist
	sds_real  backz;		//back clipping dist
	sds_real  prjelev;		//elevation used in projecting viewctr(or target) onto projection plane
	struct SDS_prevview *prev;
	struct SDS_prevview *next;
};

//BugZilla No. 78155; 27-05-2002 [
struct cmd_dimlastpt {

	/********************************************************************************
	 * Author:	Dmitry Gavrilov.
	 * Purpose:	Safe initialization constructor.
	 * Returns:	None.
	 ********************************************************************************/
	cmd_dimlastpt()
	{
		ename[0] = ename[1] = 0L;
		r50 = r52 = elev = pt10[0] = pt10[1] = pt10[2] = 0.0;
		DB_PTCPY(pt13, pt10);
		DB_PTCPY(pt14, pt10);
		DB_PTCPY(pt15, pt10);
		DB_PTCPY(pt16, pt10);
		DB_PTCPY(pt210, pt10);
		DB_PTCPY(startpt, pt10);
		DB_PTCPY(startptother, pt10);
		DB_PTCPY(vertex, pt10);
		DB_PTCPY(ucsaxis[0], pt10);
		DB_PTCPY(ucsaxis[1], pt10);
		DB_PTCPY(ucsaxis[2], pt10);
		DB_PTCPY(ucsorg, pt10);
		pt210[2] = ucsaxis[0][0] = ucsaxis[1][1] = ucsaxis[2][2] = 1.0;
	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -