public void read(ByteBuffer buffer) { next = DNATools.link(DNATools.ptr(buffer), BoidState.class); // get ptr prev = DNATools.link(DNATools.ptr(buffer), BoidState.class); // get ptr rules.read(buffer); conditions.read(buffer); actions.read(buffer); buffer.get(name); id = buffer.getInt(); flag = buffer.getInt(); ruleset_type = buffer.getInt(); rule_fuzziness = buffer.getFloat(); signal_id = buffer.getInt(); channels = buffer.getInt(); volume = buffer.getFloat(); falloff = buffer.getFloat(); }
public void read(ByteBuffer buffer) { super.read(buffer); clone.read(buffer); curve = DNATools.link(DNATools.ptr(buffer), CurveMapping.class); // get ptr mtex.read(buffer); icon_imbuf = DNATools.ptr(buffer); // get ptr preview = DNATools.link(DNATools.ptr(buffer), PreviewImage.class); // get ptr buffer.get(icon_filepath); normal_weight = buffer.getFloat(); blend = buffer.getShort(); ob_mode = buffer.getShort(); size = buffer.getInt(); flag = buffer.getInt(); jitter = buffer.getFloat(); spacing = buffer.getInt(); smooth_stroke_radius = buffer.getInt(); smooth_stroke_factor = buffer.getFloat(); rate = buffer.getFloat(); for (int i = 0; i < rgb.length; i++) rgb[i] = buffer.getFloat(); alpha = buffer.getFloat(); sculpt_plane = buffer.getInt(); plane_offset = buffer.getFloat(); sculpt_tool = buffer.get(); vertexpaint_tool = buffer.get(); imagepaint_tool = buffer.get(); buffer.get(pad3); autosmooth_factor = buffer.getFloat(); crease_pinch_factor = buffer.getFloat(); plane_trim = buffer.getFloat(); height = buffer.getFloat(); texture_sample_bias = buffer.getFloat(); texture_overlay_alpha = buffer.getInt(); unprojected_radius = buffer.getFloat(); for (int i = 0; i < add_col.length; i++) add_col[i] = buffer.getFloat(); for (int i = 0; i < sub_col.length; i++) sub_col[i] = buffer.getFloat(); }
private void dnaCommand(HttpServletRequest req, DazzleResponse resp, DazzleDataSource dds) throws IOException, DataSourceException, ServletException, DazzleException { DazzleReferenceSource drs = (DazzleReferenceSource) dds; List segments = DazzleTools.getSegments(dds, req, resp); if (segments.size() == 0) { throw new DazzleException( DASStatus.STATUS_BAD_COMMAND_ARGUMENTS, "No segments specified for dna command"); } // Fetch and validate the requests. Map segmentResults = new HashMap(); for (Iterator i = segments.iterator(); i.hasNext(); ) { Segment seg = (Segment) i.next(); try { Sequence seq = drs.getSequence(seg.getReference()); if (seq.getAlphabet() != DNATools.getDNA()) { throw new DazzleException( DASStatus.STATUS_SERVER_ERROR, "Sequence " + seg.toString() + " is not in the DNA alphabet"); } if (seg.isBounded()) { if (seg.getMin() < 1 || seg.getMax() > seq.length()) { throw new DazzleException( DASStatus.STATUS_BAD_COORDS, "Segment " + seg.toString() + " doesn't fit sequence of length " + seq.length()); } } segmentResults.put(seg, seq); } catch (NoSuchElementException ex) { throw new DazzleException(DASStatus.STATUS_BAD_REFERENCE, ex); } catch (DataSourceException ex) { throw new DazzleException(DASStatus.STATUS_SERVER_ERROR, ex); } } // // Looks okay -- generate the response document // XMLWriter xw = resp.startDasXML("DASDNA", "dasdna.dtd"); try { xw.openTag("DASDNA"); for (Iterator i = segmentResults.entrySet().iterator(); i.hasNext(); ) { Map.Entry me = (Map.Entry) i.next(); Segment seg = (Segment) me.getKey(); Sequence seq = (Sequence) me.getValue(); xw.openTag("SEQUENCE"); xw.attribute("id", seg.getReference()); xw.attribute("version", drs.getLandmarkVersion(seg.getReference())); if (seg.isBounded()) { xw.attribute("start", "" + seg.getStart()); xw.attribute("stop", "" + seg.getStop()); } else { xw.attribute("start", "" + 1); xw.attribute("stop", "" + seq.length()); } SymbolList syms = seq; if (seg.isBounded()) { syms = syms.subList(seg.getMin(), seg.getMax()); } if (seg.isInverted()) { syms = DNATools.reverseComplement(syms); } xw.openTag("DNA"); xw.attribute("length", "" + syms.length()); for (int pos = 1; pos <= syms.length(); pos += 60) { int maxPos = Math.min(syms.length(), pos + 59); xw.println(syms.subStr(pos, maxPos)); } xw.closeTag("DNA"); xw.closeTag("SEQUENCE"); } xw.closeTag("DASDNA"); xw.close(); } catch (Exception ex) { throw new DazzleException(ex, "Error writing DNA document"); } }