Revision 542

View differences:

tags/org.gvsig.dwg-2.0.119/org.gvsig.dwg.app/org.gvsig.dwg.app.mainplugin/src/test/java/org/gvsig/dwg/fmap/dal/store/dwg/TestDWG2004.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
*
3
* Copyright (C) 2007-2008 Infrastructures and Transports Department
4
* of the Valencian Government (CIT)
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
* MA  02110-1301, USA.
20
*
21
*/
22

  
23
/*
24
* AUTHORS (In addition to CIT):
25
* 2009 IVER T.I   {{Task}}
26
*/
27

  
28
package org.gvsig.dwg.fmap.dal.store.dwg;
29

  
30
import java.io.File;
31

  
32
public class TestDWG2004 extends TestDWG {
33
	public static File file_prueba = new File(TestDWG.class.getResource(
34
			"data/V2004.dwg").getFile());
35
}
tags/org.gvsig.dwg-2.0.119/org.gvsig.dwg.app/org.gvsig.dwg.app.mainplugin/src/test/java/org/gvsig/dwg/fmap/dal/store/dwg/TestDWG.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22

  
23
/*
24
* AUTHORS (In addition to CIT):
25
* 2008 IVER T.I. S.A.   {{Task}}
26
*/
27

  
28
package org.gvsig.dwg.fmap.dal.store.dwg;
29

  
30
import java.io.File;
31

  
32
import org.gvsig.fmap.dal.DataStoreParameters;
33
import org.gvsig.fmap.dal.exception.DataException;
34
import org.gvsig.fmap.dal.feature.BaseTestFeatureStore;
35
import org.gvsig.fmap.dal.feature.FeatureStore;
36

  
37
public class TestDWG extends BaseTestFeatureStore {
38

  
39

  
40
	protected boolean testDXFInitialized = false;
41

  
42
	public static File file_prueba = new File(TestDWG.class.getResource(
43
			"data/V2000.dwg").getFile());
44

  
45
	/*
46
	 * (non-Javadoc)
47
	 *
48
	 * @see
49
	 * org.gvsig.fmap.dal.feature.BaseTestFeatureStore#getDefaultDataStoreParameters
50
	 * ()
51
	 */
52
	public DataStoreParameters getDefaultDataStoreParameters()
53
			throws DataException {
54
		DWGStoreParameters dwgParameters = null;
55

  
56
		dwgParameters = (DWGStoreParameters) dataManager
57
				.createStoreParameters(DWGStoreProvider.NAME);
58

  
59
		dwgParameters.setFile(file_prueba);
60
		dwgParameters.setCRS("EPSG:23030");
61
		return dwgParameters;
62
	}
63

  
64
	/*
65
	 * (non-Javadoc)
66
	 *
67
	 * @see org.gvsig.fmap.dal.feature.BaseTestFeatureStore#hasExplorer()
68
	 */
69
	public boolean hasExplorer() {
70
		// TODO Auto-generated method stub
71
		return false;
72
	}
73

  
74
	public boolean usesResources() {
75
		return true;
76
	}
77

  
78

  
79
	public void testLegendAndLabeling() throws Exception {
80
		DataStoreParameters params = getDefaultDataStoreParameters();
81
		FeatureStore store = (FeatureStore) dataManager.openStore(params
82
				.getDataStoreName(), params);
83

  
84
		assertNotNull(store.invokeDynMethod("getLegend", null));
85
		assertNotNull(store.invokeDynMethod("getLabeling", null));
86
		store.dispose();
87
	}
88
}
tags/org.gvsig.dwg-2.0.119/org.gvsig.dwg.app/org.gvsig.dwg.app.mainplugin/src/main/resources-plugin/config.xml
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<plugin-config>
3
	<libraries library-dir="lib">
4
	</libraries>
5
	<depends plugin-name="org.gvsig.app.mainplugin"/>
6
		<resourceBundle name="text"/>
7
	<extensions>
8
		<extension class-name="org.gvsig.dwg.DWGRegisterExtension"
9
			description="DWG Driver"
10
			active="true">
11
		</extension>
12

  
13
	</extensions>
14
</plugin-config>
tags/org.gvsig.dwg-2.0.119/org.gvsig.dwg.app/org.gvsig.dwg.app.mainplugin/src/main/assembly/gvsig-plugin-package.xml
1
<assembly>
2
  <id>gvsig-plugin-package</id>
3
  <formats>
4
    <format>zip</format>
5
  </formats>
6
  <baseDirectory>${project.artifactId}</baseDirectory>
7
  <includeBaseDirectory>true</includeBaseDirectory>
8
  <files>
9
    <file>
10
      <source>target/${project.artifactId}-${project.version}.jar</source>
11
      <outputDirectory>lib</outputDirectory>
12
    </file>
13
    <file>
14
      <source>target/package.info</source>
15
    </file>
16
  </files>
17

  
18
  <fileSets>
19
    <fileSet>
20
      <directory>src/main/resources-plugin</directory>
21
      <outputDirectory>.</outputDirectory>
22
    </fileSet>
23
  </fileSets>
24

  
25
  <dependencySets>
26
    <dependencySet>
27
      <useProjectArtifact>false</useProjectArtifact>
28
      <useTransitiveDependencies>false</useTransitiveDependencies>
29
      <outputDirectory>lib</outputDirectory>
30
      <includes>
31
        <include>org.gvsig:org.gvsig.dwg.provider.legend</include>
32
        <include>org.gvsig:org.gvsig.dwg.provider</include>
33
        <include>org.gvsig:org.gvsig.dwg.lib</include>
34
      </includes>
35
    </dependencySet>
36
  </dependencySets>
37

  
38
</assembly>
tags/org.gvsig.dwg-2.0.119/org.gvsig.dwg.app/org.gvsig.dwg.app.mainplugin/src/main/java/org/gvsig/dwg/DWGRegisterExtension.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.dwg;
23

  
24
import org.gvsig.andami.IconThemeHelper;
25
import org.gvsig.andami.plugins.Extension;
26
import org.gvsig.dwg.fmap.dal.store.dwg.DWGStoreProvider;
27
import org.gvsig.fmap.mapcontext.MapContextLocator;
28

  
29
/**
30
 * Dummy DWG extension, as all the registration happens in the
31
 * {@link DWGLibrary}.
32
 *
33
 * @author gvSIG Team
34
 */
35
public class DWGRegisterExtension extends Extension {
36

  
37
	public void execute(String actionCommand) {
38
		// Nothing to do
39
	}
40

  
41
	public void initialize() {
42
		IconThemeHelper.registerIcon("layer", "layer-icon-dwg", this);
43
	}
44

  
45
	public void postInitialize() {
46
		MapContextLocator.getMapContextManager().registerIconLayer(DWGStoreProvider.NAME, "layer-icon-dwg");
47
	}
48

  
49
	public boolean isEnabled() {
50
		// Nothing to do
51
		return false;
52
	}
53

  
54
	public boolean isVisible() {
55
		// Nothing to do
56
		return false;
57
	}
58

  
59
}
tags/org.gvsig.dwg-2.0.119/org.gvsig.dwg.app/org.gvsig.dwg.app.mainplugin/pom.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2

  
3
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4

  
5
  <modelVersion>4.0.0</modelVersion>
