mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-14 13:30:48 +03:00
Integration of OCCT 6.5.0 from SVN
This commit is contained in:
1
src/XSDRAW/FILES
Executable file
1
src/XSDRAW/FILES
Executable file
@@ -0,0 +1 @@
|
||||
XSDRAW_Commands.hxx
|
214
src/XSDRAW/XSDRAW.cdl
Executable file
214
src/XSDRAW/XSDRAW.cdl
Executable file
@@ -0,0 +1,214 @@
|
||||
-- File: XSDRAW.cdl
|
||||
-- Created: Tue Mar 14 17:48:24 1995
|
||||
-- Author: Christian CAILLET
|
||||
-- <cky@anion>
|
||||
---Copyright: Matra Datavision 1995
|
||||
|
||||
|
||||
package XSDRAW
|
||||
|
||||
---Purpose : Basic package to work functions of X-STEP (IFSelect & Co)
|
||||
-- under control of DRAW
|
||||
--
|
||||
-- Works with some "static" data : a SessionPilot (used to run)
|
||||
-- with its WorkSession and Model and TransferReader, a
|
||||
-- FinderProcess
|
||||
|
||||
uses TCollection, TColStd, TopTools,
|
||||
gp, Geom, Geom2d, TopoDS, MoniTool,
|
||||
Interface, Transfer, IFSelect, XSControl, Draw, SWDRAW
|
||||
|
||||
is
|
||||
|
||||
class Functions;
|
||||
---Purpose : Gathers general commands for XSDRAW : initialisation control,
|
||||
-- also commands to analyse the result of a transfer
|
||||
-- (it is an appendix made of user callable functions)
|
||||
--
|
||||
-- Loaded by LoadDraw
|
||||
|
||||
class Shape;
|
||||
---Purpose : Gathers commands which only apply to shapes/geometry, and are
|
||||
-- not concerned by XSTEP features for files
|
||||
-- This set of functions just enriches the standard DRAW set,
|
||||
-- with either useful but lacking basic functions, or complements
|
||||
-- used in transfer operations, or specific control functions
|
||||
-- Loaded by LoadDraw
|
||||
|
||||
class Vars;
|
||||
---Purpose : Takes variables to/from the DRAW session
|
||||
|
||||
--class ProgressIndicator;
|
||||
---Purpose : Implements ProgressIndicator for DRAW
|
||||
|
||||
-- Linking with DRAW function set
|
||||
|
||||
ChangeCommand (oldname,newname : CString);
|
||||
---Purpose : Changes the name under which a command of xstep is known by
|
||||
-- Draw. This allows to avoid collisions
|
||||
-- To be called before LoadDraw or any other xstep initialisation
|
||||
|
||||
RemoveCommand (oldname : CString);
|
||||
---Purpose : Removes a command from the interpretation list of Draw
|
||||
-- To be called before LoadDraw or any other xstep initialisation
|
||||
|
||||
LoadSession returns Boolean;
|
||||
---Purpose : Defines the basic context to work with a X-STEP Session :
|
||||
-- it performs the basic inits, also records the Controller
|
||||
-- If the Controller is not yet set, it must be set after
|
||||
-- (call to SetController)
|
||||
-- LoadSession is called by LoadDraw
|
||||
-- Returns True the first time, False if already called
|
||||
|
||||
LoadDraw (theCommands : in out Interpretor from Draw);
|
||||
---Purpose : Defines the context for using a X-STEP Session under DRAW
|
||||
-- Once the various INITs have been done, a call to LoadDraw
|
||||
-- records the defined commands for the X-STEP SessionPilot,
|
||||
-- into the DRAW interpretation list.
|
||||
-- "Set" commands are accessed under command xset
|
||||
-- SDS>xset name command ...
|
||||
-- Other commands can be accessed directly or under command xstep
|
||||
-- SDS>command ... and SDS>xstep command ... are equivalent
|
||||
--
|
||||
-- Only the command xinit is accessed directly only :
|
||||
-- SDS>xinit (from the already defined Controller)
|
||||
-- SDS>xinit iges (first defines the Controller as for "iges")
|
||||
--
|
||||
-- It also records the function to be called by DRAW (not
|
||||
-- declared because specific).
|
||||
-- And it defines the context variables, i.e. a WorkSession, then
|
||||
-- it calls SetController with the currently defined Controller
|
||||
-- Remark : at least, the standard commands are recorded
|
||||
--
|
||||
-- See also Controller : it is part of the Context, but it must
|
||||
-- be precised separately
|
||||
|
||||
Execute (command : CString; var : CString = "") returns Integer;
|
||||
---Purpose : Allows to execute a xstep-draw command from C++ program
|
||||
-- Fixed form : Execute("command args...");
|
||||
-- Form with a variable text part : add %s for the variable :
|
||||
-- Execute ("command args %s args..",var) [var is a CString]
|
||||
-- Returns the same value as returned by call from DRAW
|
||||
|
||||
Pilot returns mutable SessionPilot from IFSelect;
|
||||
---Purpose : Returns the SessionPilot (can be used for direct call)
|
||||
|
||||
Session returns mutable WorkSession from XSControl;
|
||||
---Purpose : Returns the WorkSession defined in AddDraw (through Pilot)
|
||||
-- It is from XSControl, it brings functionnalities for Transfers
|
||||
|
||||
SetController (control : Controller from XSControl);
|
||||
---Purpose : Defines a Controller for the command "xinit" and applies it
|
||||
-- (i.e. calls its method Customise)
|
||||
|
||||
Controller returns Controller from XSControl;
|
||||
---Purpose : Returns the Controller, a Null Handle if not yet defined
|
||||
|
||||
SetNorm (normname : CString; profile : CString = "") returns Boolean;
|
||||
---Purpose : Sets a norm by its name (controller recorded as <normname> )
|
||||
-- Returns True if done, False if this norm is unknown
|
||||
-- If <profile> is given, also sets the norm to <profile>
|
||||
-- (if <profile> is undefined for <normname>, it is ignored)
|
||||
|
||||
-- Additionnal access to XSTEP data
|
||||
|
||||
Protocol returns Protocol from Interface;
|
||||
---Purpose : Returns the actually defined Protocol
|
||||
|
||||
Model returns mutable InterfaceModel from Interface;
|
||||
---Purpose : Returns the Model of the Session (it is Session()->Model() )
|
||||
|
||||
SetModel (model : mutable InterfaceModel from Interface; file : CString = "");
|
||||
---Purpose : Sets a Model in session (it is Session()->SetModel(model) )
|
||||
-- If <file> is defined, SetLoadedFile is also done
|
||||
|
||||
NewModel returns InterfaceModel from Interface;
|
||||
---Purpose : Produces a new model (from the Controller), can be Null
|
||||
-- Does not set it in the session
|
||||
|
||||
Entity (num : Integer) returns Transient;
|
||||
---Purpose : Returns the entity n0 <num> of the Model of the Session
|
||||
-- (it is StartingEntity)
|
||||
-- Null Handle if <num> is not suitable
|
||||
|
||||
Number (ent : Transient) returns Integer;
|
||||
---Purpose : Returns the number of an entity in the Model (StartingNumber)
|
||||
-- 0 if <ent> unknown in the model, or null
|
||||
|
||||
SetTransferProcess (TP : mutable Transient);
|
||||
---Purpose : Sets a TransferProcess in order to analyse it (see Activator)
|
||||
-- It can be either a FinderProcess or a TransientProcess, in
|
||||
-- that case a new TransferReader is created on it
|
||||
|
||||
TransientProcess returns TransientProcess from Transfer;
|
||||
---Purpose : Returns the TransferProcess : TransientProcess detained by
|
||||
-- the TransferReader
|
||||
|
||||
FinderProcess returns FinderProcess from Transfer;
|
||||
---Purpose : Returns the FinderProcess, detained by the TransferWriter
|
||||
|
||||
|
||||
InitTransferReader (mode : Integer);
|
||||
---Purpose : Initialises a TransferReader, according to mode :
|
||||
-- 0 nullifies it, 1 clears it (not nullify)
|
||||
-- 2 sets it with TransientProcess & Model
|
||||
-- 3 idem plus roots of TransientProcess
|
||||
-- Remark : called with 0 at least at each SetModel/NewModel
|
||||
|
||||
TransferReader returns TransferReader from XSControl;
|
||||
---Purpose : Returns the current TransferReader, can be null
|
||||
-- It detains the TransientProcess
|
||||
|
||||
-- Some useful functions
|
||||
|
||||
|
||||
GetEntity (name : CString = "") returns Transient;
|
||||
---Purpose : Takes the name of an entity, either as argument, or (if <name>
|
||||
-- is empty) on keybord, and returns the entity
|
||||
-- name can be a label or a number (in alphanumeric), it is
|
||||
-- searched by NumberFromLabel from WorkSession.
|
||||
-- If <name> doesn't match en entity, a Null Handle is returned
|
||||
|
||||
GetEntityNumber (name : CString = "") returns Integer;
|
||||
---Purpose : Same as GetEntity, but returns the number in the model of the
|
||||
-- entity. Returns 0 for null handle
|
||||
|
||||
GetList (first : CString = ""; second : CString = "")
|
||||
returns HSequenceOfTransient from TColStd;
|
||||
---Purpose : Evaluates and returns a list of entity, from :
|
||||
-- keyboard if <first> and <second> are empty, see below
|
||||
-- first if second is empty : can be a number/label of an entity
|
||||
-- or the name of a selection to be evaluated (standard)
|
||||
-- first : name of a selection, evaluated from a list defined by
|
||||
-- second
|
||||
-- In case of failure, returns a Null Handle
|
||||
|
||||
FileAndVar (file, var, def : CString;
|
||||
resfile, resvar : out AsciiString from TCollection)
|
||||
returns Boolean;
|
||||
---Purpose : Analyses given file name and variable name, with a default
|
||||
-- name for variables. Returns resulting file name and variable
|
||||
-- name plus status "file to read"(True) or "already read"(False)
|
||||
-- In the latter case, empty resfile means no file available
|
||||
--
|
||||
-- If <file> is null or empty or equates ".", considers Session
|
||||
-- and returned status is False
|
||||
-- Else, returns resfile = file and status is True
|
||||
-- If <var> is neither null nor empty, resvar = var
|
||||
-- Else, the root part of <resfile> is considered, if defined
|
||||
-- Else, <def> is taken
|
||||
|
||||
MoreShapes (list : in out mutable HSequenceOfShape from TopTools;
|
||||
name : CString) returns Integer;
|
||||
---Purpose : Analyses a name as designating Shapes from DRAW variables or
|
||||
-- XSTEP transfer (last Transfer on Reading). <name> can be :
|
||||
-- "*" : all the root shapes produced by last Transfer (Read)
|
||||
-- i.e. considers roots of the TransientProcess
|
||||
-- a name : a name of a variable DRAW
|
||||
--
|
||||
-- Returns the count of designated Shapes. Their list is put in
|
||||
-- <list>. If <list> is null, it is firstly created. Then it is
|
||||
-- completed (Append without Clear) by the Shapes found
|
||||
-- Returns 0 if no Shape could be found
|
||||
|
||||
end XSDRAW;
|
260
src/XSDRAW/XSDRAW.cxx
Executable file
260
src/XSDRAW/XSDRAW.cxx
Executable file
@@ -0,0 +1,260 @@
|
||||
#include <XSDRAW.ixx>
|
||||
#include <Dico_DictionaryOfInteger.hxx>
|
||||
#include <TCollection_AsciiString.hxx>
|
||||
#include <TColStd_HSequenceOfAsciiString.hxx>
|
||||
#include <IFSelect_Functions.hxx>
|
||||
#include <IFSelect_SessionPilot.hxx>
|
||||
#include <SWDRAW.hxx>
|
||||
//#include <XSDRAW_Shape.hxx>
|
||||
#include <XSDRAW_Vars.hxx>
|
||||
#include <XSControl_Functions.hxx>
|
||||
#include <XSControl_FuncShape.hxx>
|
||||
#include <Draw_Appli.hxx>
|
||||
#include <XSControl.hxx>
|
||||
#include <XSControl_TransferWriter.hxx>
|
||||
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#include <TransferBRep.hxx>
|
||||
#include <DBRep.hxx>
|
||||
|
||||
#include <Interface_Macros.hxx>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <Message.hxx>
|
||||
#include <Message_Messenger.hxx>
|
||||
|
||||
static int deja = 0, dejald = 0;
|
||||
//unused variable
|
||||
//static int okxset = 0;
|
||||
|
||||
static Handle(Dico_DictionaryOfInteger) theolds;
|
||||
static Handle(TColStd_HSequenceOfAsciiString) thenews;
|
||||
|
||||
static Handle(IFSelect_SessionPilot) thepilot; // detient Session, Model
|
||||
|
||||
static Standard_Integer XSTEPDRAWRUN (Draw_Interpretor& , Standard_Integer argc, const char** argv)
|
||||
{
|
||||
TCollection_AsciiString mess;
|
||||
for (Standard_Integer i = 0; i < argc; i ++) {
|
||||
mess.AssignCat(argv[i]); mess.AssignCat(" ");
|
||||
}
|
||||
|
||||
IFSelect_ReturnStatus stat = thepilot->Execute (mess.ToCString());
|
||||
if (stat == IFSelect_RetError || stat == IFSelect_RetFail) return 1;
|
||||
else return 0;
|
||||
}
|
||||
|
||||
void XSDRAW::ChangeCommand
|
||||
(const Standard_CString oldname, const Standard_CString newname)
|
||||
{
|
||||
if (theolds.IsNull()) theolds = new Dico_DictionaryOfInteger;
|
||||
Standard_Integer num = 0;
|
||||
if (newname[0] != '\0') {
|
||||
if (thenews.IsNull()) thenews = new TColStd_HSequenceOfAsciiString();
|
||||
TCollection_AsciiString newstr(newname);
|
||||
thenews->Append(newstr);
|
||||
num = thenews->Length();
|
||||
}
|
||||
theolds->SetItem (oldname,num);
|
||||
}
|
||||
|
||||
void XSDRAW::RemoveCommand
|
||||
(const Standard_CString oldname)
|
||||
{
|
||||
ChangeCommand (oldname,"");
|
||||
}
|
||||
|
||||
Standard_Boolean XSDRAW::LoadSession ()
|
||||
{
|
||||
if (deja) return Standard_False;
|
||||
deja = 1;
|
||||
thepilot = new IFSelect_SessionPilot("XSTEP-DRAW>");
|
||||
Handle(XSControl_WorkSession) WS = new XSControl_WorkSession;
|
||||
WS->SetVars (new XSDRAW_Vars);
|
||||
thepilot->SetSession (WS);
|
||||
|
||||
IFSelect_Functions::Init();
|
||||
XSControl_Functions::Init();
|
||||
XSControl_FuncShape::Init();
|
||||
// XSDRAW_Shape::Init(); passe a present par theCommands
|
||||
return Standard_True;
|
||||
}
|
||||
|
||||
void XSDRAW::LoadDraw (Draw_Interpretor& theCommands)
|
||||
{
|
||||
if (dejald) return; dejald = 1;
|
||||
// XSDRAW_Shape::InitCommands (theCommands);
|
||||
// Pour tout faire d un coup : BRepTest & cie, SWDRAW & cie :
|
||||
SWDRAW::Init (theCommands);
|
||||
LoadSession();
|
||||
|
||||
//skl: we make remove commands "x" and "exit" in order to this commands are
|
||||
// performed not in IFSelect_SessionPilot but in standard Tcl interpretor
|
||||
XSDRAW::RemoveCommand("x");
|
||||
XSDRAW::RemoveCommand("exit");
|
||||
// if (!getenv("WBHOSTTOP")) XSDRAW::RemoveCommand("xsnew");
|
||||
Handle(TColStd_HSequenceOfAsciiString) list =
|
||||
IFSelect_Activator::Commands(0);
|
||||
TCollection_AsciiString com;
|
||||
Standard_Integer i, nb = list->Length();
|
||||
for (i = 1; i <= nb; i ++) {
|
||||
Handle(IFSelect_Activator) act;
|
||||
Standard_Integer nact, num = -1;
|
||||
char help[200];
|
||||
com = list->Value(i);
|
||||
if (!theolds.IsNull())
|
||||
if (theolds->HasItem(com.ToCString())) num = theolds->Item(com.ToCString());
|
||||
if (num == 0) continue;
|
||||
if (!IFSelect_Activator::Select(com.ToCString(),nact,act))
|
||||
sprintf (help,"type : xhelp %s for help",com.ToCString());
|
||||
else if (!act.IsNull()) strcpy(help,act->Help(nact));
|
||||
if (num < 0) theCommands.Add (com.ToCString(),help,XSTEPDRAWRUN,act->Group());
|
||||
else theCommands.Add (thenews->Value(num).ToCString(),help,XSTEPDRAWRUN,act->Group());
|
||||
}
|
||||
}
|
||||
|
||||
Standard_Integer XSDRAW::Execute
|
||||
(const Standard_CString command, const Standard_CString varname)
|
||||
{
|
||||
char mess[100];
|
||||
sprintf (mess,command,varname);
|
||||
#ifdef DEB
|
||||
IFSelect_ReturnStatus stat =
|
||||
#endif
|
||||
thepilot->Execute (mess);
|
||||
return 1; // stat ?
|
||||
}
|
||||
|
||||
Handle(IFSelect_SessionPilot) XSDRAW::Pilot ()
|
||||
{ return thepilot; }
|
||||
|
||||
Handle(XSControl_WorkSession) XSDRAW::Session ()
|
||||
{ return XSControl::Session(thepilot); }
|
||||
|
||||
void XSDRAW::SetController (const Handle(XSControl_Controller)& control)
|
||||
{
|
||||
if (thepilot.IsNull()) XSDRAW::LoadSession();
|
||||
if (control.IsNull()) cout<<"XSTEP Controller not defined"<<endl;
|
||||
else if (!Session().IsNull()) Session()->SetController (control);
|
||||
else cout<<"XSTEP Session badly or not defined"<<endl;
|
||||
}
|
||||
|
||||
|
||||
Handle(XSControl_Controller) XSDRAW::Controller ()
|
||||
{ return Session()->NormAdaptor(); }
|
||||
|
||||
Standard_Boolean XSDRAW::SetNorm
|
||||
(const Standard_CString norm, const Standard_CString profile)
|
||||
{
|
||||
Standard_Boolean stat = Session()->SelectNorm (norm,profile);
|
||||
if (stat) IFSelect_Activator::SetCurrentAlias (Session()->SelectedNorm(Standard_True));
|
||||
return stat;
|
||||
}
|
||||
|
||||
Handle(Interface_Protocol) XSDRAW::Protocol ()
|
||||
{ return thepilot->Session()->Protocol(); }
|
||||
|
||||
Handle(Interface_InterfaceModel) XSDRAW::Model ()
|
||||
{ return thepilot->Session()->Model(); }
|
||||
|
||||
void XSDRAW::SetModel
|
||||
(const Handle(Interface_InterfaceModel)& model, const Standard_CString file)
|
||||
{
|
||||
thepilot->Session()->SetModel(model);
|
||||
if (file && file[0] != '\0') thepilot->Session()->SetLoadedFile(file);
|
||||
}
|
||||
|
||||
Handle(Interface_InterfaceModel) XSDRAW::NewModel ()
|
||||
{ return Session()->NewModel(); }
|
||||
|
||||
Handle(Standard_Transient) XSDRAW::Entity (const Standard_Integer num)
|
||||
{ return thepilot->Session()->StartingEntity(num); }
|
||||
|
||||
Standard_Integer XSDRAW::Number (const Handle(Standard_Transient)& ent)
|
||||
{ return thepilot->Session()->StartingNumber(ent); }
|
||||
|
||||
void XSDRAW::SetTransferProcess (const Handle(Standard_Transient)& ATP)
|
||||
{
|
||||
DeclareAndCast(Transfer_FinderProcess,FP,ATP);
|
||||
DeclareAndCast(Transfer_TransientProcess,TP,ATP);
|
||||
|
||||
// Cas FinderProcess ==> TransferWriter
|
||||
if (!FP.IsNull()) Session()->SetMapWriter(FP);
|
||||
|
||||
// Cas TransientProcess ==> TransferReader
|
||||
if (!TP.IsNull()) {
|
||||
if (!TP->Model().IsNull() && TP->Model() != Session()->Model())
|
||||
Session()->SetModel (TP->Model());
|
||||
Session()->SetMapReader(TP);
|
||||
}
|
||||
}
|
||||
|
||||
Handle(Transfer_TransientProcess) XSDRAW::TransientProcess ()
|
||||
{ return Session()->TransferReader()->TransientProcess(); }
|
||||
|
||||
Handle(Transfer_FinderProcess) XSDRAW::FinderProcess ()
|
||||
{ return Session()->TransferWriter()->FinderProcess(); }
|
||||
|
||||
|
||||
void XSDRAW::InitTransferReader (const Standard_Integer mode)
|
||||
{
|
||||
// 0 nullify 1 clear
|
||||
// 2 init TR avec contenu TP (roots) 3 init TP avec contenu TR
|
||||
// 4 init avec model (debut scratch)
|
||||
Session()->InitTransferReader(mode);
|
||||
}
|
||||
|
||||
Handle(XSControl_TransferReader) XSDRAW::TransferReader ()
|
||||
{ return Session()->TransferReader(); }
|
||||
|
||||
|
||||
// ############ AUXILIAIRES #############
|
||||
|
||||
Handle(Standard_Transient) XSDRAW::GetEntity (const Standard_CString name)
|
||||
{ return IFSelect_Functions::GiveEntity (Session(),name); }
|
||||
|
||||
Standard_Integer XSDRAW::GetEntityNumber (const Standard_CString name)
|
||||
{ return IFSelect_Functions::GiveEntityNumber (Session(),name); }
|
||||
|
||||
|
||||
Handle(TColStd_HSequenceOfTransient) XSDRAW::GetList
|
||||
(const Standard_CString first, const Standard_CString second)
|
||||
{
|
||||
Handle(TColStd_HSequenceOfTransient) list;
|
||||
if (!first || first[0] == '\0') {
|
||||
char ligne[80]; ligne[0] = '\0'; char truc;
|
||||
// cin.clear(); cin.get (ligne,79,'\n');
|
||||
cin >> ligne; int ln = strlen(ligne);
|
||||
char *ff = &ligne[0], *ss = NULL;
|
||||
cin.get(truc); if (truc != '\n') { cin>>&ligne[ln+1]; ss = &ligne[ln+1]; }
|
||||
return XSDRAW::GetList (ff,ss);
|
||||
}
|
||||
// return IFSelect_Functions::GiveList (Session(),first,second);
|
||||
return IFSelect_Functions::GiveList (Session(),first,second);
|
||||
}
|
||||
|
||||
|
||||
Standard_Boolean XSDRAW::FileAndVar
|
||||
(const Standard_CString file, const Standard_CString var,
|
||||
const Standard_CString def,
|
||||
TCollection_AsciiString& resfile, TCollection_AsciiString& resvar)
|
||||
{ return XSControl_FuncShape::FileAndVar
|
||||
(XSDRAW::Session(),file,var,def,resfile,resvar); }
|
||||
|
||||
Standard_Integer XSDRAW::MoreShapes
|
||||
(Handle(TopTools_HSequenceOfShape)& list, const Standard_CString name)
|
||||
{ return XSControl_FuncShape::MoreShapes (XSDRAW::Session(),list,name); }
|
||||
|
||||
|
||||
// FONCTION POUR LE DEBUG
|
||||
|
||||
Standard_Integer XSDRAW_WHAT (const Handle_Standard_Transient& ent)
|
||||
{
|
||||
if (ent.IsNull()) { cout<<"(Null Handle)"<<endl; return 0; }
|
||||
Handle(Interface_InterfaceModel) model = XSDRAW::Model();
|
||||
if (model.IsNull()) { cout<<"(No model) Type:"<<ent->DynamicType()->Name()<<endl; return 0; }
|
||||
cout<<" Num/Id :";
|
||||
model->Print (ent, Message::DefaultMessenger(), 0);
|
||||
cout<<" -- Recorded Type:"<<model->TypeName (ent)<<endl;
|
||||
return model->Number(ent);
|
||||
}
|
12
src/XSDRAW/XSDRAW_Commands.hxx
Executable file
12
src/XSDRAW/XSDRAW_Commands.hxx
Executable file
@@ -0,0 +1,12 @@
|
||||
#include <TCollection_AsciiString.hxx>
|
||||
|
||||
static TCollection_AsciiString XSDRAW_CommandPart
|
||||
(Standard_Integer argc, const char** argv, const Standard_Integer argf)
|
||||
{
|
||||
TCollection_AsciiString res;
|
||||
for (Standard_Integer i = argf; i < argc; i ++) {
|
||||
if (i > argf) res.AssignCat(" ");
|
||||
res.AssignCat (argv[i]);
|
||||
}
|
||||
return res;
|
||||
}
|
28
src/XSDRAW/XSDRAW_Functions.cdl
Executable file
28
src/XSDRAW/XSDRAW_Functions.cdl
Executable file
@@ -0,0 +1,28 @@
|
||||
-- File: XSDRAW_Functions.cdl
|
||||
-- Created: Thu Mar 16 17:48:13 1995
|
||||
-- Author: Christian CAILLET
|
||||
-- <cky@anion>
|
||||
---Copyright: Matra Datavision 1995
|
||||
|
||||
|
||||
class Functions from XSDRAW
|
||||
|
||||
---Purpose : Defines additionnal commands for XSDRAW to :
|
||||
-- - control of initialisation (xinit, xnorm, newmodel)
|
||||
-- - analyse of the result of a transfer (recorded in a
|
||||
-- TransientProcess for Read, FinderProcess for Write) :
|
||||
-- statistics, various lists (roots,complete,abnormal), what
|
||||
-- about one specific entity, producing a model with the
|
||||
-- abnormal result
|
||||
--
|
||||
-- This appendix of XSDRAW is compiled separately to distinguish
|
||||
-- basic features from user callable forms
|
||||
|
||||
uses CString
|
||||
|
||||
is
|
||||
|
||||
Init (myclass);
|
||||
---Purpose : Defines and loads all basic functions for XSDRAW (as ActFunc)
|
||||
|
||||
end Functions;
|
7
src/XSDRAW/XSDRAW_Functions.cxx
Executable file
7
src/XSDRAW/XSDRAW_Functions.cxx
Executable file
@@ -0,0 +1,7 @@
|
||||
#include <XSDRAW_Functions.ixx>
|
||||
#include <XSControl_FuncShape.hxx>
|
||||
|
||||
void XSDRAW_Functions::Init ()
|
||||
{
|
||||
XSControl_FuncShape::Init ();
|
||||
}
|
23
src/XSDRAW/XSDRAW_Shape.cdl
Executable file
23
src/XSDRAW/XSDRAW_Shape.cdl
Executable file
@@ -0,0 +1,23 @@
|
||||
-- File: XSDRAW_Shape.cdl
|
||||
-- Created: Tue Apr 22 18:34:27 1997
|
||||
-- Author: Christian CAILLET
|
||||
-- <cky@heliox.paris1.matra-dtv.fr>
|
||||
---Copyright: Matra Datavision 1997
|
||||
|
||||
|
||||
class Shape from XSDRAW
|
||||
|
||||
---Purpose : Defines functions to control shapes (in way useful for XSTEP),
|
||||
-- additional features which should be basic, or call tools which
|
||||
-- are bound with transfer needs.
|
||||
-- But these functions work on shapes, geometry, nothing else
|
||||
-- (no file, no model, no entity)
|
||||
|
||||
uses CString, Interpretor from Draw
|
||||
|
||||
is
|
||||
|
||||
InitCommands (myclass; theCommands : in out Interpretor from Draw);
|
||||
---Purpose : Defines and loads all basic functions for XSDRAW on Shapes
|
||||
|
||||
end Shape;
|
10
src/XSDRAW/XSDRAW_Shape.cxx
Executable file
10
src/XSDRAW/XSDRAW_Shape.cxx
Executable file
@@ -0,0 +1,10 @@
|
||||
#include <XSDRAW_Shape.ixx>
|
||||
#include <SWDRAW_ShapeTool.hxx>
|
||||
|
||||
//unused variable
|
||||
//static int initactor = 0;
|
||||
|
||||
void XSDRAW_Shape::InitCommands (Draw_Interpretor& theCommands)
|
||||
{
|
||||
SWDRAW_ShapeTool::InitCommands (theCommands);
|
||||
}
|
49
src/XSDRAW/XSDRAW_Vars.cdl
Executable file
49
src/XSDRAW/XSDRAW_Vars.cdl
Executable file
@@ -0,0 +1,49 @@
|
||||
-- File: XSDRAW_Vars.cdl
|
||||
-- Created: Wed Jul 22 18:27:38 1998
|
||||
-- Author: Christian CAILLET
|
||||
-- <cky@heliox.paris1.matra-dtv.fr>
|
||||
---Copyright: Matra Datavision 1998
|
||||
|
||||
|
||||
|
||||
|
||||
class Vars from XSDRAW inherits Vars from XSControl
|
||||
|
||||
---Purpose : Vars for DRAW session (i.e. DBRep and DrawTrSurf)
|
||||
|
||||
uses CString, Transient,
|
||||
Pnt from gp, Pnt2d from gp,
|
||||
Geometry from Geom, Curve from Geom, Curve from Geom2d, Surface from Geom,
|
||||
Shape from TopoDS
|
||||
|
||||
is
|
||||
|
||||
Create returns mutable Vars from XSDRAW;
|
||||
|
||||
Set (me : mutable; name : CString; val : Transient) is redefined;
|
||||
|
||||
-- Get (me; name : CString) returns Transient is redefined; unused here
|
||||
|
||||
|
||||
GetGeom (me; name : in out CString) returns Geometry is redefined;
|
||||
|
||||
GetCurve2d (me; name : in out CString) returns Curve from Geom2d is redefined;
|
||||
|
||||
GetCurve (me; name : in out CString) returns Curve from Geom is redefined;
|
||||
|
||||
GetSurface (me; name : in out CString) returns Surface from Geom is redefined;
|
||||
|
||||
SetPoint (me : mutable; name : CString; val : Pnt from gp) is redefined;
|
||||
|
||||
SetPoint2d (me : mutable; name : CString; val : Pnt2d from gp) is redefined;
|
||||
|
||||
GetPoint (me; name : in out CString; pnt : out Pnt from gp) returns Boolean is redefined;
|
||||
|
||||
GetPoint2d (me; name : in out CString; pnt : out Pnt2d from gp) returns Boolean is redefined;
|
||||
|
||||
|
||||
SetShape (me : mutable; name : CString; val : Shape from TopoDS) is redefined;
|
||||
|
||||
GetShape (me; name : in out CString) returns Shape from TopoDS is redefined;
|
||||
|
||||
end Vars;
|
96
src/XSDRAW/XSDRAW_Vars.cxx
Executable file
96
src/XSDRAW/XSDRAW_Vars.cxx
Executable file
@@ -0,0 +1,96 @@
|
||||
#include <XSDRAW_Vars.ixx>
|
||||
#include <Geom_Geometry.hxx>
|
||||
#include <Geom2d_Curve.hxx>
|
||||
|
||||
#include <DrawTrSurf.hxx>
|
||||
#include <DBRep.hxx>
|
||||
|
||||
#include <Interface_Macros.hxx>
|
||||
|
||||
|
||||
|
||||
XSDRAW_Vars::XSDRAW_Vars () { }
|
||||
|
||||
void XSDRAW_Vars::Set
|
||||
(const Standard_CString name,
|
||||
const Handle(Standard_Transient)& val)
|
||||
{
|
||||
//char* nam = name;
|
||||
// selon type
|
||||
DeclareAndCast(Geom_Geometry,geom,val);
|
||||
if (!geom.IsNull()) {
|
||||
DrawTrSurf::Set(name,geom);
|
||||
return;
|
||||
}
|
||||
DeclareAndCast(Geom2d_Curve,g2d,val);
|
||||
if (!g2d.IsNull()) {
|
||||
DrawTrSurf::Set(name,geom);
|
||||
return;
|
||||
}
|
||||
// ??
|
||||
}
|
||||
|
||||
/*
|
||||
Handle(Standard_Transient) XSDRAW_Vars::Get (const Standard_CString name) const
|
||||
{
|
||||
Handle(Standard_Transient) val;
|
||||
if (!thevars->GetItem (name,val)) val.Nullify();
|
||||
return val;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
Handle(Geom_Geometry) XSDRAW_Vars::GetGeom (Standard_CString& name) const
|
||||
{ //char* nam = name;
|
||||
return DrawTrSurf::Get(name);
|
||||
}
|
||||
|
||||
Handle(Geom2d_Curve) XSDRAW_Vars::GetCurve2d (Standard_CString& name) const
|
||||
{ //char* nam = name;
|
||||
return DrawTrSurf::GetCurve2d(name);
|
||||
}
|
||||
|
||||
Handle(Geom_Curve) XSDRAW_Vars::GetCurve (Standard_CString& name) const
|
||||
{ //char* nam = name;
|
||||
return DrawTrSurf::GetCurve(name);
|
||||
}
|
||||
|
||||
Handle(Geom_Surface) XSDRAW_Vars::GetSurface (Standard_CString& name) const
|
||||
{ //char* nam = name;
|
||||
return DrawTrSurf::GetSurface(name);
|
||||
}
|
||||
|
||||
|
||||
void XSDRAW_Vars::SetPoint (const Standard_CString name, const gp_Pnt& val)
|
||||
{
|
||||
//char* nam = name;
|
||||
DrawTrSurf::Set (name, val);
|
||||
}
|
||||
|
||||
Standard_Boolean XSDRAW_Vars::GetPoint (Standard_CString& name, gp_Pnt& pnt) const
|
||||
{ //char* nam = name;
|
||||
return DrawTrSurf::GetPoint (name,pnt); }
|
||||
|
||||
|
||||
void XSDRAW_Vars::SetPoint2d (const Standard_CString name, const gp_Pnt2d& val)
|
||||
{
|
||||
//char* nam = name;
|
||||
DrawTrSurf::Set (name, val);
|
||||
}
|
||||
|
||||
Standard_Boolean XSDRAW_Vars::GetPoint2d (Standard_CString& name, gp_Pnt2d& pnt) const
|
||||
{
|
||||
//char* nam = name;
|
||||
return DrawTrSurf::GetPoint2d (name,pnt); }
|
||||
|
||||
|
||||
void XSDRAW_Vars::SetShape (const Standard_CString name, const TopoDS_Shape& val)
|
||||
{
|
||||
DBRep::Set (name, val);
|
||||
}
|
||||
|
||||
TopoDS_Shape XSDRAW_Vars::GetShape (Standard_CString& name) const
|
||||
{
|
||||
//char* nam = name;
|
||||
return DBRep::Get (name);
|
||||
}
|
Reference in New Issue
Block a user