<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Optimization of placement in the tasks of rapid prototyping and manufacturing of volumetric parts based on additive technologies</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>M A Verkhoturov</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>G N Verkhoturova</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>R R Yagudin</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>K V Danilov</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>R R Karimov</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>N V Kondratyeva</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>S S Valeev</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Sochi State University</institution>
          ,
          <addr-line>Politekhnicheskaya Str. 7, Sochi, 354008</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Ufa State Aviation Technical University</institution>
          ,
          <addr-line>K. Marx Str. 12, Ufa, 450008</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The problem of optimizing the life cycle of complex three-dimensional objects in small-scale production is considered. Additive technologies and optimization algorithms for the placement of three-dimensional objects are considered as technologies to solve this problem. Using the multilevel synthesis method can significantly reduce the time for prototyping new products. It should be noted that since several independent parts can be manufactured at the same time, this problem belongs to the class of optimization geometric modelling problems, namely, the problem of three-dimensional irregular placement. An algorithmic solution is proposed for the most complex task - placing 3D objects in a container. The results of the analysis of the effectiveness of the proposed algorithms are discussed.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>An analysis of the stages of the life cycle of complex products in various industries shows that many
of them are associated with the solution of optimization problems of placement. Finding the optimal or
close solution allows you to significantly reduce the consumption of various resources and lower the
cost of production. Such tasks are important from the point of view of saving resources, but difficult to
make decisions.</p>
      <p>On the other hand, the advent of additive technologies and their application for rapid prototyping
and manufacturing of volumetric parts made a real revolution in high-tech industries, which are
characterized by single or small-scale production: nuclear, aerospace, aviation, instrumentation, etc.</p>
      <p>
        The use of layered synthesis technologies has led to the emergence of new methods for producing
synthesis models and synthesis forms, which made it possible to drastically reduce the time to create
new products [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. The implementation of such technologies leads to the need to solve the problem of
irregular optimization placement of three-dimensional objects in those cases when many independent
parts can be manufactured in one cycle of the corresponding installation, which is advisable from the
point of view of saving time, energy and other resources. In modern manufacturing processes,
accuracy is always limited by material processing devices that are digital (discrete), therefore, this
article discusses the presentation of parts in a discrete-logical representation. One of the common
formats for storing 3D objects of arbitrary shape is STL. This is a format for storing three-dimensional
models of objects for use in rapid prototyping technologies, usually by stereolithography, in which
information about the object is a list of triangular faces that describe its surface. The voxel-based
algorithms approach proposed by the authors in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] is considered in detail.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. Statement of the problem</title>
      <sec id="sec-2-1">
        <title>Irregular placement of 3D objects consists in the following mathematical problem.</title>
        <p>There is a set of three-dimensional objects T = {T1, T2, …, Tn}, i = 1, n presented in STL format,
where Ti = {T1, T2, …, Tm} is an array of triangles that represent the figure.</p>
        <p>Each triangle is represented in the form Tri (A, B, C), where A, B, C are the vertices of the triangle
with coordinates (x, y, z).</p>
        <p>The packing area R is a three-dimensional figure in the form of a rectangular parallelepiped R = {L,</p>
      </sec>
      <sec id="sec-2-2">
        <title>W, H}, where L (length) and W (width) are constants, and H (height) is a variable. Packaging is a set of object placement parameters that satisfies the following conditions:</title>
        <p>Ti  T , Tj  T , Ti  Tj = , i = 1, n, j = 1, n, i  j,



 Ti  T , Ti  R = Ti , i = 1, n,
i.e., no two objects intersect each other, and all objects are located inside the placement area R.</p>
        <p>It is required for objects Ti , i = 1, n to find a package with such a set of placement parameters U so
that the density of packed objects in the placement area R is maximum
(1)
 (T (U )) =</p>
        <p>→ max,
n V (Ti (U ))
i=1</p>
        <p>
          V (R)
where V(R) = L*W*H is the volume R, which depends on the height of the packing area H, and V(Ti) is
the volume of the object Ti.
3. The basic principles of constructing dense packaging based on a discrete-logical
representation of information (voxel)
An analysis of the methods for solving this problem allows us to draw the following conclusion: in the
process of development, these methods underwent the following chain of changes in the operations on
which they are built: “floating-point operations” [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] – “integer arithmetic” – “logical operations” [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ].
        </p>
        <p>The peculiarity of using the last of the above is that only logical operations with “0” and “1” are