6
  <artifactId>org.gvsig.dwg.app.mainplugin</artifactId>
7
  <packaging>jar</packaging>
8
  <name>${project.artifactId}</name>
9
  <description>
10
DWG file format support (read-only)
11

  
12
Supported versions:
13
- v12
14
- v14
15
- v15
16
- v2004
17

  
18
  </description>
19
  <parent>
20
      <groupId>org.gvsig</groupId>
21
      <artifactId>org.gvsig.dwg.app</artifactId>
22
      <version>2.0.119</version>
23
  </parent>
24

  
25
  <dependencies>
26
    <dependency>
27
        <groupId>org.gvsig</groupId>
28
        <artifactId>org.gvsig.tools.lib</artifactId>
29
        <scope>compile</scope>
30
    </dependency>
31
    <dependency>
32
        <groupId>org.gvsig</groupId>
33
        <artifactId>org.gvsig.andami</artifactId>
34
        <scope>compile</scope>
35
    </dependency>
36
    <dependency>
37
        <groupId>org.gvsig</groupId>
38
        <artifactId>org.gvsig.dwg.provider</artifactId>
39
        <scope>compile</scope>
40
    </dependency>
41
    <dependency>
42
        <groupId>org.gvsig</groupId>
43
        <artifactId>org.gvsig.dwg.provider.legend</artifactId>
44
        <scope>compile</scope>
45
    </dependency>
46

  
47
    <dependency>
48
        <groupId>org.gvsig</groupId>
49
        <artifactId>org.gvsig.dwg.lib</artifactId>
50
        <scope>runtime</scope>
51
    </dependency>
52

  
53
    <!-- Tests -->
54

  
55
    <dependency>
56
      <groupId>org.gvsig</groupId>
57
      <artifactId>org.gvsig.fmap.dal.impl</artifactId>
58
      <type>test-jar</type>
59
      <scope>test</scope>
60
    </dependency>
61

  
62
    <dependency>
63
      <groupId>org.gvsig</groupId>
64
      <artifactId>org.gvsig.fmap.dal.impl</artifactId>
65
      <type>jar</type>
66
      <scope>test</scope>
67
    </dependency>
68

  
69
  </dependencies>
70

  
71
    <properties>
72
        <!-- Package info property values -->
73
        <!-- Default values in org.gvsig.desktop -->
74
        <gvsig.package.info.name>Formats: dwg file format support (read-only)</gvsig.package.info.name>
75
        <gvsig.package.info.state>testing</gvsig.package.info.state>
76
        <gvsig.package.info.official>true</gvsig.package.info.official>
77
        <gvsig.package.info.dependencies>required: org.gvsig.app.mainplugin -ge 2.1.0-A</gvsig.package.info.dependencies>
78
        <gvsig.package.info.categories>Formats,Vector</gvsig.package.info.categories>
79
        <gvsig.package.info.poolURL>https://devel.gvsig.org/download/projects/gvsig-dwg/pool</gvsig.package.info.poolURL>
80
    </properties>
81

  
82
  <build>
83
    <plugins>
84

  
85
      <plugin>
86
        <!-- Skip compilation tests -->
87
        <groupId>org.apache.maven.plugins</groupId>
88
        <artifactId>maven-compiler-plugin</artifactId>
89
        <executions>
90
          <execution>
91
            <id>default-testCompile</id>
92
            <phase>process-test-sources</phase>
93
            <goals>
94
              <goal>testCompile</goal>
95
            </goals>
96
            <configuration>
97
              <skip>true</skip>
98
            </configuration>
99
          </execution>
100
        </executions>
101
      </plugin>
102

  
103
      <plugin>
104
        <!-- Skip test execution -->
105
        <groupId>org.apache.maven.plugins</groupId>
106
        <artifactId>maven-surefire-plugin</artifactId>
107
        <configuration>
108
          <skipTests>true</skipTests>
109
        </configuration>
110
      </plugin>
111

  
112
    </plugins>
113
  </build>
114

  
115
</project>
116

  
tags/org.gvsig.dwg-2.0.119/org.gvsig.dwg.app/org.gvsig.dwg.app.mainplugin/buildNumber.properties
1
#Sat Apr 25 04:11:24 CEST 2020
2
buildNumber=2187
0 3

  
tags/org.gvsig.dwg-2.0.119/org.gvsig.dwg.app/pom.xml
1
<?xml version="1.0" encoding="UTF-8"?>
2

  
3
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4

  
5
  <modelVersion>4.0.0</modelVersion>
6
  <artifactId>org.gvsig.dwg.app</artifactId>
7
  <packaging>pom</packaging>
8
  <name>${project.artifactId}</name>
9
  <parent>
10
      <groupId>org.gvsig</groupId>
11
      <artifactId>org.gvsig.dwg</artifactId>
12
      <version>2.0.119</version>
13
  </parent>
14

  
15
  <modules>
16
    <module>org.gvsig.dwg.app.mainplugin</module>
17
  </modules>
18

  
19

  
20
</project>
tags/org.gvsig.dwg-2.0.119/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/v15/DwgVertexMeshReader15.java
1
/*
2
 * Created on 19-mar-2007
3
 *
4
 * gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
5
 *
6
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
7
 *
8
 * This program is free software; you can redistribute it and/or
9
 * modify it under the terms of the GNU General Public License
10
 * as published by the Free Software Foundation; either version 2
11
 * of the License, or (at your option) any later version.
12
 *
13
 * This program is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 * GNU General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU General Public License
19
 * along with this program; if not, write to the Free Software
20
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
21
 *
22
 * For more information, contact:
23
 *
24
 *  Generalitat Valenciana
25
 *   Conselleria d'Infraestructures i Transport
26
 *   Av. Blasco Ib??ez, 50
27
 *   46010 VALENCIA
28
 *   SPAIN
29
 *
30
 *      +34 963862235
31
 *   gvsig@gva.es
32
 *      www.gvsig.gva.es
33
 *
34
 *    or
35
 *
36
 *   IVER T.I. S.A
37
 *   Salamanca 50
38
 *   46005 Valencia
39
 *   Spain
40
 *
41
 *   +34 963163400
42
 *   dac@iver.es
43
 */
