http://www.coin3d.org/
http://www.kongsberg.com/kogt/
Main Page
Classes
Files
File List
include
dime
Model.h
1
/**************************************************************************\
2
* Copyright (c) Kongsberg Oil & Gas Technologies AS
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions are
7
* met:
8
*
9
* Redistributions of source code must retain the above copyright notice,
10
* this list of conditions and the following disclaimer.
11
*
12
* Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in the
14
* documentation and/or other materials provided with the distribution.
15
*
16
* Neither the name of the copyright holder nor the names of its
17
* contributors may be used to endorse or promote products derived from
18
* this software without specific prior written permission.
19
*
20
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24
* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
\**************************************************************************/
32
33
#ifndef DIME_MODEL_H
34
#define DIME_MODEL_H
35
36
#include <dime/Basic.h>
37
#include <dime/util/Array.h>
38
#include <dime/util/Linear.h>
39
#include <dime/Base.h>
40
#include <dime/Layer.h>
41
#include <stdlib.h>
42
43
class
dimeInput
;
44
class
dimeOutput
;
45
class
dimeDict
;
46
class
dimeMemHandler
;
47
class
dimeSection
;
48
class
dimeEntitiesSection
;
49
class
dimeBlocksSection
;
50
class
dimeBlock
;
51
class
dimeEntity
;
52
class
dimeRecord
;
53
54
class
DIME_DLL_API
dimeModel
55
{
56
public
:
57
dimeModel
(
const
bool
usememhandler =
false
);
58
~
dimeModel
();
59
60
dimeModel
*copy()
const
;
61
62
bool
init();
63
bool
read(
dimeInput
*
const
in);
64
bool
write(
dimeOutput
*
const
out);
65
66
int
countRecords()
const
;
67
68
bool
traverseEntities(dimeCallback callback,
69
void
*userdata = NULL,
70
bool
traverseBlocksSection =
false
,
71
bool
explodeInserts =
true
,
72
bool
traversePolylineVertices =
false
);
73
74
const
char
*addReference(
const
char
*
const
name,
void
*
id
);
75
void
*findReference(
const
char
*
const
name)
const
;
76
const
char
*findRefStringPtr(
const
char
*
const
name)
const
;
77
void
removeReference(
const
char
*
const
name);
78
class
dimeMemHandler
*getMemHandler();
79
80
int
getNumLayers()
const
;
81
const
class
dimeLayer
*getLayer(
const
int
idx)
const
;
82
const
class
dimeLayer
*getLayer(
const
char
*
const
layername)
const
;
83
const
class
dimeLayer
*addLayer(
const
char
*
const
layername,
84
const
int16 colnum = 7,
85
const
int16 flags = 0);
86
87
const
char
* getDxfVersion()
const
;
88
89
static
const
char
*getVersionString();
90
static
void
getVersion(
int
&major,
int
&minor);
91
const
char
*addBlock(
const
char
*
const
blockname,
dimeBlock
*
const
block);
92
class
dimeBlock
*findBlock(
const
char
*
const
blockname);
93
94
class
dimeSection
*findSection(
const
char
*
const
sectionname);
95
const
class
dimeSection
*findSection(
const
char
*
const
sectionname)
const
;
96
97
int
getNumSections()
const
;
98
class
dimeSection
*getSection(
const
int
idx);
99
void
insertSection(
dimeSection
*
const
section,
const
int
idx = -1);
100
void
removeSection(
const
int
idx);
101
102
void
registerHandle(
const
int
handle);
103
void
registerHandle(
const
char
*
const
handle);
104
int
getUniqueHandle();
105
const
char
*getUniqueHandle(
char
*buf,
const
int
bufsize);
106
void
addEntity(
dimeEntity
*entity);
107
108
private
:
109
class
dimeDict
*refDict;
110
class
dimeDict
*layerDict;
111
class
dimeMemHandler
*memoryHandler;
112
dimeArray <class dimeSection*>
sections;
113
dimeArray <class dimeLayer*>
layers;
114
dimeArray <dimeRecord*>
headerComments;
115
116
int
largestHandle;
117
bool
usememhandler;
118
};
// class dimeModel
119
120
#endif // ! DIME_MODEL_H
121
Copyright © by
Kongsberg Oil & Gas Technologies
. All rights reserved.
Generated on Tue Nov 18 2014 14:22:40 for Dime by
Doxygen
1.8.1.2.