needed to determine the non-intersection of geometric objects.</p>
        <p>The main idea of this approach is to simulate the dense motion of objects, i.e. building No-Fit</p>
      </sec>
      <sec id="sec-2-3">
        <title>Polyhedron (NFP) [3] in computer memory. Namely, the actions corresponding to the basic operations: shift, determination of the direction of movement, determination of intersections and others, are carried out on the basis of the discretelogical structure of RAM.</title>
        <p>
          Various implementation options are possible based on a discrete-logical representation of
information (voxel) and chain coding [
          <xref ref-type="bibr" rid="ref10 ref11 ref12 ref2 ref7 ref8 ref9">2, 7-12</xref>
          ].
        </p>
        <p>Each shape Tk consists of a starting point P0 and a vector Pathk = {V1,...,Vm},i = 1, m describing the
surface of the shape. The nodes in the vector are stored as</p>
        <sec id="sec-2-3-1">
          <title>Vi (N, Nprev, direct),</title>
          <p>where
• N is the number of the voxel, determining its place in the vector,
• Nprev is the reference to the number of the parent voxel from which the voxel is built,
• direct is the direction in which the voxel is located relative to the parent.</p>
          <p>
            Further details of the approach presented earlier in [
            <xref ref-type="bibr" rid="ref2">2</xref>
            ] are considered.
4. Description of object placement algorithms using the NFP construction method based on a
discrete-logical representation of information and chain coding (DLPI and CC)
Let a set of objects T = {T1, T2, …, Tn}, i = 1, n be given, each of which is represented as a surface
described by a set of triangles.
          </p>
        </sec>
      </sec>
      <sec id="sec-2-4">
        <title>Pretreatment:</title>
        <p>• Conversion of objects from a given set into a discrete-logical space into a voxel matrix by the</p>
        <p>RASTERIZATION() procedure.
• Formation of a voxel vector by the procedure SET_VECTOR().</p>
      </sec>
      <sec id="sec-2-5">
        <title>External procedure:</title>
        <p>• Sorting shapes T = {T1, T2, …, Tn}.
Internal procedure:
• For each object Ti , i = 1, n from the list T:</p>
      </sec>
      <sec id="sec-2-6">
        <title>1. Entering Ti into the allocation area by the function PUT_BEGIN(Ti, P0).</title>
      </sec>
      <sec id="sec-2-7">
        <title>2. The construction of the NFP Ti relative to the packing area and each of the already placed</title>
        <p>figures by the NFP() procedure.</p>
      </sec>
      <sec id="sec-2-8">
        <title>3. Selecting from all NFP points a point Pminz with a minimum coordinate along z; in the case of</title>
        <p>several similar points, select a point with a minimum vector length ( x, y) .</p>
      </sec>
      <sec id="sec-2-9">
        <title>4. Restoration of an object Ti at a point Pminz.</title>
      </sec>
      <sec id="sec-2-10">
        <title>Consider the above procedures separately.</title>
        <p>4.1. Converting objects to discrete logical space RASTERIZATION ()
Figure 1 shows the initial (polygonal) representation of the object. The final (voxel) representation of
the object is presented in figure 2.</p>
      </sec>
      <sec id="sec-2-11">
        <title>The algorithm for rasterizing one polygon Tri (A, B, C) is as follows.</title>
        <p>For intermediate storage, we select a three-dimensional DataR array. Iinitially the array is filled
with zeros.</p>
      </sec>
      <sec id="sec-2-12">
        <title>Building a matrix of voxels consists of the following steps.</title>
        <p>1. Rasterize the sides of the polygon A, B, C according to the Bresenham’s line algorithm into an
array of points.</p>
      </sec>
      <sec id="sec-2-13">
        <title>We obtain arrays of voxels that make up the corresponding parties:</title>
        <p>AB = {AB1, …, ABn},
BC = {BC1, …, BCm},</p>
        <p>AC = {AC1, …, ACp}.</p>
        <p>2. Divide the resulting arrays into groups G = {G1, …, Gr}. In each group Gi, all voxels have the
same z coordinate,
 ab  AB, abj , z = i, j [1, n] ,