44
/* CVS MESSAGES:
45
*
46
* $Id: DwgVertexMeshReader15.java 28969 2009-05-25 13:23:12Z jmvivo $
47
* $Log$
48
* Revision 1.1.2.1  2007-03-21 19:49:16  azabala
49
* implementation of dwg 12, 13, 14.
50
*
51
* Revision 1.1  2007/03/20 19:57:08  azabala
52
* source code cleaning
53
*
54
*
55
*/
56
package org.gvsig.dwg.lib.readers.v15;
57

  
58
import java.util.List;
59

  
60
import org.gvsig.dwg.lib.CorruptedDwgEntityException;
61
import org.gvsig.dwg.lib.DwgObject;
62
import org.gvsig.dwg.lib.DwgUtil;
63
import org.gvsig.dwg.lib.objects.DwgVertexMesh;
64

  
65

  
66
public class DwgVertexMeshReader15 extends AbstractDwg15Reader {
67
	
68
    //similar to DwgVertex3D (and all derived vertices...
69
	//apply inheritance
70
	public void readSpecificObj(int[] data, int offset, DwgObject dwgObj)
71
			throws RuntimeException, CorruptedDwgEntityException {
72
		 if(! (dwgObj instanceof DwgVertexMesh))
73
		    	throw new RuntimeException("ArcReader 15 solo puede leer DwgVertexMesh");
74
		 DwgVertexMesh v = (DwgVertexMesh) dwgObj;
75
		 int bitPos = offset;
76
		 bitPos = headTailReader.readObjectHeader(data, bitPos, v);
77
		 
78
		 List val = DwgUtil.getRawChar(data, bitPos);
79
		 bitPos = ((Integer) val.get(0)).intValue();
80
		 int flag = ((Integer) val.get(1)).intValue();
81
		 v.setFlags(flag);
82
		 
83
		 val = DwgUtil.getBitDouble(data, bitPos);
84
		 bitPos = ((Integer) val.get(0)).intValue();
85
		 double x = ((Double) val.get(1)).doubleValue();
86
		 
87
		 val = DwgUtil.getBitDouble(data, bitPos);
88
		 bitPos = ((Integer) val.get(0)).intValue();
89
		 double y = ((Double) val.get(1)).doubleValue();
90
		 
91
		 val = DwgUtil.getBitDouble(data, bitPos);
92
		 bitPos = ((Integer) val.get(0)).intValue();
93
		 double z = ((Double) val.get(1)).doubleValue();
94
		 v.setPoint(new double[]{x, y, z});
95
		 
96
		 bitPos = headTailReader.readObjectTailer(data, bitPos, v);
97
	}
98

  
99
}
100

  
tags/org.gvsig.dwg-2.0.119/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/v15/DwgVertexPFaceFaceReader15.java
1
/*
2
 * Created on 19-mar-2007
3
 *
4
 * gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
5
 *
6
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
7
 *
8
 * This program is free software; you can redistribute it and/or
9
 * modify it under the terms of the GNU General Public License
10
 * as published by the Free Software Foundation; either version 2
11
 * of the License, or (at your option) any later version.
12
 *
13
 * This program is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 * GNU General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU General Public License
19
 * along with this program; if not, write to the Free Software
20
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
21
 *
22
 * For more information, contact:
23
 *
24
 *  Generalitat Valenciana
25
 *   Conselleria d'Infraestructures i Transport
26
 *   Av. Blasco Ib??ez, 50
27
 *   46010 VALENCIA
28
 *   SPAIN
29
 *
30
 *      +34 963862235
31
 *   gvsig@gva.es
32
 *      www.gvsig.gva.es
33
 *
34
 *    or
35
 *
36
 *   IVER T.I. S.A
37
 *   Salamanca 50
38
 *   46005 Valencia
39
 *   Spain
40
 *
41
 *   +34 963163400
42
 *   dac@iver.es
43
 */
44
/* CVS MESSAGES:
45
*
46
* $Id: DwgVertexPFaceFaceReader15.java 28969 2009-05-25 13:23:12Z jmvivo $
47
* $Log$
48
* Revision 1.1.2.1  2007-03-21 19:49:16  azabala
49
* implementation of dwg 12, 13, 14.
50
*
51
* Revision 1.1  2007/03/20 19:57:08  azabala
52
* source code cleaning
53
*
54
*
55
*/
56
package org.gvsig.dwg.lib.readers.v15;
57

  
58
import java.util.List;
59

  
60
import org.gvsig.dwg.lib.CorruptedDwgEntityException;
61
import org.gvsig.dwg.lib.DwgObject;
62
import org.gvsig.dwg.lib.DwgUtil;
63
import org.gvsig.dwg.lib.objects.DwgVertexPFaceFace;
64

  
65

  
66
public class DwgVertexPFaceFaceReader15 extends AbstractDwg15Reader {
67

  
68
	public void readSpecificObj(int[] data, int offset, DwgObject dwgObj)
69
			throws RuntimeException, CorruptedDwgEntityException {
70
		
71
		 if(! (dwgObj instanceof DwgVertexPFaceFace))
72
		    	throw new RuntimeException("ArcReader 15 solo puede leer DwgVertexPFaceFace");
73
		 DwgVertexPFaceFace v = (DwgVertexPFaceFace) dwgObj;
74
		 
75
		 int bitPos = offset;
76
		 
77
		 bitPos = headTailReader.readObjectHeader(data, offset, v);
78
		 
79
		 List val = DwgUtil.getBitShort(data, bitPos);
80
		 bitPos = ((Integer) val.get(0)).intValue();
81
		 int v1 = ((Integer) val.get(1)).intValue();
82
		 
83
		 val = DwgUtil.getBitShort(data, bitPos);
84
		 bitPos = ((Integer) val.get(0)).intValue();
85
		 int v2 = ((Integer) val.get(1)).intValue();
86
		 
87
		 val = DwgUtil.getBitShort(data, bitPos);
88
		 bitPos = ((Integer) val.get(0)).intValue();
89
		 int v3 = ((Integer) val.get(1)).intValue();
90
		 
91
		 val = DwgUtil.getBitShort(data, bitPos);
92
		 bitPos = ((Integer) val.get(0)).intValue();
93
		 int v4 = ((Integer) val.get(1)).intValue();
94
		 
95
		 v.setVerticesidx(new int[]{v1, v2, v3, v4});
96
		 
97
		 bitPos = headTailReader.readObjectTailer(data, bitPos, v);
98
	}
99

  
100
}
101

  
tags/org.gvsig.dwg-2.0.119/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/v15/DwgBlockControlReader15.java
1
/*
2
 * Created on 25-ene-2007 by azabala
3
 *
4
 */
5
package org.gvsig.dwg.lib.readers.v15;
6

  
7
import java.util.ArrayList;
8
import java.util.Vector;
9

  
10
import org.gvsig.dwg.lib.CorruptedDwgEntityException;
11
import org.gvsig.dwg.lib.DwgHandleReference;
12
import org.gvsig.dwg.lib.DwgObject;
13
import org.gvsig.dwg.lib.DwgUtil;
14
import org.gvsig.dwg.lib.objects.DwgBlockControl;
15

  
16

  
17
/**
18
 * @author azabala
19
 */
20
public class DwgBlockControlReader15 extends AbstractDwg15Reader{
21

  
22
	/* (non-Javadoc)
23
	 * @see com.iver.cit.jdwglib.dwg.readers.IDwgObjectReader#readSpecificObj(int[], int, com.iver.cit.jdwglib.dwg.DwgObject)
24
	 */
25
	public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) throws RuntimeException, CorruptedDwgEntityException{
26
		
27
		 if(! (dwgObj instanceof DwgBlockControl))
28
		    	throw new RuntimeException("ArcReader 15 solo puede leer DwgBlockControl");
29
		    DwgBlockControl blk = (DwgBlockControl) dwgObj;
30
			int bitPos = offset;
31
			ArrayList v = DwgUtil.getBitLong(data, bitPos);
32
			bitPos = ((Integer)v.get(0)).intValue();
33
			int numReactors = ((Integer)v.get(1)).intValue();
34
			blk.setNumReactors(numReactors);
35
			
36
			v = DwgUtil.getBitShort(data, bitPos);
37
			bitPos = ((Integer)v.get(0)).intValue();
38
			int enumeration = ((Integer)v.get(1)).intValue();
39
			
40
			DwgHandleReference hr = new DwgHandleReference();
41
			bitPos = hr.read(data, bitPos);
42
			blk.setNullHandle(hr);
43
			
44
			hr = new DwgHandleReference();
45
			bitPos = hr.read(data, bitPos);
46
			blk.setXDicObjHandle(hr);
47
		    
48
			if (enumeration>0) {
49
				Vector handles = new Vector();
50
				for (int i=0;i<enumeration;i++) {
51
					hr = new DwgHandleReference();
52
					bitPos = hr.read(data, bitPos);
53
					handles.add(hr);
54
				}
55
				blk.setCode2Handles(handles);
56
			}
57
			
58
			hr = new DwgHandleReference();
59
			bitPos = hr.read(data, bitPos);
60
			blk.setModelSpaceHandle(hr);
61

  
62
			hr = new DwgHandleReference();
63
			bitPos = hr.read(data, bitPos);
64
			blk.setPaperSpaceHandle(hr);
65
		}
