Code Search for Developers
 
 
  

MxDualSlim.h from Boson at Krugle


Show MxDualSlim.h syntax highlighted

#ifndef MXDUALSLIM_INCLUDED // -*- C++ -*-
#define MXDUALSLIM_INCLUDED
#if !defined(__GNUC__)
#  pragma once
#endif

/************************************************************************

  MxDualSlim

  Copyright (C) 1998 Michael Garland.  See "COPYING.txt" for details.
  
  $Id: MxDualSlim.h 7682 2006-08-01 13:59:43Z abmann $

 ************************************************************************/

#include "MxDualModel.h"
#include "MxFaceTree.h"
#include "MxQMetric3.h"
#include "MxHeap.h"

#define MX_SHAPE_ANY 0
#define MX_SHAPE_REGULAR 1

class MxDualSlimEdge : public MxHeapable { public: uint id; };

class MxDualSlimNode
{
public:
    MxQuadric3 Q_dir;		// Error form for normal orientation
    MxQuadric3 Q_fit;		// Error form for planarity

    MxFaceList faces;		// All the faces in this cluster

    float perimeter;		// The length of the cluster's perimeter
    uint nverts;		// The number of vertices in this cluster
};

// AB: removed due to licensing issues with MxMat[3|4]-jacobi.cxx which
// is required for this
#if 0
class MxDualSlim
{
private:
    MxHeap heap;
    MxBlock<MxDualSlimEdge> target_edges;
    MxBlock<MxDualSlimNode> face_nodes;

protected:
    MxStdModel *m;
    MxDualModel *dual;
    MxFaceTree *tree;

private:
    void initialize_node(uint);

protected:
    MxDualSlimEdge       *get_edge(uint i)       { return &target_edges(i); }
    const MxDualSlimEdge *get_edge(uint i) const { return &target_edges(i); }

    void update_frame_bounds(MxFaceCluster&, const MxFaceList&);
    void update_node_bounds(uint);
// AB: removed due to licensing issues with MxMat[3|4]-jacobi.cxx which
// is required for this
//    void compute_edge_info(MxDualSlimEdge *e);
// AB: removed due to licensing issues with MxMat[3|4]-jacobi.cxx which
// is required for this
//    void contract(MxDualSlimEdge *e);

public:
    bool weight_by_area;
    uint shape_policy;
    uint root_cluster_count;
    bool will_maintain_bounds;

public:
    MxDualSlim(MxStdModel *m0, MxDualModel *d0, MxFaceTree *t0);

    MxDualSlimNode&       node_info(uint i)       { return face_nodes(i); }
    const MxDualSlimNode& node_info(uint i) const { return face_nodes(i); }

// AB: removed due to licensing issues with MxMat[3|4]-jacobi.cxx which
// is required for this
//    void initialize();
// AB: removed due to licensing issues with MxMat[3|4]-jacobi.cxx which
// is required for this
//    bool aggregate(uint target);
// AB: removed due to licensing issues with MxMat[3|4]-jacobi.cxx which
// is required for this
//    bool limit_aggregate(float maxerr);
};
#endif



// MXDUALSLIM_INCLUDED
#endif




See more files for this project here

Boson

Boson is an OpenGL real-time strategy game. It is designed to run on Unix (Linux) computers, and is built on top of the KDE, Qt and kdegames libraries.

Project homepage: http://sourceforge.net/projects/boson
Programming language(s): C,C++
License: other

  COPYING.txt
  MxAsp.cxx
  MxAsp.h
  MxBlock.h
  MxBlock2.h
  MxBlock3.h
  MxBlockModel.cxx
  MxBlockModel.h
  MxCamera.cxx
  MxCamera.h
  MxCmdParser.cxx
  MxCmdParser.h
  MxDualModel.cxx
  MxDualModel.h
  MxDualSlim.cxx
  MxDualSlim.h
  MxDynBlock.h
  MxEdgeFilter.cxx
  MxEdgeFilter.h
  MxFaceTree-2.cxx
  MxFaceTree.cxx
  MxFaceTree.h
  MxFeatureFilter.cxx
  MxFeatureFilter.h
  MxFitFrame-2.cxx
  MxFitFrame-vis.cxx
  MxFitFrame.cxx
  MxFitFrame.h
  MxFrame.cxx
  MxFrame.h
  MxGL.h
  MxGLDebug.cxx
  MxGLUtils.cxx
  MxGLUtils.h
  MxGUI.h
  MxGeoPrims.h
  MxGeom2D.cxx
  MxGeom2D.h
  MxGeom3D.cxx
  MxGeom3D.h
  MxHeap.cxx
  MxHeap.h
  MxManipulator.h
  MxMat2.h
  MxMat3.h
  MxMat4.h
  MxMath.h
  MxMatrix.cxx
  MxMatrix.h
  MxPropSlim.cxx
  MxPropSlim.h
  MxQMetric.cxx
  MxQMetric.h
  MxQMetric3.cxx
  MxQMetric3.h
  MxQSlim.cxx
  MxQSlim.h
  MxQVis3.cxx
  MxRaster.h
  MxSMF.cxx
  MxSMF.h
  MxStack.h
  MxStdGUI.cxx
  MxStdGUI.h
  MxStdModel.cxx
  MxStdModel.h
  MxStdRender.cxx
  MxStdSlim.cxx
  MxStdSlim.h
  MxString.h
  MxTimer.h
  MxVec2.h
  MxVec3.h
  MxVec4.h
  MxVector.h
  README
  mixio.h
  mixmops.cxx
  mixmops.h
  mixmsg.cxx
  mixmsg.h
  mixvops.h
  stdmix.h