Gi = bc  BC , bc j , z = i, j [1, m] , i = 1, r,</p>
        <p> ac  AC, ac j , z = i, j [1, p]
respectively, are in the same plane (figure 3).</p>
        <p>ABn
B
…</p>
        <p>ABi
BC1
…
А</p>
        <p>BCm</p>
        <p>AC1
ACi
…</p>
        <p>ACp
C</p>
        <p>G1
Gi
Gr
3. For each of the obtained groups G, depending on the number of voxels:
• One voxel in figure 2 on the plane G1: the voxel is entered into the DataR array: the place
in the array corresponding to the coordinates of the voxel is marked as 1.
• Two voxels in figure 2 on the plane Gi: based on 2 voxels, a segment is constructed that is
also rasterized into n voxels; the corresponding n places in the DataR array are marked as
1.
• Three voxels and more: depending on how many voxels are included in group G from
each of the sides AB, BC and CA, the following situations are possible:
o All voxels are from one side. These voxels make up a segment; places corresponding
to these voxels in the DataR array are marked as 1.
o Voxels are from two sides. In the plane there are points forming two segments. We
connect the corresponding ends of the segments. The resulting figure is a flat
quadrangle, which is divided into two flat triangles. Triangles are rasterized by the
rasterization algorithm of a flat triangle.
o Voxels are from three sides. In the plane there are points from three segments and
two of them are connected. We connect, as in figure 3, the ends of the corresponding
segments. Then it is necessary to rasterize the resulting flat shape similarly to the
previous step. A special case of this stage is that all the point of all segments is in
one group, which means that the entire triangle lies in one horizontal plane.
4.2. Building a voxel vector based on a three-dimensional matrix SET_VECTOR ()
Building a voxel vector consists of the following main steps.</p>
        <p>1. Set the seed voxel Vcurrent (0, -1, -1).
2. Mark the place Pcurrent in the DataR space as passed.
3. Enter Vcurrent (Ncurrent, Nprev, direct) into the vector Path.</p>
        <p>
5. Select the first free direction v  F (Vcurrent), i = 0,5 , redefine Vcurrent =(Ncurrent +1, Ncurrent, i), go
i
to step 2.</p>
        <p>
6. If there is no free direction for the shift vi  F (Vcurrent), i = 0,5 , select the previous node in the
Path array as the current node: Vcurrent =Path[Nprev], move the current position to the direct direction
back: Pcurrent = Pcurrent – Pcurrent . Go to step 4.
4.3. Placement of object T0 in placement area PUT_BEGIN ()
Placement of object T0 consists of the following steps.</p>
        <p>1. For all already packed objects T’ = {T1, … , Tn}, their maximum height hmax = max( h(Ti ))
i = 1, n is selected; h(Ti) = max(Pj, z), j = 1, m where {P1, …, Pm} are the coordinates of the voxel
points that make up the object Ti.</p>
        <p>2. The entry point Pbegin(0, 0, hmax + hT (T0 )) is selected.</p>
      </sec>
      <sec id="sec-2-14">
        <title>3. If the object T0 cannot be restored from P0, then the object cannot be entered.</title>
        <sec id="sec-2-14-1">
          <title>4.4. Building NFP placed object</title>
          <p>The process of building NFP placed object consists of the following steps.</p>
          <p>1. For each of the packed objects Ti{T0...Tm}, where m is the number of packed objects, the NFP
of the placed object T is constructed relative to T’i in the packing area R LIST_CONSTRACTION
(T, T’i).</p>
          <p>2. In each of these NFP Vi {Vi0 ...Vim} some nodes ViVi are selected.</p>
          <p>m
3. Resulting NFP is Vresult = i=0Vi .
4.5. Building NFP of two objects LIST_CONSTRACTION (T1, T2) using the "right hand" method.
The process of building NFP of two objects consists of the following steps.</p>
          <p>1. Set the seed node Vcurrent at the starting point Pcurrent = P0.</p>
          <p>2. Check the free neighboring nodes (figure 5). If the nodes in all directions of the shift are free,
then we shift the node Vcurrent in the 0th direction until at least one of the directions is occupied.
3. Mark the place Pcurrent in the placement area as occupied.
4. Enter Vcurrent (Ncurrent, Nprev, direct) into the list vector Path.
appropriate order.</p>
          <p>