66
}
tags/org.gvsig.dwg-2.0.119/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/v15/DwgEllipseReader15.java
1
/*
2
 * Created on 25-ene-2007 by azabala
3
 *
4
 */
5
package org.gvsig.dwg.lib.readers.v15;
6

  
7
import java.util.ArrayList;
8

  
9
import org.gvsig.dwg.lib.CorruptedDwgEntityException;
10
import org.gvsig.dwg.lib.DwgObject;
11
import org.gvsig.dwg.lib.DwgUtil;
12
import org.gvsig.dwg.lib.objects.DwgEllipse;
13

  
14

  
15
/**
16
 * @author alzabord
17
 *
18
 * TODO To change the template for this generated type comment go to
19
 * Window - Preferences - Java - Code Style - Code Templates
20
 */
21
public class DwgEllipseReader15 extends AbstractDwg15Reader{
22

  
23
	/* (non-Javadoc)
24
	 * @see com.iver.cit.jdwglib.dwg.readers.IDwgObjectReader#readSpecificObj(int[], int, com.iver.cit.jdwglib.dwg.DwgObject)
25
	 */
26
	public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) throws RuntimeException, CorruptedDwgEntityException {
27
		if(! (dwgObj instanceof DwgEllipse))
28
			throw new RuntimeException("ArcReader 15 solo puede leer DwgEllipse");
29
		DwgEllipse ell = (DwgEllipse) dwgObj;
30
		int bitPos = offset;
31
		bitPos = headTailReader.readObjectHeader(data, bitPos, ell);
32
		ArrayList v = DwgUtil.getBitDouble(data, bitPos);
33
		bitPos = ((Integer)v.get(0)).intValue();
34
		double x = ((Double)v.get(1)).doubleValue();
35
		v = DwgUtil.getBitDouble(data, bitPos);
36
		bitPos = ((Integer)v.get(0)).intValue();
37
		double y = ((Double)v.get(1)).doubleValue();
38
		v = DwgUtil.getBitDouble(data, bitPos);
39
		bitPos = ((Integer)v.get(0)).intValue();
40
		double z = ((Double)v.get(1)).doubleValue();
41
		double[] coord = new double[]{x, y, z};
42
		ell.setCenter(coord);
43
		v = DwgUtil.getBitDouble(data, bitPos);
44
		bitPos = ((Integer)v.get(0)).intValue();
45
		x = ((Double)v.get(1)).doubleValue();
46
		v = DwgUtil.getBitDouble(data, bitPos);
47
		bitPos = ((Integer)v.get(0)).intValue();
48
		y = ((Double)v.get(1)).doubleValue();
49
		v = DwgUtil.getBitDouble(data, bitPos);
50
		bitPos = ((Integer)v.get(0)).intValue();
51
		z = ((Double)v.get(1)).doubleValue();
52
		coord = new double[]{x, y, z};
53
		ell.setSemiMajorAxisVector(coord);
54
		v = DwgUtil.getBitDouble(data, bitPos);
55
		bitPos = ((Integer)v.get(0)).intValue();
56
		x = ((Double)v.get(1)).doubleValue();
57
		v = DwgUtil.getBitDouble(data, bitPos);
58
		bitPos = ((Integer)v.get(0)).intValue();
59
		y = ((Double)v.get(1)).doubleValue();
60
		v = DwgUtil.getBitDouble(data, bitPos);
61
		bitPos = ((Integer)v.get(0)).intValue();
62
		z = ((Double)v.get(1)).doubleValue();
63
		coord = new double[]{x, y, z};
64
		ell.setExtrusion(coord);
65
		v = DwgUtil.getBitDouble(data, bitPos);
66
		bitPos = ((Integer)v.get(0)).intValue();
67
		double val = ((Double)v.get(1)).doubleValue();
68
		ell.setAxisRatio(val);
69
		v = DwgUtil.getBitDouble(data, bitPos);
70
		bitPos = ((Integer)v.get(0)).intValue();
71
		val = ((Double)v.get(1)).doubleValue();
72
		ell.setInitAngle(val);
73
		v = DwgUtil.getBitDouble(data, bitPos);
74
		bitPos = ((Integer)v.get(0)).intValue();
75
		val = ((Double)v.get(1)).doubleValue();
76
		ell.setEndAngle(val);
77
		bitPos = headTailReader.readObjectTailer(data, bitPos, ell);
78
	}
79
}
tags/org.gvsig.dwg-2.0.119/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/v15/DwgEndBlkReader15.java
1
/*
2
 * Created on 25-ene-2007 by azabala
3
 *
4
 */
5
package org.gvsig.dwg.lib.readers.v15;
6

  
7
import org.gvsig.dwg.lib.CorruptedDwgEntityException;
8
import org.gvsig.dwg.lib.DwgObject;
9
import org.gvsig.dwg.lib.objects.DwgEndblk;
10

  
11

  
12
/**
13
 * @author alzabord
14
 *
15
 * TODO To change the template for this generated type comment go to
16
 * Window - Preferences - Java - Code Style - Code Templates
17
 */
18
public class DwgEndBlkReader15 extends AbstractDwg15Reader{
19

  
20
	/* (non-Javadoc)
21
	 * @see com.iver.cit.jdwglib.dwg.readers.IDwgObjectReader#readSpecificObj(int[], int, com.iver.cit.jdwglib.dwg.DwgObject)
22
	 */
23
	public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) throws RuntimeException, CorruptedDwgEntityException {
24
		if(! (dwgObj instanceof DwgEndblk))
25
			throw new RuntimeException("ArcReader 15 solo puede leer DwgEndBlk");
26
		DwgEndblk end = (DwgEndblk) dwgObj;
27
		int bitPos = offset;
28
		bitPos = headTailReader.readObjectHeader(data, bitPos, end);
29
		bitPos = headTailReader.readObjectTailer(data, bitPos, end);
30
	}
31
}
tags/org.gvsig.dwg-2.0.119/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/v15/DwgBlockHeaderReader15.java
1
/*
2
 * Created on 25-ene-2007 by azabala
3
 *
4
 */