6. Select the first free direction v  F (Vcurrent) , transfer the object to the vector of this direction.</p>
          <p>i
At the same time, so that the object does not come off the surface when moving to the 0th ("right")
direction, the priority shift directions are turned so that the 0th direction is in place of the first (by
priority) inaccessible. Go to step 3.</p>
          <p>7. If there is no free direction for the shift V  F (Vcurrent) , select the previous node in the Path
i
array: Vcurrent =Path[Nprev] as the current node, move the current position to the direct direction

backward: Pcurrent = Pcurrent − v3 . Go to step 4.</p>
          <p>Obstacles
5. Analysis of the dense packing algorithm efficiency
To analyze the efficiency of the developed methods for placing three-dimensional objects in a
container, a series of computational experiments was performed.</p>
          <p>
            As input data, we used data placed in open databases, as well as data presented in articles by
leading researchers in the field of analysis of algorithms for placing three-dimensional objects in a
container [
            <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
            ].
          </p>
          <p>Sets of 20, 30, and 40 polyhedra of two, three, and four of each type were used. Objects were
packaged in a container with a base size of 30 × 35 units. The packaging efficiency was estimated by
the packing density parameter (%).</p>
          <p>
            Table 1 presents the sets of three-dimensional objects and the results of solving the dense allocation
problem. The algorithms used were:
• First local minimum (FLM) [
            <xref ref-type="bibr" rid="ref4">4</xref>
            ],
•
•
•
•
•
•
•
          </p>
        </sec>
      </sec>
      <sec id="sec-2-15">
        <title>Decremental neighborhood search (DNS) )[4],</title>
      </sec>
      <sec id="sec-2-16">
        <title>Random search (RS) )[4],</title>
      </sec>
      <sec id="sec-2-17">
        <title>First Fit (FF)[6],</title>
      </sec>
      <sec id="sec-2-18">
        <title>First Fit (FF) + Local Search (LS)[6],</title>
      </sec>
      <sec id="sec-2-19">
        <title>GRASP[6],</title>
      </sec>
      <sec id="sec-2-20">
        <title>GRASP + Local Search (LS) [6],</title>
      </sec>
      <sec id="sec-2-21">
        <title>Simple Heuristic (Voxel representation), considered in this paper [2].</title>
      </sec>
      <sec id="sec-2-22">
        <title>An example of dense packing for various sets of objects is presented in figure 6.</title>
        <p>The results of analysis of the dense packing algorithms efficiency show that the best packing
density is provided by:
• GRASP + Local Search (LS) algorithm (24.47%) for 20 objects;
• Simple Heuristic (Voxel representation) algorithm (24.09%) for 30 objects;
• First Fit (FF) + Local Search (LS) (25.61%) for 40 objects.</p>
        <p>The packing density of the objects obtained by the voxel-based representation is slightly lower,
since a simplified optimization procedure algorithm was used. Despite this, it should be noted the high
efficiency of the method, because with certain accuracy parameters, it allows you to pack objects
faster. The main advantages of the voxel approach are the correctness of the solution, that is, small
changes in the source data do not lead to changes in the results, as well as the speed and reliability of
the basic logical operations.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>6. Conclusions</title>
      <p>The paper considers an approach to solving the problem of packing complex three-dimensional
objects in a parallelepiped container based on the use of a discrete-logical (voxel) representation of
information, which allows one to obtain results that are different in time and accuracy of calculation.</p>
      <p>Analysis of the dense packing algorithms efficiency shows the best packing density (average
24.72%) provided by GRASP + Local Search (LS) algorithm, Simple Heuristic (SH) algorithm and</p>
      <sec id="sec-3-1">
        <title>First Fit (FF) + Local Search (LS). Also, the data obtained in the framework of the study show the actual independence of the packing time of objects from the accuracy of approximation of objects by polygons. This has a significant impact on the implementation of the algorithm for packing objects in object space.</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <source>[1] Meet the Fuse</source>
          <volume>1</volume>
          [Electronic resource]. - Access mode: https://formlabs.com/3d-printers/fuse1/ (
          <volume>20</volume>
          .
          <fpage>12</fpage>
          .
          <year>2019</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Verkhoturov</surname>
            <given-names>M</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Petunin</surname>
            <given-names>A</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Verkhoturova</surname>
            <given-names>G</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Danilov</surname>
            <given-names>K</given-names>
          </string-name>
          and
          <string-name>
            <surname>Kurennov D 2016 The 3D</surname>
          </string-name>
          <article-title>Object packing problem into a parallelepiped container based on discrete-logical representation</article-title>
          <source>IFAC-PapersOnLine 49</source>
          12 pp
          <fpage>1</fpage>
          -
          <lpage>5</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Verkhoturov</surname>
            <given-names>M</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Verkhoturova</surname>
            <given-names>G</given-names>
          </string-name>
          and
          <string-name>
            <surname>Yagudin</surname>
            <given-names>R 2012</given-names>
          </string-name>
          <article-title>Geometric optimizing modeling in the systems of 3-D objects placing Workshop on computer science and information technologies CSIT'2012 (</article-title>
          <string-name>
            <surname>Ufa - Hamburg - Norwegian Fjords</surname>
          </string-name>
          ) pp
          <fpage>176</fpage>
          -
          <lpage>179</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>Stoyan</given-names>
            <surname>Yu</surname>
          </string-name>
          ,
          <string-name>
            <surname>Gil</surname>
            <given-names>N</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scheithauer</surname>
            <given-names>G</given-names>
          </string-name>
          and
          <article-title>Pankratov A 2004 Packing non-convex polytopes into a parallelepiped TU Dresden 32 p (</article-title>
          <source>Preprint MATH-NM-06-2004)</source>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Egeblad</surname>
            <given-names>J</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Benny</surname>
            <given-names>K</given-names>
          </string-name>
          and
          <string-name>
            <surname>Marcus B 2009</surname>
          </string-name>
          <article-title>Translational packing of arbitrary polytopes Elsevier</article-title>
          .
          <source>Computational geometry 42 4</source>
          pp
          <fpage>269</fpage>
          -
          <lpage>288</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Verkhoturov</surname>
            <given-names>M</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Verkhoturova</surname>
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yagudin</surname>
            <given-names>R.</given-names>
          </string-name>
          <year>2013</year>
          <article-title>On one solution to the problem of dense packing of non convex polyhedra based on a dynamic scheme for determining the conditions of mutual non intersection Workshop on information technologies for intelligent decision making Support ITIDS'2013 (Ufa</article-title>
          , Russia, May
          <year>2013</year>
          ) pp
          <fpage>198</fpage>
          -
          <lpage>207</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Kaufman</surname>
            <given-names>A</given-names>
          </string-name>
          and
          <string-name>
            <surname>Shimony</surname>
            <given-names>E 1993</given-names>
          </string-name>
          <article-title>3D scan-conversion algorithms for voxel-based graphics</article-title>
          <source>Proc. ACM Workshop on Interactive 3D Graphics</source>
          ,
          <article-title>(Chapel Hill</article-title>
          ,
          <string-name>
            <surname>NC</surname>
          </string-name>
          ,
          <year>October 1986</year>
          ) pp
          <fpage>45</fpage>
          -
          <lpage>76</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Kaufman</surname>
            <given-names>A 1987</given-names>
          </string-name>
          <article-title>Efficient algorithms for 3D scan-conversion of parametric curves, surfaces</article-title>
          , and volumes Computer Graphics 21 4 pp
          <fpage>171</fpage>
          -
          <lpage>179</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>Samuli</given-names>
            <surname>Laine Tero Karra 2010</surname>
          </string-name>
          <article-title>Efficient sparse voxel octrees - analysis, extensions, and</article-title>
          implementation NVIDIA Research
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Requicha A A G 1980</surname>
          </string-name>
          <article-title>Representations of rigid solids: theory, methods</article-title>
          and
          <source>systems ACM Computing Surveys 12 4</source>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Wohlers</surname>
            <given-names>T 1992</given-names>
          </string-name>
          <article-title>CAD meets rapid prototyping Issue of Computer-Aided Engineering 11 4</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Baumgart</surname>
            <given-names>B 1975</given-names>
          </string-name>
          <article-title>A polyhedron representation for computer vision Proceedings of the National Computer Conference and Exposition (ACM, Anaheim</article-title>
          , California,
          <year>1975</year>
          ) pp
          <fpage>589</fpage>
          -
          <lpage>596</lpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>