5
package org.gvsig.dwg.lib.readers.v15;
6

  
7
import java.util.ArrayList;
8

  
9
import org.gvsig.dwg.lib.CorruptedDwgEntityException;
10
import org.gvsig.dwg.lib.DwgHandleReference;
11
import org.gvsig.dwg.lib.DwgObject;
12
import org.gvsig.dwg.lib.DwgUtil;
13
import org.gvsig.dwg.lib.objects.DwgBlockHeader;
14

  
15

  
16
/**
17
 * @author alzabord
18
 *
19
 * TODO To change the template for this generated type comment go to
20
 * Window - Preferences - Java - Code Style - Code Templates
21
 */
22
public class DwgBlockHeaderReader15 extends AbstractDwg15Reader{
23

  
24
	/* (non-Javadoc)
25
	 * @see com.iver.cit.jdwglib.dwg.readers.IDwgObjectReader#readSpecificObj(int[], int, com.iver.cit.jdwglib.dwg.DwgObject)
26
	 */
27
	public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) throws RuntimeException, CorruptedDwgEntityException {
28
		 if(! (dwgObj instanceof DwgBlockHeader))
29
		    	throw new RuntimeException("DwgBlockHeaderReader15 solo puede leer DwgBlockControl");
30
		DwgBlockHeader hdr = (DwgBlockHeader) dwgObj;
31
		int bitPos = offset;
32
		ArrayList v = DwgUtil.getBitLong(data, bitPos);
33
		bitPos = ((Integer)v.get(0)).intValue();
34
		int numReactors = ((Integer)v.get(1)).intValue();
35
		hdr.setNumReactors(numReactors);
36

  
37
		v = DwgUtil.getTextString(data, bitPos);
38
		bitPos = ((Integer)v.get(0)).intValue();
39
		String name = (String)v.get(1);
40
		hdr.setName(name);
41

  
42
		v = DwgUtil.testBit(data, bitPos);
43
		bitPos = ((Integer)v.get(0)).intValue();
44
		boolean flag = ((Boolean)v.get(1)).booleanValue();
45
		hdr.setFlag64(flag);
46

  
47
		v = DwgUtil.getBitShort(data, bitPos);
48
		bitPos = ((Integer)v.get(0)).intValue();
49
		int xrefplus1 = ((Integer)v.get(1)).intValue();
50
		hdr.setXRefPlus(xrefplus1);
51

  
52
		v = DwgUtil.testBit(data, bitPos);
53
		bitPos = ((Integer)v.get(0)).intValue();
54
		boolean xdep = ((Boolean)v.get(1)).booleanValue();
55
		hdr.setXdep(xdep);
56

  
57
		v = DwgUtil.testBit(data, bitPos);
58
		bitPos = ((Integer)v.get(0)).intValue();
59
		boolean anon = ((Boolean)v.get(1)).booleanValue();
60
		hdr.setAnonymous(anon);
61

  
62
		v = DwgUtil.testBit(data, bitPos);
63
		bitPos = ((Integer)v.get(0)).intValue();
64
		boolean hasatts = ((Boolean)v.get(1)).booleanValue();
65
		hdr.setHasAttrs(hasatts);
66

  
67
		v = DwgUtil.testBit(data, bitPos);
68
		bitPos = ((Integer)v.get(0)).intValue();
69
		boolean bxref = ((Boolean)v.get(1)).booleanValue();
70
		hdr.setBlkIsXRef(bxref);
71

  
72
		v = DwgUtil.testBit(data, bitPos);
73
		bitPos = ((Integer)v.get(0)).intValue();
74
		boolean xover = ((Boolean)v.get(1)).booleanValue();
75
		hdr.setXRefOverLaid(xover);
76

  
77
		v = DwgUtil.testBit(data, bitPos);
78
		bitPos = ((Integer)v.get(0)).intValue();
79
		boolean loaded = ((Boolean)v.get(1)).booleanValue();
80
		hdr.setLoaded(loaded);
81

  
82
		v = DwgUtil.getBitDouble(data, bitPos);
83
		bitPos = ((Integer)v.get(0)).intValue();
84
		double bx = ((Double)v.get(1)).doubleValue();
85

  
86
		v = DwgUtil.getBitDouble(data, bitPos);
87
		bitPos = ((Integer)v.get(0)).intValue();
88
		double by = ((Double)v.get(1)).doubleValue();
89

  
90
		v = DwgUtil.getBitDouble(data, bitPos);
91
		bitPos = ((Integer)v.get(0)).intValue();
92
		double bz = ((Double)v.get(1)).doubleValue();
93
		double[] coord = new double[]{bx, by, bz};
94
		hdr.setBasePoint(coord);
95

  
96
		v = DwgUtil.getTextString(data, bitPos);
97
		bitPos = ((Integer)v.get(0)).intValue();
98
		String pname = (String)v.get(1);
99
		hdr.setXRefPName(pname);
100
		int icount = 0;
101
		while (true) {
102
			v = DwgUtil.getRawChar(data, bitPos);
103
			bitPos = ((Integer)v.get(0)).intValue();
104
			int val = ((Integer)v.get(1)).intValue();
105
			if (val==0) {
106
				break;
107
			}
108
			icount++;
109
		}
110

  
111
		v = DwgUtil.getTextString(data, bitPos);
112
		bitPos = ((Integer)v.get(0)).intValue();
113
		String desc = (String)v.get(1);
114
		hdr.setBlockDescription(desc);
115
		v = DwgUtil.getBitLong(data, bitPos);
116
		bitPos = ((Integer)v.get(0)).intValue();
117
		int pdsize = ((Integer)v.get(1)).intValue();
118
		if (pdsize>0) {
119
			int count = pdsize + icount;
120
			//int pdata = ((Integer)DwgUtil.getBits(data, count, bitPos)).intValue();
121
			//previewData = pdata;
122
			bitPos = bitPos + count;
123
		}
124

  
125
		DwgHandleReference blkCtrlHdl = new DwgHandleReference();
126
		bitPos = blkCtrlHdl.read(data, bitPos);
127
		hdr.setBlockControlHandle(blkCtrlHdl);
128

  
129
		for (int i=0;i<numReactors;i++) {
130
			DwgHandleReference reactor = new DwgHandleReference();
131
			bitPos = reactor.read(data, bitPos);
132

  
133
		}
134

  
135
		DwgHandleReference xdicObjHdl = new DwgHandleReference();
136
		bitPos = xdicObjHdl.read(data, bitPos);
137
		hdr.setXDicObjHandle(xdicObjHdl);
138

  
139
		DwgHandleReference handle = new DwgHandleReference();
140
		bitPos = handle.read(data, bitPos);
141
		hdr.setNullHandle(handle);
142

  
143
		handle = new DwgHandleReference();
144
		bitPos = handle.read(data, bitPos);
145
		hdr.setBlockEntityHandle(handle);
146

  
147
		if ((!bxref) && (!xover)) {
148
			handle = new DwgHandleReference();
149
			bitPos = handle.read(data, bitPos);
150
			hdr.setFirstEntityHandle(handle);
151

  
152
			handle = new DwgHandleReference();
153
			bitPos = handle.read(data, bitPos);
154
			hdr.setLastEntityHandle(handle);
155
		}//si el bloque es una referencia externa, es un fichero entero
156
		//(no ninguna entidad del fichero actual)
157

  
158
		handle = new DwgHandleReference();
159
		bitPos = handle.read(data, bitPos);
160
		hdr.setEndBlkEntityHandle(handle);
161

  
162
		if(icount > 0){
163
			DwgHandleReference[] insertHandles = new
164
				DwgHandleReference[icount];
165
			for(int i = 0; i < icount; i++){
166
				insertHandles[i] = new DwgHandleReference();
167
				bitPos = insertHandles[i].read(data, bitPos);
168
			}
169
			hdr.setInsertHandles(insertHandles);
170
		}
171

  
172
		handle = new DwgHandleReference();
173
		bitPos = handle.read(data, bitPos);
174
		hdr.setLayoutHandle(handle);
175
	}
176
}
tags/org.gvsig.dwg-2.0.119/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/v15/DwgVertex2DReader15.java
1
/*
2
 * Created on 25-ene-2007 by azabala
3
 *
4
 */
5
package org.gvsig.dwg.lib.readers.v15;
6

  
7
import java.util.ArrayList;
8

  
9
import org.gvsig.dwg.lib.CorruptedDwgEntityException;
10
import org.gvsig.dwg.lib.DwgObject;
11
import org.gvsig.dwg.lib.DwgUtil;
12
import org.gvsig.dwg.lib.objects.DwgVertex2D;
13

  
14

  
15
/**
16
 * @author alzabord
17
 *
18
 * TODO To change the template for this generated type comment go to
19
 * Window - Preferences - Java - Code Style - Code Templates
20
 */
21
public class DwgVertex2DReader15 extends AbstractDwg15Reader{
22

  
23
	/* (non-Javadoc)
24
	 * @see com.iver.cit.jdwglib.dwg.readers.IDwgObjectReader#readSpecificObj(int[], int, com.iver.cit.jdwglib.dwg.DwgObject)
25
	 */
26
	public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) throws RuntimeException, CorruptedDwgEntityException {
27
		 if(! (dwgObj instanceof DwgVertex2D))
28
		    	throw new RuntimeException("ArcReader 15 solo puede leer DwgVertex2D");
29
		 DwgVertex2D ver = (DwgVertex2D) dwgObj;
30
		int bitPos = offset;
31
		bitPos = headTailReader.readObjectHeader(data, bitPos, ver);
32
		ArrayList v = DwgUtil.getRawChar(data, bitPos);
33
		bitPos = ((Integer)v.get(0)).intValue();
34
		int flags = ((Integer)v.get(1)).intValue();
35
		ver.setFlags(flags);
36
		v = DwgUtil.getBitDouble(data, bitPos);
37
		bitPos = ((Integer)v.get(0)).intValue();
38
		double x = ((Double)v.get(1)).doubleValue();
39
		v = DwgUtil.getBitDouble(data, bitPos);
40
		bitPos = ((Integer)v.get(0)).intValue();
41
		double y = ((Double)v.get(1)).doubleValue();
42
		v = DwgUtil.getBitDouble(data, bitPos);
43
		bitPos = ((Integer)v.get(0)).intValue();
44
		double z = ((Double)v.get(1)).doubleValue();
45
		ver.setPoint(new double[]{x, y, z});
46
		v = DwgUtil.getBitDouble(data, bitPos);
47
		bitPos = ((Integer)v.get(0)).intValue();
48
		double sw = ((Double)v.get(1)).doubleValue();
49
		double ew = 0.0;
50
		if (sw<0.0) {
51
			ew = Math.abs(sw);
52
			sw = ew;
53
		} else {
54
			v = DwgUtil.getBitDouble(data, bitPos);
55
			bitPos = ((Integer)v.get(0)).intValue();
56
			ew = ((Double)v.get(1)).doubleValue();
57
		}
58
		ver.setInitWidth(sw);
59
		ver.setEndWidth(ew);
60
		v = DwgUtil.getBitDouble(data, bitPos);
61
		bitPos = ((Integer)v.get(0)).intValue();
62
		double bulge = ((Double)v.get(1)).doubleValue();
63
		ver.setBulge(bulge);
64
		v = DwgUtil.getBitDouble(data, bitPos);
65
		bitPos = ((Integer)v.get(0)).intValue();
66
		double tandir = ((Double)v.get(1)).doubleValue();
67
		ver.setTangentDir(tandir);
68
		bitPos = headTailReader.readObjectTailer(data, bitPos, ver);
69
	}
70
}
tags/org.gvsig.dwg-2.0.119/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/v15/AbstractDwg15Reader.java
1
/*
2
 * Created on 25-ene-2007
3
 *
4
 * gvSIG. Sistema de Informaci?n Geogr?fica de la Generalitat Valenciana
5
 *
6
 * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
7
 *
8
 * This program is free software; you can redistribute it and/or
9
 * modify it under the terms of the GNU General Public License
10
 * as published by the Free Software Foundation; either version 2
11
 * of the License, or (at your option) any later version.
12
 *
13
 * This program is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 * GNU General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU General Public License
19
 * along with this program; if not, write to the Free Software
20
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307,USA.
21
 *
22
 * For more information, contact:
23
 *
24
 *  Generalitat Valenciana
25
 *   Conselleria d'Infraestructures i Transport
26
 *   Av. Blasco Ib??ez, 50
27
 *   46010 VALENCIA
28
 *   SPAIN
29
 *
30
 *      +34 963862235
31
 *   gvsig@gva.es
32
 *      www.gvsig.gva.es
33
 *
34
 *    or
35
 *
36
 *   IVER T.I. S.A
37
 *   Salamanca 50
38
 *   46005 Valencia
39
 *   Spain
40
 *
41
 *   +34 963163400
42
 *   dac@iver.es
43
 */
44
/* CVS MESSAGES:
45
*
46
* $Id: AbstractDwg15Reader.java 28969 2009-05-25 13:23:12Z jmvivo $
47
* $Log$
48
* Revision 1.1.2.2  2007-03-21 19:49:16  azabala
49
* implementation of dwg 12, 13, 14.
50
*
51
* Revision 1.1  2007/01/25 20:05:58  azabala
52
* start of implementation of specific versions' object readers
53
*
54
*
55
*/
56
package org.gvsig.dwg.lib.readers.v15;
57

  
58
import org.gvsig.dwg.lib.readers.DwgFileV15Reader;
59
import org.gvsig.dwg.lib.readers.IDwgFileReader;
60
import org.gvsig.dwg.lib.readers.IDwgObjectReader;
61

  
62
public abstract class AbstractDwg15Reader implements IDwgObjectReader{
63
	protected IDwgFileReader headTailReader;
64
	public void setFileReader(IDwgFileReader headTailReader) {
65
		if( ! (headTailReader instanceof DwgFileV15Reader))
66
			throw new RuntimeException("Tratando de leer entidad de DWG 15 (2000) con"+
67
					headTailReader.getClass().getName());
68
		this.headTailReader = headTailReader;
69
	}
70

  
71
}
72

  
tags/org.gvsig.dwg-2.0.119/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/v15/DwgVertex3DReader15.java
1
/*
2
 * Created on 25-ene-2007 by azabala
3
 *
4
 */
5
package org.gvsig.dwg.lib.readers.v15;
6

  
7
import java.util.ArrayList;
8

  
9
import org.gvsig.dwg.lib.CorruptedDwgEntityException;
10
import org.gvsig.dwg.lib.DwgObject;
11
import org.gvsig.dwg.lib.DwgUtil;
12
import org.gvsig.dwg.lib.objects.DwgVertex3D;
13

  
14

  
15
/**
16
 * @author alzabord
17
 *
18
 * TODO To change the template for this generated type comment go to
19
 * Window - Preferences - Java - Code Style - Code Templates
20
 */
21
public class DwgVertex3DReader15 extends AbstractDwg15Reader{
22

  
23
	/* (non-Javadoc)
24
	 * @see com.iver.cit.jdwglib.dwg.readers.IDwgObjectReader#readSpecificObj(int[], int, com.iver.cit.jdwglib.dwg.DwgObject)
25
	 */
26
	public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) throws RuntimeException, CorruptedDwgEntityException {
27
		 if(! (dwgObj instanceof DwgVertex3D))
28
		    	throw new RuntimeException("ArcReader 15 solo puede leer DwgVertex3D");
29
		 DwgVertex3D ver = (DwgVertex3D) dwgObj;
30
		int bitPos = offset;
31
		bitPos = headTailReader.readObjectHeader(data, bitPos, ver);
32
		ArrayList v = DwgUtil.getRawChar(data, bitPos);
33
		bitPos = ((Integer)v.get(0)).intValue();
34
		int flags = ((Integer)v.get(1)).intValue();
35
		ver.setFlags(flags);
36
		v = DwgUtil.getBitDouble(data, bitPos);
37
		bitPos = ((Integer)v.get(0)).intValue();
38
		double x = ((Double)v.get(1)).doubleValue();
39
		v = DwgUtil.getBitDouble(data, bitPos);
40
		bitPos = ((Integer)v.get(0)).intValue();
41
		double y = ((Double)v.get(1)).doubleValue();
42
		v = DwgUtil.getBitDouble(data, bitPos);
43
		bitPos = ((Integer)v.get(0)).intValue();
44
		double z = ((Double)v.get(1)).doubleValue();
45
		double[] coord = new double[]{x, y, z};
46
		ver.setPoint(coord);
47
		bitPos = headTailReader.readObjectTailer(data, bitPos, ver);
48
	}
49
}
tags/org.gvsig.dwg-2.0.119/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/v15/DwgInsertReader15.java
1
/*
2
 * Created on 25-ene-2007 by azabala
3
 *
4
 */
5
package org.gvsig.dwg.lib.readers.v15;
6

  
7
import java.util.ArrayList;
8

  
9
import org.gvsig.dwg.lib.CorruptedDwgEntityException;
10
import org.gvsig.dwg.lib.DwgHandleReference;
11
import org.gvsig.dwg.lib.DwgObject;
12
import org.gvsig.dwg.lib.DwgUtil;
13
import org.gvsig.dwg.lib.objects.DwgInsert;
14

  
15

  
16
/**
17
 * @author alzabord
18
 *
19
 * TODO To change the template for this generated type comment go to
20
 * Window - Preferences - Java - Code Style - Code Templates
21
 */
22
public class DwgInsertReader15 extends AbstractDwg15Reader{
23

  
24
	/* (non-Javadoc)
25
	 * @see com.iver.cit.jdwglib.dwg.readers.IDwgObjectReader#readSpecificObj(int[], int, com.iver.cit.jdwglib.dwg.DwgObject)
26
	 */
27
	public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) throws RuntimeException, CorruptedDwgEntityException {
28
		if(! (dwgObj instanceof DwgInsert))
29
			throw new RuntimeException("ArcReader 15 solo puede leer DwgInsert");
30
		DwgInsert ins = (DwgInsert) dwgObj;
31
		int bitPos = offset;
32
		bitPos = headTailReader.readObjectHeader(data, bitPos, ins);
33
		ArrayList v = DwgUtil.getBitDouble(data, bitPos);
34
		bitPos = ((Integer)v.get(0)).intValue();
35
		double x = ((Double)v.get(1)).doubleValue();
36
		v = DwgUtil.getBitDouble(data, bitPos);
37
		bitPos = ((Integer)v.get(0)).intValue();
38
		double y = ((Double)v.get(1)).doubleValue();
39
		v = DwgUtil.getBitDouble(data, bitPos);
40
		bitPos = ((Integer)v.get(0)).intValue();
41
		double z = ((Double)v.get(1)).doubleValue();
42
		double[] coord = new double[]{x, y, z};
43
		ins.setInsertionPoint(coord);
44
		int dflag = ((Integer)DwgUtil.getBits(data, 2, bitPos)).intValue();
45
		bitPos = bitPos + 2;
46
		if (dflag==0x0) {
47
			v = DwgUtil.getRawDouble(data, bitPos);
48
			bitPos = ((Integer)v.get(0)).intValue();
49
			x = ((Double)v.get(1)).doubleValue();
50
			v = DwgUtil.getDefaultDouble(data, bitPos, x);
51
			bitPos = ((Integer)v.get(0)).intValue();
52
			y = ((Double)v.get(1)).doubleValue();
53
			v = DwgUtil.getDefaultDouble(data, bitPos, x);
54
			bitPos = ((Integer)v.get(0)).intValue();
55
			z = ((Double)v.get(1)).doubleValue();
56
		} else if (dflag==0x1) {
57
			x = 1.0;
58
			v = DwgUtil.getDefaultDouble(data, bitPos, x);
59
			bitPos = ((Integer)v.get(0)).intValue();
60
			y = ((Double)v.get(1)).doubleValue();
61
			v = DwgUtil.getDefaultDouble(data, bitPos, x);
62
			bitPos = ((Integer)v.get(0)).intValue();
63
			z = ((Double)v.get(1)).doubleValue();
64
		} else if (dflag==0x2) {
65
			v = DwgUtil.getRawDouble(data, bitPos);
66
			bitPos = ((Integer)v.get(0)).intValue();
67
			x = ((Double)v.get(1)).doubleValue();
68
			z = x;
69
			y = z;
70
		} else {
71
			z = 1.0;
72
			y = z;
73
			x = y;
74
		}
75
		coord = new double[]{x, y, z};
76
		ins.setScale(coord);
77
		v = DwgUtil.getBitDouble(data, bitPos);
78
		bitPos = ((Integer)v.get(0)).intValue();
79
		double rot = ((Double)v.get(1)).doubleValue();
80
		ins.setRotation(rot);
81
		v = DwgUtil.getBitDouble(data, bitPos);
82
		bitPos = ((Integer)v.get(0)).intValue();
83
		x = ((Double)v.get(1)).doubleValue();
84
		v = DwgUtil.getBitDouble(data, bitPos);
85
		bitPos = ((Integer)v.get(0)).intValue();
86
		y = ((Double)v.get(1)).doubleValue();
87
		v = DwgUtil.getBitDouble(data, bitPos);
88
		bitPos = ((Integer)v.get(0)).intValue();
89
		z = ((Double)v.get(1)).doubleValue();
90
		coord = new double[]{x, y, z};
91
		ins.setExtrusion(coord);
92
		v = DwgUtil.testBit(data, bitPos);
93
		bitPos = ((Integer)v.get(0)).intValue();
94
		boolean hasattr = ((Boolean)v.get(1)).booleanValue();
95
		bitPos = headTailReader.readObjectTailer(data, bitPos, ins);
96
		
97
		DwgHandleReference hr = new DwgHandleReference();
98
		bitPos = hr.read(data, bitPos);
99
		ins.setBlockHeaderHandle(hr);
100
		
101
		if (hasattr) {
102
			
103
			hr = new DwgHandleReference();
104
			bitPos = hr.read(data, bitPos);
105
			ins.setFirstAttribHandle(hr);
106
			
107
			hr = new DwgHandleReference();
108
			bitPos = hr.read(data, bitPos);
109
			ins.setLastAttribHandle(hr);
110
			
111
			hr = new DwgHandleReference();
112
			bitPos = hr.read(data, bitPos);
113
			ins.setSeqendHandle(hr);
114
		}
115
	}
116

  
117
	
118

  
119
}
tags/org.gvsig.dwg-2.0.119/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/v15/DwgArcReader15.java
1
/*
2
 * Created on 25-ene-2007 by azabala
3
 *
4
 */
5
package org.gvsig.dwg.lib.readers.v15;
6

  
7
import java.util.ArrayList;
8

  
9
import org.gvsig.dwg.lib.CorruptedDwgEntityException;
10
import org.gvsig.dwg.lib.DwgObject;
11
import org.gvsig.dwg.lib.DwgUtil;
12
import org.gvsig.dwg.lib.objects.DwgArc;
13

  
14

  
15
/**
16
 * @author alzabord
17
 *
18
 * TODO To change the template for this generated type comment go to
19
 * Window - Preferences - Java - Code Style - Code Templates
20
 */
21
public class DwgArcReader15 extends AbstractDwg15Reader{
22
	/* (non-Javadoc)
23
	 * @see com.iver.cit.jdwglib.dwg.readers.IDwgObjectReader#readSpecificObj(int[], int, com.iver.cit.jdwglib.dwg.DwgObject)
24
	 */
25
	public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) throws RuntimeException, CorruptedDwgEntityException {
26
		    if(! (dwgObj instanceof DwgArc))
27
		    	throw new RuntimeException("ArcReader 15 solo puede leer DwgArc");
28
		    DwgArc arc = (DwgArc) dwgObj;
29
		    
30
			int bitPos = offset;
31
			bitPos = headTailReader.readObjectHeader(data, bitPos, arc);
32
			ArrayList v = DwgUtil.getBitDouble(data, bitPos);
33
			bitPos = ((Integer)v.get(0)).intValue();
34
			double x = ((Double)v.get(1)).doubleValue();
35
			v = DwgUtil.getBitDouble(data, bitPos);
36
			bitPos = ((Integer)v.get(0)).intValue();
37
			double y = ((Double)v.get(1)).doubleValue();
38
			v = DwgUtil.getBitDouble(data, bitPos);
39
			bitPos = ((Integer)v.get(0)).intValue();
40
			double z = ((Double)v.get(1)).doubleValue();
41
			double[] coord = new double[]{x, y, z};
42
			arc.setCenter(coord);
43
			v = DwgUtil.getBitDouble(data, bitPos);
44
			bitPos = ((Integer)v.get(0)).intValue();
45
			double val = ((Double)v.get(1)).doubleValue();
46
			arc.setRadius(val);
47
			v = DwgUtil.testBit(data, bitPos);
48
			bitPos = ((Integer)v.get(0)).intValue();
49
			boolean flag = ((Boolean)v.get(1)).booleanValue();
50
			if (flag) {
51
				val=0.0;
52
			} else {
53
				v = DwgUtil.getBitDouble(data, bitPos);
54
				bitPos = ((Integer)v.get(0)).intValue();
55
				val = ((Double)v.get(1)).doubleValue();
56
			}
57
			arc.setThickness(val);
58
			v = DwgUtil.testBit(data, bitPos);
59
			bitPos = ((Integer)v.get(0)).intValue();
60
			flag = ((Boolean)v.get(1)).booleanValue();
61
			if (flag) {
62
				 x = y = 0.0;
63
				 z = 1.0;
64
			} else {
65
				v = DwgUtil.getBitDouble(data, bitPos);
66
				bitPos = ((Integer)v.get(0)).intValue();
67
				x = ((Double)v.get(1)).doubleValue();
68
				v = DwgUtil.getBitDouble(data, bitPos);
69
				bitPos = ((Integer)v.get(0)).intValue();
70
				y = ((Double)v.get(1)).doubleValue();
71
				v = DwgUtil.getBitDouble(data, bitPos);
72
				bitPos = ((Integer)v.get(0)).intValue();
73
				z = ((Double)v.get(1)).doubleValue();
74
			}
75
			coord = new double[]{x, y, z};
76
			arc.setExtrusion(coord);
77
			v = DwgUtil.getBitDouble(data, bitPos);
78
			bitPos = ((Integer)v.get(0)).intValue();
79
			val = ((Double)v.get(1)).doubleValue();
80
			arc.setInitAngle(val);
81
			v = DwgUtil.getBitDouble(data, bitPos);
82
			bitPos = ((Integer)v.get(0)).intValue();
83
			val = ((Double)v.get(1)).doubleValue();
84
			arc.setEndAngle(val);
85
			bitPos = this.headTailReader.readObjectTailer(data, bitPos, arc);
86
		}
87
	
88

  
89
	
90
}
tags/org.gvsig.dwg-2.0.119/org.gvsig.dwg.lib/src/main/java/org/gvsig/dwg/lib/readers/v15/DwgDictionaryReader15.java
1
package org.gvsig.dwg.lib.readers.v15;
2

  
3
import java.util.ArrayList;
4

  
5
import org.gvsig.dwg.lib.DwgHandleReference;
6
import org.gvsig.dwg.lib.DwgObject;
7
import org.gvsig.dwg.lib.DwgUtil;
8
import org.gvsig.dwg.lib.objects.DwgDictionary;
9

  
10

  
11
public class DwgDictionaryReader15 extends AbstractDwg15Reader{
12

  
13
	public void readSpecificObj(int[] data, int offset, DwgObject dwgObj) {
14
		// TODO Auto-generated method stub
15
		if(! (dwgObj instanceof DwgDictionary))
16
			throw new RuntimeException("DictionaryReader15 solo puede leer DwgDictionary");
17
		DwgDictionary dict = (DwgDictionary) dwgObj;
18
		try {
19
			//System.out.println("LEYENDO UN DICCIONARIO");
20
			int bitPos = offset;
21
			ArrayList v = DwgUtil.getBitShort(data, bitPos);
22
			bitPos = ((Integer)v.get(0)).intValue();
23
			int numReactors = ((Integer)v.get(1)).intValue();
24
			dict.setNumReactors(numReactors);
25
			//System.out.println("numReactors="+numReactors);
26
			
27
			v = DwgUtil.getBitLong(data, bitPos);
28
			bitPos = ((Integer)v.get(0)).intValue();
29
			int numItems = ((Integer)v.get(1)).intValue();
30
			//System.out.println("numItems="+numItems);
31
			
32
			
33
			v = DwgUtil.getBitShort(data, bitPos);
34
			bitPos = ((Integer)v.get(0)).intValue();
35
			int cloningFlag = ((Integer)v.get(1)).intValue();
36
			dict.setCloningFlag(cloningFlag);
37
			//System.out.println("cloningFlag="+cloningFlag);
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff